Orders shipped in multiple packages create a practical communication challenge: the store must record exactly which products left the warehouse, keep the remaining items visible as unfulfilled, provide tracking information for each shipment, and avoid sending a misleading message to the customer. WooCommerce’s Fulfillments system is designed to organize this process around selected order items and quantities.
With this workflow, you can create a fulfillment from the order list or order details screen, save it for later review, mark it as fulfilled, attach tracking information, and optionally notify the customer. The key is to distinguish an individual fulfillment record from the order-level fulfillment status. This prevents confusion between a shipment that is ready to dispatch and an order that is only partially or completely fulfilled.
What WooCommerce Order Fulfillment Handles
WooCommerce Order Fulfillment handles shipment records for specific products and quantities within an order. This is useful when one order is dispatched in separate packages or when only part of the order is ready to leave the store. Instead of treating the entire order as shipped at once, you can record each shipment event separately.
A fulfillment record represents the selected items included in one shipment. It can contain shipping information and tracking details, or it can be recorded without tracking information when tracking does not apply. A single order can therefore contain multiple fulfillment records, with each record reflecting a different package or dispatch event.
Fulfillment records versus order status
There are two different levels to monitor. The individual fulfillment status describes one shipment record. The order-level fulfillment status summarizes what has happened across the order’s fulfillment records. These levels should not be treated as interchangeable.
For example, one fulfillment may be marked Fulfilled because its selected items have shipped, while the order itself remains Partially Fulfilled because other products have not yet been fulfilled. The order-level fulfillment view is based on the fulfillment records and should not be confused with ordinary WooCommerce order statuses such as Processing or Completed.
How to Create a Partial Fulfillment
To create a fulfillment for only part of a WooCommerce order, open the fulfillment interface from the order list or from the order details screen. Select the products and quantities that are included in the current shipment. This selection is the foundation of the partial shipment record, so it should match what has actually been dispatched.
After selecting the items, add shipping information when it is available. You can also choose whether the customer should be notified. The final action determines whether the shipment remains a preparation record or is recorded as shipped.
Selecting items and quantities
Select only the products included in the current package. If an order contains several products but only some are ready, do not select the entire order. Likewise, check the quantity for every selected product before confirming the fulfillment.
This review is important because marking an item as fulfilled communicates that it has been sent. A separate fulfillment record can be created for another package or shipment event later. The records should reflect the actual dispatch sequence rather than an assumed complete shipment.
- Select the products included in the current package.
- Confirm that the selected quantities match the items actually dispatched.
- Leave products that have not shipped outside the current fulfillment.
- Create another fulfillment record for a later shipment event.
Choosing draft or immediate fulfillment
When the shipment record is prepared but the items have not yet been shipped, choose Save as draft. A draft keeps the selected shipment unfulfilled so it can be reviewed or completed later. It is appropriate when the package is being prepared but dispatch has not been confirmed.
When the selected items have been dispatched, choose Fulfill items. This records the selected shipment as fulfilled and can send the customer shipment and tracking information when the notification option is enabled. Before using this action, verify both the items and quantities.
Draft, Partially Fulfilled and Fulfilled Explained
The terms Draft, Partially Fulfilled and Fulfilled describe different aspects of the fulfillment workflow. The main source of confusion is that Draft and Fulfilled are individual fulfillment statuses, while Partially Fulfilled is an order-level fulfillment status.
Understanding this distinction makes it easier to read a multi-package order. A fulfilled package does not necessarily mean that every product in the order has shipped. Conversely, an order can show a partial state because some fulfillment records are still incomplete, even when shipment activity has already been recorded.
Individual fulfillment statuses
The default individual fulfillment statuses are Draft and Fulfilled. A Draft record represents a shipment that has been prepared but not yet marked as shipped. Creating, editing or removing a draft does not send customer notifications about tracking information.
A Fulfilled record indicates that the selected items in that shipment have been sent. This status applies to the particular fulfillment record, not automatically to every item in the order. If the order contains several packages, each package can have its own fulfillment record and status.
Order-level fulfillment statuses
The default order-level fulfillment statuses include No Fulfillments, Partially Fulfilled and Fulfilled. No Fulfillments means that no fulfillment record has been created for the order.
An order is Partially Fulfilled when some but not all items have been fulfilled, or when fulfillment records exist but some remain incomplete. The order-level Fulfilled state applies when all order items have been fulfilled. Therefore, Partially Fulfilled should not be presented as another name for a Draft or as a standard WooCommerce order status.
Adding Tracking Information to Each Shipment
Tracking information belongs to the relevant fulfillment record. When creating a partial shipment, add the tracking details for that package if they are available. When a fulfillment already exists, tracking information can also be added by editing the record.
The system supports shipments with tracking information and shipments without tracking information. The appropriate choice depends on the shipment being recorded. If tracking is used, verify the data before the fulfillment is confirmed and before customer notification is enabled.
Automatic and manual tracking entry
Tracking can be added through automatic tracking-number detection when the system identifies the number. Automatic detection should not be treated as a guarantee that every carrier or tracking format will be recognized.
For manual entry, provide the tracking number, shipping provider and tracking URL. The provider selection can include Other when the necessary provider is not represented by the available choices. Entering a complete and accurate URL is important because customers may use the notification to check the shipment.
- Use automatic tracking-number detection when available.
- For manual entry, provide the tracking number, shipping provider and tracking URL.
- Check the number, provider and URL before sending the notification.
- Record the shipment without tracking information when tracking does not apply.
For a partially fulfilled order, create or edit the fulfillment for the items in the relevant package, add its tracking information, and then choose either Save as draft or Fulfill items according to the shipment stage.
When Customers Receive Shipment Notifications
Customer notifications depend on the fulfillment action and the notification setting. Entering a tracking number alone does not mean that a customer will always receive an email. The shipment must be handled through the relevant fulfillment action, and the customer notification option must be enabled.
When items are fulfilled, WooCommerce can send the shipment and tracking information to the customer if notification is enabled. This makes the transition from a prepared shipment to a confirmed dispatch the important communication point in the workflow.
Notification behavior for drafts and fulfilled shipments
Saving a fulfillment as a draft does not notify the customer about tracking information. Draft creation, editing and removal also do not send customer emails. This allows the store to prepare or correct a shipment record without communicating that the package has been dispatched.
Moving a draft to Fulfilled can trigger the shipment notification when the notification option is enabled. Updating an already fulfilled fulfillment may also send the customer an update notification unless the notification toggle is explicitly disabled. For this reason, review the setting whenever an existing fulfillment is edited or removed.
Before completing the action, verify that the selected products and quantities are correct, that tracking details are accurate, and that the Notify Customer setting reflects the intended communication. WooCommerce does not provide a delivery guarantee through this notification; it communicates the fulfillment and tracking information recorded by the store.
WooCommerce Email Settings and Troubleshooting
If a shipment notification is expected but does not arrive, first separate the fulfillment action from the store-wide email configuration. A correctly entered tracking number does not override a disabled notification or an email configuration problem.
Email configuration checklist
Review the settings under WooCommerce > Settings > Emails. Individual WooCommerce email notifications can be enabled or disabled there. The area also includes sender details and template settings, which are useful when checking how the store’s emails are configured.
Use this checklist when reviewing the notification setup:
- Confirm that the relevant WooCommerce email notification is enabled.
- Check whether the fulfillment action had customer notification enabled.
- Review the configured sender details.
- Review the email template settings.
- Confirm whether the action was a draft save or a fulfillment confirmation.
Logs and conflict testing
When the expected email is not sent, review WooCommerce logs as part of the troubleshooting process. Logs can help establish whether the relevant action generated the expected email event or whether the problem needs further investigation.
Official troubleshooting guidance also recommends testing for conflicts involving extensions, plugins or themes. This means checking the notification with other extensions or plugins disabled and using a default theme as part of the conflict test. Do not assume that one cause applies to every store, especially when third-party integrations are involved.
Third-party shipping, warehouse, ERP, marketplace and fulfillment-service integrations may not use the same statuses or notification behavior as the built-in WooCommerce Fulfillments workflow. Verify their specific behavior separately before relying on a shared process.
For a reliable WooCommerce order fulfillment workflow, select the actual products and quantities in each package, use Draft until the shipment is ready, and use Fulfill items only after dispatch has been confirmed. Monitor the individual fulfillment records separately from the order-level status, because one fulfilled package can still leave the order Partially Fulfilled. Add tracking carefully, choose the notification setting deliberately, and review WooCommerce email settings when a message is missing. Explore our WordPress plugins, WooCommerce extensions, themes and membership plans to find the right tools for your website.