Skip to article
← Back to Blog
Operations

How to Map Menu Items Across a POS Integration

By Fleksa8 min read•POS integrations, Menu management, Online ordering

A matching menu name is not enough to route an online order to the right POS item. Use this workbook and set of test cases to check identifiers, modifiers, prices, and exceptions before activation.

To prevent an external menu item from landing on the wrong POS item, map it by a stable identifier and location, not by its display name alone. Then check that every required modifier, price effect, and kitchen instruction reaches the intended POS record. If the match is uncertain, hold it for review rather than guessing.

Restaurant POS integration item mapping is a line-by-line job. A menu can look correct to guests while two similarly named items point to the same POS button. The error may only become visible when the kitchen receives the wrong order. A small mapping workbook and a set of simulated orders give you a way to catch that problem before activation.

Build an inventory of items and identifiers

Start with the menu guests see in each external ordering channel and the menu configured in the POS. For each location, record the external item ID, display name, active status, and intended POS item ID. Add the POS name and status alongside them. Include items that are temporarily unavailable or inactive so they do not quietly return with an old mapping.

Ask the integration provider which identifiers it uses to match items and whether those identifiers stay the same when an item is renamed, copied, archived, or republished. An ID is useful only if you know its scope. The same-looking code might belong to a different record at another location or in another channel. Record the channel and location with the ID rather than treating a short code as globally unique.

The following is a hypothetical workbook for one location and one ordering channel. The IDs are examples, not claims about any provider's format. Each row represents an external item and its intended destination.

External ID and namePOS ID and nameLocation and statusCheck or decision
WEB-21: Chicken BowlPOS-301: Chicken BowlNorth; both activeStandard portion; review modifiers
WEB-22: Chicken BowlPOS-302: Chicken BowlNorth; both activeLarge portion; must not map to POS-301
WEB-23: Veggie BowlPOS-303: Garden BowlNorth; both activeDifferent names; confirm intended match
WEB-24: SoupPOS-304: SoupNorth; external active, POS inactiveHold for review; do not activate mapping

The two Chicken Bowl rows show why the name cannot decide the match. The Veggie Bowl row shows the opposite problem: different names do not necessarily mean different products. The Soup row is an exception, not a match ready for service. Add columns in your working copy for channel, modifier group IDs, last review date, owner, and the reason for any hold.

Check who can export or view the identifiers on each side. If a system does not expose a stable ID, ask what other key it uses and how staff can detect a changed or ambiguous match. Do not assume that an integration can safely infer the intended item from a label.

Map modifier groups and required choices

Mapping the main item is only the first step. A guest may choose a size, protein, sauce, preparation style, or add-on. Each choice needs an intended destination in the POS, along with the correct quantity and price effect. The kitchen needs a usable instruction, while the order total needs to reflect what the guest selected.

For each item, list its external modifier groups and choices, then record the corresponding POS group and choice IDs where available. Note which selections are required, which are optional, and any minimum or maximum selection counts. If one choice opens another group, record that dependency too. A required sauce on the ordering menu should not disappear simply because the POS uses a different group name.

For example, suppose the standard Chicken Bowl has a required sauce choice and an optional extra chicken choice. A simulated order with sauce selected and one extra should show both choices against POS-301. Compare the line item, modifier labels, quantities, and price effects on both sides. If the external menu charges $10 for the bowl and $2 for the extra, the expected item subtotal is $12 before any other order charges. This check includes the item and modifier prices only; delivery charges, other fees, and any applicable tax are excluded.

Also try the edges of the configuration. Can the guest submit without a required choice? What happens when an option is unavailable at that location? If nested selections are offered, does the second choice appear only when appropriate, and does it reach the right POS modifier? Ask how the integration handles a modifier that has no valid destination: does it hold the order, reject it, or send an alert? An unsupported case is a limitation to document and plan around, not a reason to assume every system must handle it the same way.

Keep the expected result separate from the observed result in your workbook. A modifier visible on an order screen is not necessarily proof that it reached the kitchen in a usable form. Inspect the POS and kitchen-facing result supported by your setup.

Resolve duplicate names and renames

