Introduction

The Fulfillment Methods API allows you to create, retrieve, and manage fulfillment methods for restaurants.

With the Fulfillment Methods API, you can:

  • Create and manage fulfillment methods.
  • Get information about existing fulfillment methods.
  • Retrieve fulfillment methods that are available for a given address.

Before you begin

It’s important to note the following points before starting to code:

  • The site owner must install the Wix Restaurants Orders (New) app.

Use Cases

Allow a restaurant owner to manage their site's fulfillment methods through an external app.

Terminology

  • Fulfillment method: A method by which a restaurant can serve its customers their orders.
  • Pickup fulfillment method: A type of fulfillment method in which the customer picks up the order from the restaurant.
  • Delivery fulfillment method: A type of fulfillment method in which the restaurant, or someone on behalf of the restaurant, delivers the order to the customer.
Did this help?

Sample Flows

This article shares a possible use case your app could support, along with sample flows that could support that use case. This can be a helpful jumping-off point as you plan your app's implementation.

Allow a restaurant owner to manage their site's fulfillment methods through an external app

A restaurant owner wants to manage its fulfillment method availability through an external app. Any changes made on the app must be synced to their Wix site and vice versa.

Prerequisites

The site owner must do the following:

  • Install the Wix Restaurants Orders (New) app.
  • Configure the fulfillment methods for the 3rd-party delivery providers.

Flows

The following flows require a mapping from the fulfillment methods on Wix to the fulfillment methods in the external app. Create this mapping and store it on your app's server. According to this mapping, you can sync the data between the app and the site using webhooks and API calls.

>Note: Make sure to ignore webhooks resulting from calls you have triggered so that you don't create an endless loop of updates.

After creating the mapping, you can follow these two flows to create the two-way sync:

Flow 1: Synchronizing to the external system

  1. Sign up to the following fulfillment method webhooks to receive notifications about any changes to fulfillment methods on the Wix site. The webhooks are:
  2. When one of the webhooks is triggered, update the corresponding fulfillment method in the external app according to the mapping.
  3. Update the mapping to reflect any new or deleted fulfillment methods.

Flow 2: Synchronizing to Wix

  1. When a change is made to any of the fulfillment methods in the external app, find the id of the corresponding fulfillment method in Wix according to the mapping.
  2. If the change is an update, use the id from step 1 to get the current revision of the corresponding fulfillment method object using Get Fulfillment Method. This is required when calling the Update fulfillment method endpoint on Wix.
  3. Using the id from step 1, call the appropriate endpoint in the Fulfillment Methods API to update the information in Wix. The endpoints are:
  4. Update the mapping to reflect any new or deleted fulfillment methods.
Did this help?

Fulfillment Methods: Supported Filters and Sorting

The following table shows field support for filters and sorting for the Fulfillment Methods object:

FieldSupported FiltersSortable
id$eq, $ne, $in, $nin, $startsWithSortable
created_date$eq, $ne, $in, $nin, $startsWith, $lt, $lte, $gt, $gteSortable
updated_date$eq, $ne, $in, $nin, $startsWith, $lt, $lte, $gt, $gteSortable
type$eq, $ne, $in, min, $startsWith
minOrderPrice$eq, $ne, $in, $nin, $startsWith, $lt, $lte, $gt, $gteSortable
name$eq, $ne, $in, min, $startsWithSortable
enabled$eq, $ne, $in, $nin
fee$eq, $ne, $in, $nin, $startsWith, $lt, $lte, $gt, $gteSortable

Related content: API Query Language, Query Fulfillment Methods

Did this help?

Fulfillment Method Object


A Fulfillment Method represents a way in which a restaurant can provide orders to its customers.

Properties
idstringRead-onlyformat GUID

Fulfillment method ID.


revisionintegerRead-onlyformat int64

The current state of an item. Each time the item is modified, its revision changes by the server. for an update operation to succeed, you MUST pass the latest revision.


createdDatestringRead-onlyformat date-time

Date and time the fulfillment method was created.


updatedDatestringRead-onlyformat date-time

Date and time the fulfillment method was last updated.


typestring

Type of fulfillment method.


namestringminLength 1maxLength 30

Fulfillment method name.


enabledboolean

Whether the fulfillment method is enabled.


feestringdecimalValue {"maxScale":3}

Fee for using this fulfillment method.


availabilityAvailability

Availability of this fulfillment method.


minOrderPricestringdecimalValue {"maxScale":3}

Minimum order price to qualify for using this fulfillment method.


ONE OF:

pickupOptionsPickupOptions

