- See the Shipments page for more efficient methods of marking orders as shipped - ChannelAdvisor interprets the data provided through the Shipments methods to intelligently create fulfillments as needed.
- This section outlines direct methods of retrieving and updating Fulfillment-level information. It also provides information on updating a fulfillment previously marked as shipped, and moving an item from one fulfillment to another.
- Fulfillment(s) are created when an order is created in the system - whether that order originated from the marketplace or via a seller's integration.
- Reference the entity tables below for information about what each field means.
- In most cases, the fields are not required - it all depends on the seller's goals.
- DeliveryStatus is the field that controls whether or not the order and items are marked as shipped in the API.
- Any value other than "NoChange" will result in some action depending on the value set.
- No validation is completed on the DeliveryStatus - we recommend treating this value as if a shipment was completed, where 'Complete' simply means the item was shipped...not that it is actually delivered.
- ChannelAdvisor does not link the tracking number to a carrier or class, and no link is made to a carrier's site, and as a result cannot update the DeliveryStatus on the seller's behalf.
- Some marketplaces require valid Tracking Number information - or it will be rejected when ChannelAdvisor sends it to them.
- An option exists to fulfill an order from a different DistributionCenterID than what may have been defined in the original order data - this change is not reflected at the marketplace until the next quantity update is sent to the marketplace.
- Read more about Distribution Centers and accessing DistributionCenterIDs.
- Any Carrier and Class values being sent to create or update a Fulfillment must exist in the Account Carrier/Class list.
- External Fulfillment Center Code will identify the marketplace's defined fulfillment center ID/code in string format. This currently applies to only Amazon FBA (Fulfillment by Amazon) orders, but not Multi-Channel FBA orders.
- On multi-quantity/multi-item orders, fulfillments may be split by item and/or quantity - it's important to capture the DistributionCenterID in the fulfillment and correlate it to the correct Distribution Center:
- Item 1 is associated with distribution center 1.
- Item 2 is associated with distribution center 2.
- See more about the Distribution Center endpoint to display Distribution Center data.
Process for Partial or Split Fulfillments (Same Steps for Changing the Distribution Center)
- When needing to mark one SKU in an order as shipped, but leaving the other SKU(s) to unshipped, the request process needs to execute like this:
- Create a new fulfillment
- Define the specific DistributionCenterID within the new fulfillment to move an item, some quantity of an item, or an entire fulfillment to a different Distribution Center.
- Optionally create the new fulfillment and mark it as shipped in the same step.
- Move the fulfillment item(s) from the original fulfillment to the new fulfillment.
- Mark the new fulfillment as shipped (if not mark it as shipped when creating it).
- Mark the original fulfillment as shipped once all other separate shipments have been created and products moved out of the original fulfillment.
- Create a new fulfillment
All available endpoints for Fulfillments.
All available endpoints for FulfillmentItems.
Relevant Fulfillment Entities for POST / PATCH / PUT
*Requires a value other than "NoChange" to mark the order as shipped (if intending to mark an order as shipped within the same request).
|Property||Type (Max Length)||POST Required||PATCH Required||Description|
|ID||integer (32 bit)||Read Only||Required in URL||Uniquely identifies the ChannelAdvisor Fulfillment ID.|
|ProfileID||integer (32 bit)||Required in Body||Optional||Uniquely identifies the ChannelAdvisor account.|
|OrderID||integer (32 bit)||Required in Body|
|Uniquely identifies the order within the ChannelAdvisor account.|
|Type||enum||Optional||Optional||Indicates how the items will be fulfilled.|
|DeliveryStatus*||enum||Optional||Optional||Indicates the progress of the fulfillment. |
Requires a value other than 'NoChange' to trigger a "final" (note: can be changed back) status on the item or order.
|TrackingNumber||string (50)||Optional||Optional||Provided by a shipping carrier to track the progress of a shipment.|
|ShippingCarrier||string (50)||Optional||Optional||Identifies the shipping carrier or agent of delivery.|
|ShippingClass||string (50)||Optional||Optional||Identifies the class of shipment or delivery.|
|DistributionCenterID||integer (32 bit)||Optional||Optional||Identifies the distribution center from which the fulfillment will originate. This value is defined by the marketplace, but aligns with the distribution centers internal to the ChannelAdvisor system created by the seller. To change the value, create a new fulfillment and move items to the new fulfillment - see more under the Fulfillments page.|
Read more about Distribution Centers and accessing DistributionCenterIDs.
|ExternalFulfillmentCenterCode||string||Read Only||Read Only||Identifies the external distribution center from which the fulfillment will originate. This value is defined by the marketplace and does not align with the distribution centers internal to the ChannelAdvisor system created by the seller. This value cannot be changed, and will only apply to FBA orders.|
|ShippedDateUtc||DateTimeOffset||Optional||Optional||Timestamp when the fulfillment was sent.|
|SellerFulfillmentID||string (50)||Optional||Optional||Identifier provided by the seller. Amazon only allows integers.|
|Items||FulfillmentItem||Recommended||Optional||The fulfilled items which comprise the fulfillment. Include this data to add a new fulfillment for partial shipment and/or mark it as shipped within the same request. See fields in FulfillmentItem entity table below.|
Relevant FulfillmentItem Entities for POST / PATCH / PUT
|Property||Type (Max Length)||POST Required||PATCH Required||SOAP Equivalent||Description|
|OrderItemID||integer (32 bit)||Conditional||Optional||LineItemID||Required if ProductID is not provided. The ChannelAdvisor generated unique identifier for the OrderItem.|
|ProductID||integer (32 bit)||Conditional||Optional||N/A||Required if OrderItemID is not provided. The ChannelAdvisor generated unique identifier for the Product.|
|Quantity||integer (32 bit)||Recommended||Optional||Quantity||The number of units in this fulfillment.|
Fulfillment Request Examples
- Cancel a Shipping Label
- Create a New Fulfillment
- Create a New Fulfillment & Mark as Shipped
- Mark an Existing Fulfillment as Shipped
- Mark Fulfillment as Shipped & Apply Shipping Costs
- Move Entire Fulfillment Into New Fulfillment
- Move Partial Quantity of Fulfillment Item Into Another Fulfillment
- Move Specific Fulfillment Item Into Another Fulfillment
- Purchase a Shipping Label
- Retrieve a Shipping Label
- Retrieve Existing Fulfillments
- Retrieve Shipping Label Rates
- Set Shipping Costs
- Update Existing Fulfillment Carrier/Class