Duplicate display names are common when menus have different portion sizes, service periods, or location-specific recipes. A name may also be shortened on a receipt while the full name appears online. Treat the display name as a clue for a person reviewing the workbook, not as the sole matching key.

For every duplicate, write down the distinguishing detail and intended POS ID. In the hypothetical workbook, WEB-21 must go to POS-301 and WEB-22 must go to POS-302. A reviewer should be able to see the portion difference without relying on memory. If both external items point to POS-301, stop and correct the second mapping before activation.

Renaming needs a different check. If Veggie Bowl becomes Garden Bowl online, confirm that the same external ID still points to the intended POS record. If the platform creates a new ID when an item is copied or republished, treat it as a new mapping and review its modifiers. Ask whether old mappings are removed automatically or require manual action. Do not assume a rename preserves the underlying record.

Make one person responsible for approving menu changes and another responsible for checking the mapping when possible. Record the change date, old and new identifiers, affected locations, and approval. When a seasonal item returns, verify its current destination and availability instead of reusing last season's row without checking it.

If the same menu is used at several restaurants, review each location separately. A correct mapping at North does not establish that the destination ID, price, or active status is correct elsewhere. For broader questions about how systems connect, see the guide to direct POS integration and middleware.

Validate exceptions before activation

Agree on acceptance criteria before running checks. For each simulated source order, give it a unique test identifier and compare it with the resulting POS and kitchen record. The item ID or documented equivalent, location, modifiers, quantities, and expected total should all match. Record the result and who reviewed it. If the destination record cannot be identified clearly, the case has not passed.

Use a sandbox or another simulation method agreed with the provider. Practice checks must not create a real card charge, send a guest message, or dispatch a courier. Confirm those safeguards before entering any test order. If a safe simulation cannot show a particular downstream result, document the gap and agree on a controlled live-service pilot rather than treating the unobserved step as passed.

Run at least these cases against the workbook:

  • Duplicate names: Simulate each Chicken Bowl separately. Confirm WEB-21 reaches POS-301 and WEB-22 reaches POS-302, with the intended portion and modifiers.
  • Required and nested choices: Try a valid set of choices and an incomplete set. Confirm the valid choices arrive correctly and document how the incomplete case is handled.
  • Unavailable option: Mark or select an unavailable choice using the provider's safe test method. Confirm the documented behavior and make sure staff can identify an exception.
  • Inactive destination: Use the held Soup row as a review case. Confirm it cannot be mistaken for an approved active mapping.
  • Rename or republish: Check whether the identifier remains the same and whether the intended mapping still applies. Review a newly created identifier as a new item.

Keep a manual review queue for ambiguous matches, missing modifiers, inactive destinations, and unexplained price differences. Each entry should include the source ID, location, intended POS destination if known, problem, owner, and resolution. Until the owner resolves and retests it, leave the affected mapping on hold. Agree with the provider on how an affected order will be handled if an exception occurs during service; do not assume every connection has the same hold or alert options.

After simulation, a limited live-service pilot can check the real workflow under an agreed plan, with staff watching the POS and kitchen output. It is separate from practice: decide which locations and items are in scope, who watches for exceptions, and how to pause or revert if a mismatch appears. A pilot reduces uncertainty; it cannot guarantee an uninterrupted launch or that no order will be missed.

Before choosing or changing a connection, review the available restaurant integrations for your actual locations and channels. Ask the provider to show how your identifiers and exceptions are handled, including any connections available on request.

Take the workbook to a demo

Bring an item export from your restaurant POS, the menu from your online ordering system, and a short list of duplicate names and difficult modifiers. Request a demo and ask the team to walk through your proposed mappings, safe test cases, and the process for resolving an exception before activation.

Frequently asked questions

Can two menu items have the same name?

Yes. Give each a distinct mapping based on its identifier, location, and intended POS destination. Record the difference between them so a reviewer can check the match.

What should I do when a modifier has no POS match?

Put the mapping in the review queue and ask how the integration handles that case. Resolve the destination or document an acceptable operational workaround before activation.

Does renaming an item break its mapping?

That depends on how the systems identify the item and whether the rename creates a new record. Check the identifier and retest the destination and modifiers after the change.

Ready to grow your restaurant?

Explore how Fleksa can support ordering and operations in your restaurant.