This article presents possible use cases and corresponding sample flows that you can support. This can be a helpful jumping off point as you plan your implementation.
A headless site or other custom frontend can place restaurant orders using Cart V2 for the visitor's cart and the Wix-hosted checkout. The hosted checkout doesn't offer a pickup or delivery choice for restaurant orders. Set the fulfillment on the cart before you redirect the visitor, as the Wix Restaurants ordering page does on a Wix site.
To place an order from a custom storefront, follow these steps:
Call List Operations and use an operation with onlineOrderingStatus "ENABLED".
Call Add Line Items To Current Cart with the Wix Restaurants Orders appId, "9a5d83fd-8570-482e-81ab-cfa88942ee60", and the operation, menu, and section of each item in options. Get the menuId and the section ID from the Menus and Sections APIs. Specify the section as options.menuSectionId. Checkout validates each item against the section in that key.
To find when the restaurant can fulfill the order, call one of the following methods:
Both return only the time slots available for ordering. For delivery, collect the visitor's address first and pass it as deliveryAddress. The response then includes the delivery slots of the methods that deliver to that address.
Set the cart's address with Update Current Cart, specifying cart.deliveryInfo.address. You can't set a delivery method on a cart without an address, even for pickup. For pickup, the restaurant's country is enough. For delivery, specify the visitor's address, with the street in addressLine.
Call Set Delivery Method For Current Cart with the fulfillment as the delivery method code:
"PICKUP|ASAP" or "DELIVERY|ASAP" for as soon as possible."<TYPE>|<startTime>|<endTime>" for a scheduled time slot, with the selected slot's timeSlot.startTime and timeSlot.endTime from step 3 as epoch milliseconds. Build the code from the slot the visitor chose. Checkout doesn't accept a slot that has passed.The call fails with DELIVERY_METHOD_NOT_FOUND when no delivery method can deliver to the address.
Call Create Redirect Session with the cart's id as ecomCheckout.checkoutId, and send the visitor to redirectSession.fullUrl.
If you skip step 5, the visitor can't place the order. Instead, the checkout shows "There was an issue updating your fulfillment details. To complete checkout, go back to the ordering page and update the time or address."
To export orders from Wix Restaurants to an external POS:
Listen for changes to Wix Orders with the Order Created and Order Approved events.
When these events are triggered, verify that the order contains restaurants items by checking lineItems for items with catalogReference.appId equal to "9a5d83fd-8570-482e-81ab-cfa88942ee60".
For example:
See the full Order Object structure for reference.
Create a mapping between Wix Restaurants orders and your external POS system orders to support syncing between them. Make sure to include all external IDs, such as order and customer IDs in the mapping. Store this mapping on your servers.
Create the complete order in the POS system using your POS API.
To import orders from an external POS into Wix Restaurants:
Retrieve the external order from the POS.
Create a mapping between your external POS system orders and Wix Restaurants orders to support syncing between them. Make sure to include all external IDs, such as order and item IDs in the mapping. Store this mapping on your servers.
Call List Locations to identify and save the relevant location ID. Use this ID as the businessLocationId when creating Wix orders in the next step.
Call Create Order with restaurants catalog references.
You must specify the following in catalogReference:
catalogItemId: The ID of the item.appId: The Wix Restaurants Orders appId, "9a5d83fd-8570-482e-81ab-cfa88942ee60".options.operationId: The operationId of the operation the item is being ordered from.options.menuId: The menuId of the menu the item is being ordered from.options.sectionId: The sectionId of the section the item is being ordered from.You can optionally specify options.onlineOrderingPageUrl. Specifying this allows customers on the site to click the item in the cart and navigate back to the item's modal where they can edit the item details.
If you want the order to be visible to the user in the orders kanban in the dashboard, create a fulfillment with the order details using Create Fulfillment.
Note: Wix Restaurants fulfillments are automatically created with the "Pending" status.
To keep Wix Restaurants orders up to date with changes in an external POS:
Create a mapping between your external POS system orders and Wix Restaurants orders to support syncing between them. Make sure to include all external IDs, such as order and item IDs in the mapping. Store this mapping on your servers.
Listen to external events for changes to the POS.
Update your mapping according to the changes.
On any changes, update the relevant Wix order fulfillments by calling Update Fulfillment.
Last updated: 25 October 2026