> 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

# DeleteFulfillment

# Package: orders

# Namespace: Fulfillments

# Method link: https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/orders/order-fulfillments/delete-fulfillment.md

## Permission Scopes:
Manage Orders: SCOPE.DC-STORES.MANAGE-ORDERS

## Introduction

Deletes an existing order fulfillment.

---

## REST API

### Schema

```
 Method: deleteFulfillment
 Description: Deletes an existing order fulfillment.
 URL: https://www.wixapis.com/ecom/v1/fulfillments/{fulfillmentId}/orders/{orderId}
 Method: DELETE
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  orderId, fulfillmentId
 Method parameters: 
   param name: fulfillmentId | type:   none | required: true 
   param name: orderId | type:   none | required: true 
 Return type: DeleteFulfillmentResponse
  - name: orderWithFulfillments | type: OrderWithFulfillments | description: Order GUID and the order's associated fulfillments after deletion.  
     - name: orderId | type: string | description: Order GUID.  | validation: minLength 1, maxLength 100
     - name: fulfillments | type: array<Fulfillment> | description: Fulfillments associated with the order.  
        - ONE-OF: 
           - name: trackingInfo | type: FulfillmentTrackingInfo | description: Tracking info.  
              - name: trackingNumber | type: string | description: Shipping/delivery tracking number.  | validation: minLength 1, maxLength 100
              - name: shippingProvider | type: string | description: Shipping provider name. Can be either a predefined provider for automatic tracking link generation, or a custom provider name for manual tracking link management.  Predefined providers that support automatic tracking link generation: `"fedex"` - FedEx shipping services `"ups"` - UPS shipping services `"usps"` - United States Postal Service `"dhl"` - DHL shipping services `"canadaPost"` - Canada Post shipping services  For predefined providers: - The `trackingLink` field will be automatically populated based on the `trackingNumber` - Standard tracking URL formats are used for each carrier - No additional configuration is needed  For custom shipping providers: - Use any string value to identify your provider - You must manually provide the `trackingLink` - Useful for local carriers or specialized shipping services  | validation: minLength 1, maxLength 100
              - name: trackingLink | type: string | description: URL where customers can track their shipment status.  For predefined shipping providers: - Automatically generated based on the `trackingNumber` - Uses the carrier's official tracking URL format - No manual input required  For custom shipping providers: - Must be provided when creating the fulfillment - Should be a valid URL to the carrier's tracking page - Can include the tracking number as a parameter if needed  | validation: minLength 1, maxLength 2048, format WEB_URL
           - name: customInfo | type: CustomFulfillmentInfo | description: Custom fulfillment info.  
              - name: fieldsData | type: object | description: Custom fulfillment info in key:value form.  | validation: minItems 0, maxItems 100, format map
        - name: id | type: string | description: Fulfillment GUID.  | validation: format GUID
        - name: createdDate | type: string | description: Fulfillment creation date and time in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format.  | validation: format date-time
        - name: lineItems | type: array<FulfillmentLineItem> | description: Line items being fulfilled.  | validation: minItems 0, maxItems 300
           - name: id | type: string | description: Line item GUID (mirrors the GUID of the order line item).  | validation: format GUID
           - name: quantity | type: integer | description: Line item quantity.  * If this property isn't passed on creation, it defaults to the number of items not already linked to a fulfillment. * If the order does not have the requested quantity of line items available to add to this fulfillment, the fulfillment will not be created and an error is returned.  | validation: minimum 1, maximum 100000, format int32
        - name: status | type: string | description: The current status of the fulfillment process.  Supported values: + `"Pending"` - Initial state when fulfillment is created but processing hasn't started. + `"Accepted"` - Order has been received and validated for fulfillment. + `"Ready"` - Items have been picked and packed, ready for shipping. + `"In_Delivery"` - Items have been handed over to the shipping carrier. + `"Fulfilled"` - Delivery has been completed successfully.  The status typically progresses from Pending → Accepted → Ready → In_Delivery → Fulfilled. Status can be updated manually or automatically depending on your fulfillment workflow.  | validation: minLength 1, maxLength 100
        - name: completed | type: boolean | description: Fulfillment handling complete.  


```

### Examples