Data specific for pickup fulfillment method.


deliveryOptionsDeliveryOptions

Data specific for delivery fulfillment method.

JSON
{ "fulfillment_method": { "id": "12590791-d0d9-418f-a226-a7dcfd37b507", "revision": "1", "created_date": "2023-11-27T06:51:54.176Z", "updated_date": "2023-11-27T06:51:54.176Z", "type": "DELIVERY", "delivery_options": { "delivery_time_in_minutes": 30, "free_delivery_threshold": null, "delivery_area": { "type": "RADIUS", "radius_options": { "value": "1", "center_point_address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null }, "unit": "MILES" } } }, "min_order_price": "0", "name": "Delivery Area #1", "enabled": true, "fee": "0", "availability": { "available_times": [ { "day_of_week": "SUN", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "TUE", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "WED", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "THU", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "FRI", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "SAT", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" } } }
Did this help?

GET

List Fulfillment Methods


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a list of up to 100 fulfillment methods.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods

Query Params
cursorPaging.limitintegerminimum 0maximum 100format int32

Maximum number of items to return in the results.


cursorPaging.cursorstringmaxLength 16000

Pointer to the next or previous page in the list of results.

Pass the relevant cursor token from the pagingMetadata object in the previous call's response. Not relevant for the first request.

Response Object
fulfillmentMethodsArray <FulfillmentMethod>

The retrieved fulfillment methods.


pagingMetadataPagingMetadata

The metadata of the paginated results.

Request
cURL
curl 'https://www.wixapis.com/restaurants/v1/fulfillment-methods' -H 'Authorization: <AUTH>'
Response
JSON
{ "fulfillment_methods": [ { "id": "2b060045-c554-4e43-84b4-146500fbd77a", "revision": "1", "created_date": "2023-11-27T06:51:54.176Z", "updated_date": "2023-11-27T06:51:54.176Z", "type": "DELIVERY", "delivery_options": { "delivery_time_in_minutes": 30, "free_delivery_threshold": null, "delivery_area": { "type": "RADIUS", "radius_options": { "value": "1", "center_point_address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null }, "unit": "MILES" } } }, "name": "Delivery Area #1", "enabled": true, "fee": "0", "availability": { "available_times": [ { "day_of_week": "SUN", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "TUE", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "WED", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "THU", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "FRI", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "SAT", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" } }, { "id": "f51bc4c5-e76d-4688-9aa4-936c7ff4fe37", "revision": "1", "created_date": "2023-11-27T06:51:54.176Z", "updated_date": "2023-11-27T06:51:54.176Z", "type": "PICKUP", "pickup_options": { "instructions": null, "address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null } }, "name": "Pickup", "enabled": true, "fee": null, "availability": { "available_times": [ { "day_of_week": "SUN", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "TUE", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "WED", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "THU", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "FRI", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "SAT", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" } } ], "paging_metadata": { "count": 2, "cursors": { "next": null, "prev": null }, "has_next": false } }
Did this help?

POST

Create Fulfillment Method


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Creates a new fulfillment method.

Note: fulfillmentMethod.availability.time_zone uses the time zone specified in the language and regions settings in the dashboard, regardless of the value provided.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods

Body Params
fulfillmentMethodFulfillmentMethodRequired

Fulfillment method to create.

Response Object
fulfillmentMethodFulfillmentMethod

The created fulfillment method.

Request
cURL
curl -X POST https://www.wixapis.com/restaurants/v1/fulfillment-methods \ -H 'Content-Type: application/json' \ -H 'Authorization: <AUTH>' \ --data-raw '{ "fulfillment_method": { "type": "PICKUP", "name": "Pickup", "enabled": true, "fee": "10", "min_order_price": "50", "availability": { "exceptions": [], "available_times": [ { "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ], "day_of_week": "MON" } ], "time_zone": "Europe/Dublin" }, "pickup_options": { "instructions": "Pickup instructions", "address": { "subdivisions": [], "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "geocode": { "latitude": "37.774836", "longitude": "-122.387258" }, "country_fullname": "United States", "address_line": "500 Terry Francine Street" } } } }'
Response
JSON
{ "fulfillment_method": { "id": "e827109b-0319-4955-aaaa-05a968dd285f", "revision": "1", "created_date": "2024-01-21T07:38:08.905Z", "updated_date": "2024-01-21T07:38:08.905Z", "type": "PICKUP", "pickup_options": { "instructions": "Pickup instructions", "address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null } }, "name": "Pickup", "enabled": true, "fee": "10", "availability": { "available_times": [ { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" }, "min_order_price": "50" } }
Event TriggersThis method triggers the following events:
Did this help?

GET

Get Fulfillment Method


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a fulfillment method.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods/{fulfillmentMethodId}

Path Params
fulfillmentMethodIdstringRequired

The ID of the fulfillment method to retrieve.

Response Object
fulfillmentMethodFulfillmentMethod

The retrieved fulfillment method.

Get Fulfillment Method Example 1
Request
cURL
curl 'https://www.wixapis.com/restaurants/v1/fulfillment-methods/f51bc4c5-e76d-4688-9aa4-936c7ff4fe37' -H 'Authorization: <AUTH>'
Response
JSON
{ "fulfillment_method": { "id": "f51bc4c5-e76d-4688-9aa4-936c7ff4fe37", "revision": "1", "created_date": "2023-11-27T06:51:54.176Z", "updated_date": "2023-11-27T06:51:54.176Z", "type": "PICKUP", "pickup_options": { "instructions": null, "address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null } }, "min_order_price": "0", "name": "Pickup", "enabled": true, "fee": null, "availability": { "available_times": [ { "day_of_week": "SUN", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "TUE", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "WED", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "THU", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "FRI", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] }, { "day_of_week": "SAT", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" } } }
Did this help?

DELETE

Delete Fulfillment Method


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Deletes a fulfillment method.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
DELETE
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods/{fulfillmentMethodId}

Path Params
fulfillmentMethodIdstringRequired

The ID of the fulfillment method to delete.

Response Object
Returns an empty object.
Delete Fulfillment Method Example 1
Request
cURL
curl -X DELETE https://www.wixapis.com/restaurants/v1/fulfillment-methods/e827109b-0319-4955-aaaa-05a968dd285f \ -H 'Content-Type: application/json;charset=UTF-8' \ -H 'Authorization: <AUTH>' \ --data-raw '{ "fulfillment_method_id": "e827109b-0319-4955-aaaa-05a968dd285f" }'
Response
JSON
Event TriggersThis method triggers the following events:
Did this help?

PATCH

Update Fulfillment Method


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Updates a fulfillment method.

Each time the fulfillment method is updated, its revision increments by 1. The existing revision must be included when updating the fulfillment method. This ensures you're working with the latest fulfillment method information, and it prevents unintended overwrites.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
PATCH
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods/{fulfillmentMethod.id}

Path Params
fulfillmentMethod.idstringRequired

Fulfillment method ID.

Body Params
fulfillmentMethodFulfillmentMethodRequired

Fulfillment method to update. The fulfillment method update may be partial with the use of field_mask.

Response Object
fulfillmentMethodFulfillmentMethod

The updated fulfillment method.

Update Fulfillment Method Example 1
Request
cURL
curl -X POST https://www.wixapis.com/restaurants/v1/fulfillment-methods/f7f0c7b2-a20e-4581-bc1a-406ffd21241e \ -H 'Content-Type: application/json' \ -H 'Authorization: <AUTH>' \ --data-raw '{ "fulfillment_method": { "id": "f7f0c7b2-a20e-4581-bc1a-406ffd21241e", "revision": "1", "created_date": "2024-01-21T07:47:02.974Z", "updated_date": "2024-01-21T07:47:02.974Z", "type": "DELIVERY", "delivery_options": { "delivery_time_in_minutes": 15, "free_delivery_threshold": "100", "delivery_area": { "type": "RADIUS", "radius_options": { "value": "5", "center_point_address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null }, "unit": "MILES" } } }, "name": "Delivery", "enabled": true, "fee": "10", "availability": { "available_times": [ { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" }, "min_order_price": "60" } }'
Response
JSON
{ "fulfillment_method": { "id": "f7f0c7b2-a20e-4581-bc1a-406ffd21241e", "revision": "2", "created_date": "2024-01-21T07:47:02.974Z", "updated_date": "2024-01-21T07:55:01.275Z", "type": "DELIVERY", "delivery_options": { "delivery_time_in_minutes": 15, "free_delivery_threshold": "100", "delivery_area": { "type": "RADIUS", "radius_options": { "value": "5", "center_point_address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null }, "unit": "MILES" } } }, "name": "Delivery", "enabled": true, "fee": "10", "availability": { "available_times": [ { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" }, "min_order_price": "60" } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Query Fulfillment Methods


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a list of fulfillment methods given the provided paging, filtering, and sorting. Up to 100 fulfillment methods can be returned per request.

For a detailed list of supported operations, see the Supported Filters and Sorting article. To learn how to query reservations, see API Query Language.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods/query

Body Params
queryQuery

The query by which to select fulfillment methods.

Response Object
fulfillmentMethodsArray <FulfillmentMethod>

The retrieved fulfillment methods.


pagingMetadataPagingMetadata

The metadata of the paginated results.

Query Fulfillment Methods Example 1
Request
cURL
curl -X POST https://www.wixapis.com/restaurants/v1/fulfillment-methods/query \ -H 'Content-Type: application/json' \ -H 'Authorization: <AUTH>' \ --data-raw '{ "query": { "sort": [], "filter": { "type": { "$eq": "PICKUP" } } } }'
Response
JSON
{ "fulfillment_methods": [ { "id": "e827109b-0319-4955-aaaa-05a968dd285f", "revision": "1", "created_date": "2024-01-21T07:38:08.905Z", "updated_date": "2024-01-21T07:38:08.905Z", "type": "PICKUP", "pickup_options": { "instructions": "Pickup instructions", "address": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postal_code": "94158", "address_line": "500 Terry Francine Street", "address_line_2": null, "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "hint": null, "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "country_fullname": "United States", "subdivisions": [], "subdivision_fullname": null } }, "name": "Pickup", "enabled": true, "fee": "10", "availability": { "available_times": [ { "day_of_week": "MON", "time_ranges": [ { "start_time": { "hours": 0, "minutes": 0 }, "end_time": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "time_zone": "Europe/Dublin" }, "min_order_price": "50" } ], "paging_metadata": { "count": 1, "cursors": { "next": null, "prev": null }, "has_next": false } }
Did this help?

POST

List Available Fulfillment Methods For Address


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a list of up to 100 fulfillment methods available for a given address.

The response will only include:

  • Non-delivery fulfillment methods.
  • Delivery fulfillment methods that are available to the given address according to their delivery areas.
Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods/available-for-address

Body Params
addressAddress

The address by which to filter delivery fulfillment methods.


cursorPagingCursorPaging

Cursor paging


fulfillmentMethodIdsArray <string>format GUIDmaxItems 500

If provided, only fulfillment methods with the given IDs will be returned.

Response Object
fulfillmentMethodsArray <FulfillmentMethod>

The retrieved fulfillment methods.


pagingMetadataPagingMetadata

The metadata of the paginated results.

List Available Fulfillment Methods For Address Example 1
Request
cURL
curl -X POST https://www.wixapis.com/restaurants/v1/fulfillment-methods/available-for-address \ -H 'Content-Type: application/json' \ -H 'Authorization: <AUTH>' \ --data-raw '{ "fulfillment_method_ids": [], "address": { "subdivisions": [], "formatted_address": "500 Terry Francine Street, San Francisco, CA 94158, USA", "geocode": { "latitude": "37.774836", "longitude": "-122.387258" } } }'
Response
JSON
Did this help?

GET

Get Combined Method Availability


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves the combined availability of a list of fulfillment methods.

The combined availability is a list of times during which one or more of the given fulfillment methods is available, and the types of those fulfillment methods.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/fulfillment-methods/v1/fulfillment-methods/combined-availability

Query Params
fulfillmentMethodIdsArray <string>Required

IDs of fulfillment methods used to determine the combined availability.

Response Object
combinedAvailabilityCombinedAvailability

The combined availability of the given fulfillment methods.


fulfillmentTypesArray <string>maxItems 100

Types of fulfillment methods available during at least some the combined availability's availableTimes.

Get Combined Method Availability Example 1
Request
cURL
curl -X GET https://www.wixapis.com/restaurants/v1/fulfillment-methods/combined-availability?fulfillmentMethodIds=12590791-d0d9-418f-a226-a7dcfd37b507&fulfillmentMethodIds=71831b22-a043-4998-a10d-01bf9f2472f2 -H 'Authorization: <AUTH>'
Response
JSON
{ "combinedAvailability": { "availableTimes": [ { "dayOfWeek": "TUE", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 59 } } ] }, { "dayOfWeek": "THU", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 59 } } ] }, { "dayOfWeek": "SAT", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 59 } } ] }, { "dayOfWeek": "MON", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 59 } } ] }, { "dayOfWeek": "WED", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 59 } } ] }, { "dayOfWeek": "FRI", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 59 } } ] }, { "dayOfWeek": "SUN", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 59 } } ] } ], "timeZone": "Asia/Jerusalem" }, "fulfillmentTypes": ["PICKUP"] }
Did this help?

