# Fulfillment Workflow

### Overview

This workflow shows how orders move from confirmation to final delivery.

It gives a business-side view of fulfillment inside the platform.

It covers both:

* in-house delivery
* third-party logistics integration

### Before you start

Complete the setup in these sections first:

* [Logistics Core Module](/whatsapp-commerce/logistics-integration/logistics-core-module.md)
* [Customize Delivery Methods](/whatsapp-commerce/logistics-integration/logistics-core-module/customize-delivery-methods.md)
* [Order Management](/whatsapp-commerce/manage-orders/order-management.md)

If you use a logistics partner, connect it first in [Delivery Partner Integrations](/whatsapp-commerce/logistics-integration/delivery-partner-integrations.md).

Then complete the catalog delivery setup.

{% stepper %}
{% step %}

### 1. Choose your delivery model

Start by deciding how orders will be fulfilled.

You can use:

* **In-house delivery** — manage delivery with your own team
* **Third-party logistics** — connect a partner such as Delhivery

You can also use both models together.

For example:

* use in-house delivery within a `5 km` radius or nearby pincodes
* use a third-party partner for longer-distance deliveries

If you use a third-party partner, connect that partner first.

Do this before you configure partner-based delivery areas or start processing deliveries.

See [Customize Delivery Methods](/whatsapp-commerce/logistics-integration/logistics-core-module/customize-delivery-methods.md) and [Delivery Partner Integrations](/whatsapp-commerce/logistics-integration/delivery-partner-integrations.md).
{% endstep %}

{% step %}

### 2. Configure the core delivery settings

Set up the delivery rules for the catalog before you start shipping orders.

If you use a third-party partner, this step comes after the partner is connected.

Complete these areas:

* shop location
* pickup options
* default package values
* delivery areas and serviceability
* in-house or partner-based delivery rules
* automatic pickup and assignment rules, if required

This ensures checkout shows the correct fulfillment options.

You can configure delivery behavior by area.

That means one area can use in-house delivery, while another area uses a third-party partner.

See [Logistics Core Module](/whatsapp-commerce/logistics-integration/logistics-core-module.md).
{% endstep %}

{% step %}

### 3. Add product shipping details

While adding products, you can include package details such as:

* Product weight
* Package dimensions
* Fragile option, if needed

These values help calculate shipping charges correctly.

If product weight or package dimensions are not added during product creation, the system checks the default package values configured under delivery settings.

This fallback keeps shipping calculations working.

See [Add a single product or Creating a record](/whatsapp-commerce/manage-products/adding-products/add-a-single-product-or-creating-a-record.md) and [Default Package Settings](/whatsapp-commerce/logistics-integration/logistics-core-module/default-package-settings.md).
{% endstep %}

{% step %}

### 4. Customer places the order

When a customer places an order, the available fulfillment methods are shown at checkout.

The customer can choose:

* delivery
* pickup from shop

For delivery orders, the checkout can show:

* your in-house delivery option
* one or more partner-based delivery options

This depends on your delivery area and rules.

For example, nearby addresses can be routed to in-house delivery, while outstation addresses can be routed to a partner setup.

See [Order Management](/whatsapp-commerce/manage-orders/order-management.md), [Customize Delivery Methods](/whatsapp-commerce/logistics-integration/logistics-core-module/customize-delivery-methods.md), [Hyper-local Delivery](/whatsapp-commerce/logistics-integration/logistics-core-module/customize-delivery-methods/hyper-local-delivery.md), and [Domestic Delivery](/whatsapp-commerce/logistics-integration/logistics-core-module/customize-delivery-methods/domestic-delivery.md).
{% endstep %}

{% step %}

### 5. Review and confirm the order

Once the order is placed:

* check payment status
* verify the delivery address
* confirm stock availability
* move the order to the required internal status

This is the handoff point between order capture and fulfillment.

If the customer selects pickup:

* the order is marked for **Pickup from Shop**
* no delivery partner is assigned
* no pickup request is sent to a logistics provider

If the customer selects in-house delivery:

* the order stays in your internal delivery flow
* no third-party pickup request is created
* your team handles dispatch and completion

If the customer selects partner-based delivery:

* the order continues through the provider-linked flow
* pickup request and assignment rules can apply

See [Pickup Configuration](/whatsapp-commerce/logistics-integration/logistics-core-module/pickup-configuration.md).
{% endstep %}

{% step %}

### 6. Pack the order

Once the order is approved:

* prepare the items
* print the invoice or packing copy
* scan the QR code from the invoice, if needed
* update the order to the packing stage

This helps the team move verified orders into shipment quickly.

See [Bulk Order Printing for Packaging](/whatsapp-commerce/logistics-integration/logistics-core-module/bulk-order-printing-for-packaging.md) and [Printing Orders](/whatsapp-commerce/manage-orders/printing-orders.md).
{% endstep %}

{% step %}

### 7. Dispatch the order

After packing and verification, dispatch depends on the selected delivery model.

For **in-house delivery**:

* assign the order to your internal delivery team
* move the order into your delivery-ready stage
* dispatch it based on your operational process

For **third-party delivery**:

* create a manual pickup request from the order, or
* trigger pickup automatically from a selected order status

For automatic pickup initiation:

* enable the setting
* select a trigger status, such as **Processed**
* when the order reaches that status, the system sends the pickup request automatically

See [Automatically Initiate Request to Pickup](/whatsapp-commerce/logistics-integration/logistics-core-module/automatically-initiate-request-to-pickup.md) and [Automatic delivery assignment](/whatsapp-commerce/logistics-integration/logistics-core-module/automatic-delivery-assignment.md).
{% endstep %}

{% step %}

### 8. Track delivery progress

Monitor the delivery from the order.

You can:

* view delivery status from **Pending** to **Delivered**
* track the order progress
* check delivery details

For partner-based delivery, you can also review provider details and synced updates.

If needed, you can:

* update delivery
* cancel delivery
* reassign a new delivery

See [Delivery Details in Order (360 View)](/whatsapp-commerce/logistics-integration/logistics-core-module/delivery-details-in-order-360-view.md) and [Third-party Integrated Delivery Provider (360 View)](/whatsapp-commerce/logistics-integration/logistics-core-module/delivery-details-in-order-360-view/third-party-integrated-delivery-provider-360-view.md).
{% endstep %}

{% step %}

### 9. Close the fulfillment cycle

Once the order is delivered:

* the status changes to **Delivered**
* the delivered date and time are recorded

This confirms successful fulfillment.

You can then move the order into your final business workflow for closure, reporting, or returns handling.
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.pickyassist.com/whatsapp-commerce/logistics-integration/fulfillment-workflow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
