Insight

ERP-to-mobile ordering integration without operational chaos

21 Feb 2026

  • ERP
  • Hospitality
  • Weclapp

A mobile ordering app may look like a catalogue, basket and submit button. Behind that flow sits the customer record, account-specific pricing, product availability, tax treatment, fulfilment rules and the ERP state that operations already trusts.

If integration begins after the mobile experience has been designed, the two models tend to meet at the most expensive moment. The app may assume that every product has one price or every submitted basket becomes an order immediately. The ERP may require customer-specific terms, packaging units or a review step before it accepts anything.

The integration needs to shape the product from the beginning.

Map the order lifecycle before the screens

Write down each business state from an empty basket to fulfilment. Avoid using one word such as “submitted” for several different facts.

A realistic lifecycle may distinguish:

  • saved locally;
  • sent by the device;
  • received by the ordering service;
  • awaiting validation;
  • accepted by the ERP;
  • held for manual review;
  • rejected with a reason;
  • confirmed for fulfilment;
  • partially fulfilled, completed or cancelled.

The customer does not need to see every internal label. They do need an honest confirmation. If the ERP is unavailable, “Order confirmed” may be inaccurate. “We received your order and will confirm it shortly” can protect trust while the system retries or requests review.

This state model also gives support staff something concrete to inspect. They can see where an order stopped instead of searching logs and asking the customer to submit it again.

Decide which system owns each value

The ERP is often responsible for product identifiers, customer accounts, tax data, credit status and order history. Other systems may own richer catalogue content, product images or marketing categories. The mobile application owns temporary interaction state such as a basket and recently viewed items.

Document ownership at field level where records overlap. Prices need particular care. A list price displayed from a cached catalogue may be wrong for a contracted customer, volume break or current promotion. Decide when the app can display a final price, when it must label a value as indicative and what happens if the ERP returns a different amount during validation.

Units and packaging rules cause similar problems. The interface may show “one box” while the ERP expects twelve pieces with a specific unit code. Convert that deliberately and retain enough source information to explain the resulting order line.

Design synchronisation around useful freshness

Not every field needs real-time synchronisation. Product descriptions may tolerate a scheduled update. Credit status or a blocked account may need a check during checkout. Stock figures can be especially misleading when the ERP value changes quickly or represents several warehouses.

For each data group, define:

  • the source system;
  • update direction;
  • acceptable age;
  • behaviour when the source is unavailable;
  • how deleted or inactive records are handled;
  • who can investigate a mismatch.

The app should expose freshness only where it changes the customer’s decision. Internally, every synchronisation job needs timestamps, result counts and visible failures.

Make order submission safe to retry

Mobile networks fail at inconvenient points. A customer may press submit, lose connectivity before receiving the response and press again. The server must recognise that both requests represent the same intended order.

Give each submission a stable client request identifier and make order creation idempotent across the relevant boundary. Retain the request before calling the ERP. If the ERP times out, reconcile using known identifiers before creating another record.

Retry policy should depend on the error. A temporary network failure can wait and retry. An unknown customer, invalid product mapping or credit hold needs a person or a customer-facing correction. Repeating the same rejected request every minute only hides the real problem beneath more log entries.

Give operations a reconciliation view

An integration that requires a developer for every exception will remain expensive to operate. A focused reconciliation screen should show:

  • the customer and submission reference;
  • the current app and ERP states;
  • the business reason for the failure;
  • affected lines or fields;
  • what has already been retried;
  • the safe actions available to staff;
  • an audit history of changes.

Use the terms that sales and fulfilment teams know. Raw response bodies and stack traces can remain available to engineering without becoming the primary operating interface.

Keep customer identity and access aligned

B2B ordering often includes several buyers under one company, account-specific catalogues and approval limits. Decide whether the ERP customer number maps to a company, a delivery location or an individual. Define who may see prices, submit orders and review order history.

Account merges and staff changes need a managed path. A user leaving a customer company should lose access without altering the ERP history. A duplicate ERP customer record should not silently expose one organisation’s terms to another.

Roll out with representative accounts

Start testing with a small set of real account shapes: a normal repeat buyer, customer-specific pricing, an inactive product, unusual units, partial availability and a held account. Use sanitised production-like records when possible; clean demonstration data rarely reveals the difficult mappings.

During a pilot, compare mobile submissions with the resulting ERP orders and the downstream fulfilment process. Track manual corrections, rejected lines, duplicate attempts and time to confirmation. Those measures reveal whether the product reduces administration or merely moves it.

Our Weclapp B2B ordering project uses this separation: the mobile product provides a shorter repeat-order path, while Weclapp remains responsible for catalogue, customer and order records. The integration keeps failures visible so operations can recover without creating duplicate orders.

A successful mobile ordering flow does more than transfer a basket. It gives the customer a trustworthy status and gives operations a recoverable path from every important submission state.