Fulfillment Method Created


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.restaurants.v1.fulfillment_method.


slugstring

Event name. Expected created.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


createdEventCreatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.restaurants.v1.fulfillment_method_created", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

FulfillmentMethodCreated
JSON
{ "id": "f3ef0f88-b98b-463e-8ab2-651836ac0d4a", "entityFqdn": "wix.restaurants.v1.fulfillment_method", "slug": "created", "entityId": "76b19c05-58a6-45f2-ad8c-b464858e3911", "createdEvent": { "entity": { "id": "76b19c05-58a6-45f2-ad8c-b464858e3911", "revision": "1", "createdDate": "2024-01-28T13:27:19.788Z", "updatedDate": "2024-01-28T13:27:19.788Z", "type": "DELIVERY", "deliveryOptions": { "deliveryTimeInMinutes": 30, "deliveryArea": { "type": "RADIUS", "radiusOptions": { "value": "1", "centerPointAddress": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postalCode": "94158", "addressLine": "500 Terry Francine Street", "formattedAddress": "500 Terry Francine Street, San Francisco, CA 94158, USA", "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "countryFullname": "United States", "subdivisions": [] }, "unit": "MILES" } } }, "min_order_price": "0", "name": "Delivery Area #4", "enabled": true, "fee": "0", "availability": { "availableTimes": [ { "dayOfWeek": "SUN", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "MON", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "TUE", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "WED", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "THU", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "FRI", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "SAT", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "timeZone": "Europe/Dublin" }, "minOrderPrice": "0" } }, "eventTime": "2024-01-28T13:27:19.826863553Z", "triggeredByAnonymizeRequest": false, "entityEventSequence": "1" }
Did this help?

Fulfillment Method Deleted


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Triggered when a fulfillment method is deleted.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.restaurants.v1.fulfillment_method.


slugstring

Event name. Expected deleted.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


deletedEventstruct

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.restaurants.v1.fulfillment_method_deleted", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

FulfillmentMethodDeleted
JSON
{ "id": "47736d25-db9a-40ad-933d-80bdc19d059a", "entityFqdn": "wix.restaurants.v1.fulfillment_method", "slug": "deleted", "entityId": "76b19c05-58a6-45f2-ad8c-b464858e3911", "deletedEvent": { "movedToTrash": true }, "eventTime": "2024-01-28T13:34:01.436918456Z", "triggeredByAnonymizeRequest": false, "entityEventSequence": "3" }
Did this help?

Fulfillment Method Updated


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Triggered when a fulfillment method is updated.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.restaurants.v1.fulfillment_method.


slugstring

Event name. Expected updated.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


updatedEventUpdatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.restaurants.v1.fulfillment_method_updated", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

FulfillmentMethodUpdated
JSON
{ "id": "3b7c50c8-7b9b-433a-a484-48e516628fc5", "entityFqdn": "wix.restaurants.v1.fulfillment_method", "slug": "updated", "entityId": "76b19c05-58a6-45f2-ad8c-b464858e3911", "updatedEvent": { "currentEntity": { "id": "76b19c05-58a6-45f2-ad8c-b464858e3911", "revision": "2", "createdDate": "2024-01-28T13:27:19.788Z", "updatedDate": "2024-01-28T13:31:27.478Z", "type": "DELIVERY", "deliveryOptions": { "deliveryTimeInMinutes": 30, "deliveryArea": { "type": "RADIUS", "radiusOptions": { "value": "1", "centerPointAddress": { "country": "US", "subdivision": "CA", "city": "San Francisco", "postalCode": "94158", "addressLine": "500 Terry Francine Street", "formattedAddress": "500 Terry Francine Street, San Francisco, CA 94158, USA", "geocode": { "latitude": 37.774836, "longitude": -122.387258 }, "countryFullname": "United States", "subdivisions": [] }, "unit": "MILES" } } }, "min_order_price": "0", "name": "Delivery Area #4", "enabled": false, "fee": "0", "availability": { "availableTimes": [ { "dayOfWeek": "SUN", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "MON", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "TUE", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "WED", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "THU", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "FRI", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] }, { "dayOfWeek": "SAT", "timeRanges": [ { "startTime": { "hours": 0, "minutes": 0 }, "endTime": { "hours": 23, "minutes": 45 } } ] } ], "exceptions": [], "timeZone": "Europe/Dublin" }, "minOrderPrice": "0" } }, "eventTime": "2024-01-28T13:31:27.487486295Z", "triggeredByAnonymizeRequest": false, "entityEventSequence": "2" }
Did this help?