### Delete Fulfillment
```curl
curl -X DELETE \
  'https://www.wixapis.com/ecom/v1/fulfillments/0d824fc7-2621-4e97-a5c8-489ec1b43377/orders/4c51c360-399f-4276-96b1-d85f0963dbfd' \
  -H 'Authorization: <AUTH>'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.orders.Fulfillments.deleteFulfillment(identifiers)
 Description: Deletes an existing order fulfillment.
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  identifiers.orderId, identifiers.fulfillmentId, identifiers
 Method parameters: 
   param name: identifiers | type: DeleteFulfillmentIdentifiers  none | required: true 
        - name: fulfillmentId | type: string | description: GUID of the fulfillment to delete. | required: true | validation: format GUID
        - name: orderId | type: string | description: Order GUID. | required: true | validation: minLength 1, maxLength 100
 Return type: PROMISE<DeleteFulfillmentResponse>
  - name: orderWithFulfillments | type: OrderWithFulfillments | description: Order GUID and the order's associated fulfillments after deletion.  
     - name: orderId | type: string | description: Order GUID.  | validation: minLength 1, maxLength 100
     - name: fulfillments | type: array<Fulfillment> | description: Fulfillments associated with the order.  
        - ONE-OF: 
           - name: trackingInfo | type: FulfillmentTrackingInfo | description: Tracking info.  
              - name: trackingNumber | type: string | description: Shipping/delivery tracking number.  | validation: minLength 1, maxLength 100
              - name: shippingProvider | type: string | description: Shipping provider name. Can be either a predefined provider for automatic tracking link generation, or a custom provider name for manual tracking link management.  Predefined providers that support automatic tracking link generation: `"fedex"` - FedEx shipping services `"ups"` - UPS shipping services `"usps"` - United States Postal Service `"dhl"` - DHL shipping services `"canadaPost"` - Canada Post shipping services  For predefined providers: - The `trackingLink` field will be automatically populated based on the `trackingNumber` - Standard tracking URL formats are used for each carrier - No additional configuration is needed  For custom shipping providers: - Use any string value to identify your provider - You must manually provide the `trackingLink` - Useful for local carriers or specialized shipping services  | validation: minLength 1, maxLength 100
              - name: trackingLink | type: string | description: URL where customers can track their shipment status.  For predefined shipping providers: - Automatically generated based on the `trackingNumber` - Uses the carrier's official tracking URL format - No manual input required  For custom shipping providers: - Must be provided when creating the fulfillment - Should be a valid URL to the carrier's tracking page - Can include the tracking number as a parameter if needed  | validation: minLength 1, maxLength 2048, format WEB_URL
           - name: customInfo | type: CustomFulfillmentInfo | description: Custom fulfillment info.  
              - name: fieldsData | type: object | description: Custom fulfillment info in key:value form.  | validation: minItems 0, maxItems 100, format map
        - name: _id | type: string | description: Fulfillment GUID.  | validation: format GUID
        - name: _createdDate | type: Date | description: Fulfillment creation date and time in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format.  
        - name: lineItems | type: array<FulfillmentLineItem> | description: Line items being fulfilled.  | validation: minItems 0, maxItems 300
           - name: _id | type: string | description: Line item GUID (mirrors the GUID of the order line item).  | validation: format GUID
           - name: quantity | type: integer | description: Line item quantity.  * If this property isn't passed on creation, it defaults to the number of items not already linked to a fulfillment. * If the order does not have the requested quantity of line items available to add to this fulfillment, the fulfillment will not be created and an error is returned.  | validation: minimum 1, maximum 100000, format int32
        - name: status | type: string | description: The current status of the fulfillment process.  Supported values: + `"Pending"` - Initial state when fulfillment is created but processing hasn't started. + `"Accepted"` - Order has been received and validated for fulfillment. + `"Ready"` - Items have been picked and packed, ready for shipping. + `"In_Delivery"` - Items have been handed over to the shipping carrier. + `"Fulfilled"` - Delivery has been completed successfully.  The status typically progresses from Pending → Accepted → Ready → In_Delivery → Fulfilled. Status can be updated manually or automatically depending on your fulfillment workflow.  | validation: minLength 1, maxLength 100
        - name: completed | type: boolean | description: Fulfillment handling complete.  


```

### Examples

### Delete a fulfillment (with elevated permissions)
```javascript
import { orderFulfillments } from '@wix/ecom';
import { auth } from '@wix/essentials';

/* Sample identifiers value:
* {
*   orderId: 'e613320a-8e8f-4f8f-9d87-b5edc9f99788',
*   fulfillmentId: '91357295-a95c-4973-b210-281640f3e795'
* };
*/

const elevatedDeleteFulfillment = auth.elevate(orderFulfillments.deleteFulfillment);

export async function myDeleteFulfillmentFunction(identifiers) {
  try {
    const { orderWithFulfillments } = await elevatedDeleteFulfillment(identifiers);

    const fulfillmentsArray = orderWithFulfillments.fulfillments;
    console.log('Success! Deleted fulfillment', orderWithFulfillments);

    return orderWithFulfillments;
  } catch (error) {
    console.error(error);
    // Handle the error
  }
  
}

/* Promise resolves to:
 *
 * {
 *   "orderWithFulfillments": {
 *     "orderId": "e613320a-8e8f-4f8f-9d87-b5edc9f99788",
 *     "fulfillments": []
 *   }
 * } 
 *
 */
```

### Delete a fulfillment
```javascript
import { orderFulfillments } from '@wix/ecom';

/* Sample identifiers value:
 * {
 *   orderId: 'e613320a-8e8f-4f8f-9d87-b5edc9f99788',
 *   fulfillmentId: '91357295-a95c-4973-b210-281640f3e795'
 * };
 */

export async function myDeleteFulfillmentFunction(identifiers) {
  try {
    const { orderWithFulfillments } = await orderFulfillments.deleteFulfillment(identifiers);

    const fulfillmentsArray = orderWithFulfillments.fulfillments;
    console.log('Success! Deleted fulfillment', orderWithFulfillments);

    return orderWithFulfillments;
  } catch (error) {
    console.error(error);
    // Handle the error
  }
  
}

/* Promise resolves to:
 *
 * {
 *   "orderWithFulfillments": {
 *     "orderId": "e613320a-8e8f-4f8f-9d87-b5edc9f99788",
 *     "fulfillments": []
 *   }
 * } 
 *
 */
```

### deleteFulfillment (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 { orderFulfillments } from '@wix/ecom';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

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


async function deleteFulfillment(identifiers) {
  const response = await myWixClient.orderFulfillments.deleteFulfillment(identifiers);
};
```

---