> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# listFulfillmentMethods

# Package: @wix/restaurants

# Namespace: fulfillmentMethods

# Method link: https://dev.wix.com/docs/api-reference/business-solutions/restaurants/online-orders/fulfillment-methods/list-fulfillment-methods.md

## Permission Scopes:
Manage Restaurants - all permissions: SCOPE.RESTAURANTS.MEGA-SCOPES

## Introduction

Retrieves a list of up to 100 fulfillment methods.

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.restaurants.fulfillmentMethods.listFulfillmentMethods(options)
 Description: Retrieves a list of up to 100 fulfillment methods.
 Method parameters:
   param name: options | type: ListFulfillmentMethodsOptions  none  
        - name: cursorPaging | type: CursorPaging | description: Cursor paging  
           - name: limit | type: integer | description: Maximum number of items to return in the results.  | validation: minimum 0, maximum 100, format int32
           - name: cursor | type: string | description: 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.  | validation: maxLength 16000
 Return type: PROMISE<ListFulfillmentMethodsResponse>
  - name: fulfillmentMethods | type: array<FulfillmentMethod> | description: The retrieved fulfillment methods.  
     - ONE-OF: 
        - name: pickupOptions | type: PickupInfo | description: Data specific for pickup fulfillment method.  
           - name: instructions | type: string | description: Instructions for the pickup.  | validation: maxLength 250
           - name: address | type: Address | description: Pickup address.  This is set to the address of the restaurant.  | read-only: true 
              - name: city | type: string | description: none  
              - name: subdivision | type: string | description: none  
              - name: country | type: string | description: none  
              - name: postalCode | type: string | description: none  
              - name: addressLine1 | type: string | description: none  
              - name: addressLine2 | type: string | description: none  
        - name: deliveryOptions | type: DeliveryInfo | description: Data specific for delivery fulfillment method.  
           - name: deliveryTimeInMinutes | type: integer | description: Estimated delivery time in minutes.  | validation: minimum 0, format int32
           - name: freeDeliveryThreshold | type: string | description: Threshold for offering free delivery. If the order price exceeds this threshold, the delivery fee is waived.  | validation: decimalValue {"maxScale":3}
           - name: deliveryArea | type: DeliveryArea | description: Delivery area supported by this delivery fulfillment method.  
              - ONE-OF: 
                 - name: radiusOptions | type: Radius | description: Settings for a radius delivery area.  
                    - name: minDistance | type: string | description: Minimum distance value. The unit of the radius is specified in the `unit` field.  | validation: decimalValue {"gte":"0","lte":"10000","maxScale":3}
                    - name: maxDistance | type: string | description: Maximum distance value. The unit of the radius is specified in the `unit` field.  | validation: decimalValue {"gte":"0","lte":"10000","maxScale":3}
                    - name: centerPointAddress | type: Address | description: Address at the center of the circle.  | read-only: true 
                    - name: unit | type: Unit | description: Unit of measurement of the radius.  
                             - enum:
                             -     UNKNOWN_UNIT: Unknown unit.
                             -     MILES: Miles.
                             -     KILOMETERS: Kilometers.
                 - name: postalCodeOptions | type: PostalCode | description: Settings for a postal code delivery area.  
                    - name: countryCode | type: string | description: Country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.  | read-only: true | validation: format COUNTRY
                    - name: postalCodes | type: array<string> | description: List of postal codes and postal code regexes. For example, `10001`, `10002` or `1000*`. A postal code regex will enable you to define a range of postal codes using an asterisk (*). For example, to include the postal codes in the range of `10001`-`10009`, use `1000*`.  | validation: maxItems 100, minLength 1, maxLength 20
                 - name: customOptions | type: CustomArea | description: Settings for a custom delivery area.  
                    - name: geocodes | type: array<AddressLocation> | description: Geocodes of the polygon defining the delivery area.  
                       - name: latitude | type: number | description: Address latitude.  
                       - name: longitude | type: number | description: Address longitude.  
              - name: type | type: Type | description: Type of delivery area.  
                     - enum:
                     -     UNKNOWN_DELIVERY_AREA: Unknown delivery area type.
                     -     RADIUS: Delivery area defined by a radius around the restaurant's address.
                     -     POSTAL_CODE: Delivery area defined by a list of postal codes.
                     -     CUSTOM: Delivery area defined by a custom polygon.
                     -     PROVIDER_DEFINED: Delivery area that is determined by the provider. Setting this option, you must also provide `delivery_provider_app_id`.
           - name: deliveryProviderAppId | type: string | description: Delivery provider app id.  | read-only: true | validation: format GUID
           - name: courierPickupInstructions | type: string | description: Pickup instructions for couriers.  | validation: maxLength 250
     - name: _id | type: string | description: Fulfillment method GUID.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: 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.  | read-only: true | validation: format int64
     - name: _createdDate | type: Date | description: Date and time the fulfillment method was created.  | read-only: true 
     - name: _updatedDate | type: Date | description: Date and time the fulfillment method was last updated.  | read-only: true 
     - name: type | type: Type | description: Type of fulfillment method.  
         - enum:
         -     UNKNOWN_FULFILLMENT_TYPE: Unknown fulfillment type.
         -     PICKUP: The customer must pick up the order from the restaurant.
         -     DELIVERY: The restaurant, or someone on behalf of the restaurant, must deliver the order to the customer.
     - name: name | type: string | description: Fulfillment method name.  | validation: minLength 1, maxLength 30
     - name: enabled | type: boolean | description: Whether the fulfillment method is enabled.  
     - name: fee | type: string | description: Fee for using this fulfillment method.  | validation: decimalValue {"maxScale":3}
     - name: availability | type: Availability | description: Availability of this fulfillment method.  
        - name: availableTimes | type: array<DayOfWeekAvailability> | description: A list of availability times for the days of the week.  
           - name: dayOfWeek | type: DayOfWeek | description: The day of week this availability relates to.  
                 - enum:
                 -     MON: Monday.
                 -     TUE: Tuesday.
                 -     WED: Wednesday.
                 -     THU: Thursday.
                 -     FRI: Friday.
                 -     SAT: Saturday.
                 -     SUN: Sunday.
           - name: timeRanges | type: array<TimeOfDayRange> | description: A list of time ranges during which the fulfillment should be available.  
              - name: startTime | type: TimeOfDay | description: The start time in time of day representation.  
                 - name: hours | type: integer | description: Hours. <br /> Min: `0`. <br /> Max: `23`.  
                 - name: minutes | type: integer | description: Minutes. <br /> Min: `0`. <br /> Max: `23`.  
              - name: endTime | type: TimeOfDay | description: The end time in time of day representation.  
        - name: timeZone | type: string | description: The timezone in which the availability times are given.  | read-only: true 
     - name: minOrderPrice | type: string | description: Minimum order price to qualify for using this fulfillment method.  | validation: decimalValue {"maxScale":3}
     - name: businessLocationId | type: string | description: Business location GUID ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/about-business-locations.md) | [REST](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/about-business-locations.md)) of the operation this fulfillment method belongs to.  | read-only: true | validation: format GUID
     - name: extendedFields | type: ExtendedFields | description: Extended fields.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
     - name: tags | type: Tags | description: Tags used to classify and sort different types of fulfillment methods.  
        - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, normally not given to site members or visitors.  
           - name: tagIds | type: array<string> | description: List of tag GUIDs  | validation: maxItems 100, maxLength 5
        - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors.  
  - name: pagingMetadata | type: CursorPagingMetadata | description: The metadata of the paginated results.  
     - name: count | type: integer | description: Number of items returned in the response.  | validation: format int32
     - name: cursors | type: Cursors | description: Cursor strings that point to the next page, previous page, or both.  
        - name: next | type: string | description: Cursor string pointing to the next page in the list of results.  | validation: maxLength 16000
        - name: prev | type: string | description: Cursor pointing to the previous page in the list of results.  | validation: maxLength 16000
     - name: hasNext | type: boolean | description: Whether there are more pages to retrieve following the current page.  + `true`: Another page of results can be retrieved. + `false`: This is the last page.  


```

### Examples

### listFulfillmentMethods
```javascript
// @title List Fulfillment Methods
import { fulfillmentMethods } from "@wix/restaurants";

async function listFulfillmentMethods() {
  const response = await fulfillmentMethods.listFulfillmentMethods();

  /* Promise resolves to:
   * {
   *   "fulfillmentMethods": [
   *     { "id": "f51bc4c5-...", "type": "PICKUP", "name": "Pickup", "enabled": true }
   *   ]
   * }
   */
}

```

### listFulfillmentMethods (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { fulfillmentMethods } from '@wix/restaurants';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { fulfillmentMethods },
  // Include the auth strategy and host as relevant
});


async function listFulfillmentMethods(options) {
  const response = await myWixClient.fulfillmentMethods.listFulfillmentMethods(options);
};
```

---