Skip to content

Track orders placed through third-party marketplaces ​

Orders created through third-party marketplaces (Facebook, Google, etc.) use Shopify Payments as the processor. Fulfillment and payment capture behave differently from other channels.

Source ​

Requirements ​

How marketplace orders differ ​

AspectThird-party marketplaceOther channels
Transaction captureAfter fulfillment (marketplace initiates capture)Often captured before fulfillment
Immediate fulfillmentNo — hold period ~30 min–24 hUsually allowed immediately
During holdCannot change address, edit order, issue custom refunds, or manually captureNormal order ops

Hold period covers cancellation windows, payment authorization, and fraud review.

1. Use fulfillment orders (not legacy Fulfillment API) ​

As of API 2022-07, fulfill via FulfillmentOrder — not legacy Order + Fulfillment objects. Migrate before 2023-07.

2. Identify the source channel ​

Review fields when fetching an order:

FieldShopify PaymentsFacebook Payments
displayFulfillmentStatusON_HOLDUNFULFILLED
displayFinancialStatusAUTHORIZEDPAID
paymentGatewayNames["shopify_payments"]["instagram"]

Use source_name (set at order creation only) to determine channel — not gateway, which may show shopify_payments even for Facebook-channel orders.

3. Decide if the order is fulfillable ​

CheckValueWebhook hints
Order.displayFinancialStatusAUTHORIZED or PAIDorders/updated
FulfillmentOrder.statusOPENfulfillment_orders/order_routing_complete, fulfillment_orders/scheduled_fulfillment_order_ready, fulfillment_orders/hold_released

Note: line_items.fulfillable_quantity is 0 when a fulfillment order is on hold — do not use it alone. Check FulfillmentOrder.status before creating a fulfillment after order/create.

Best practices ​

  • Do not start fulfillments solely on orders/create, order_transactions/create, or order/paid — use fulfillment_orders/ready_to_fulfill (unstable API) and inspect FulfillmentOrder status.
  • During the Facebook Payments → Shopify Payments transition, branch on paymentGatewayNames / gateway until all stores are migrated.
  • Avoid fixed hold-duration assumptions — marketplace hold times vary.

Next steps ​

Curated technical notes — open source on GitHub