Skip to main content

Request and accept fulfillment orders

Once orders are placed on a retailer store, Collective takes care of creating orders on the supplier stores, so suppliers can fulfill orders to the end buyer.

In this guide you'll learn:

  • How can you push orders to a custom backend or ERP
  • How retailers can programmatically request fulfillment for orders managed by suppliers
  • How suppliers can drive fulfillments from custom backends such as OMS, WMS

  1. The order is first created on the retailer store.
  2. A fulfillment request is sent to the supplier.
  3. Collective automatically debits the retailer's Shopify Payments account.
  4. The supplier fulfills the order.
  5. Collective automatically credits the supplier's Shopify Payments account.

Anchor to Sync Shopify orders with a custom backendSync Shopify orders with a custom backend

As a retailer, the orders you receive for Collective products will have a Shopify Collective tag.

After the order is paid, there's a 2 minute delay to complete fraud checks. If the order isn't on hold, then Collective automatically sends a fulfillment request to the suppliers. This process links the retailer's fulfillment order with the supplier's order.

Once the order is created on the supplier side, the retailer order will also be tagged with {$supplier_name}. You can see the supplier order number that is linked to your order and the associated shipping cost in the Additional Notes. You can retrieve these notes by querying the order customAttributes.

You can listen to the following webhooks to synchronize orders into your system:

  • orders/create

  • orders/updated

    As a retailer you can mark the order as paid using orderMarkAsPaid. If you have Automatic Payments ON (configured in your Collective settings), marking the order as paid will also trigger a debit operation on your Shopify Payments account that subtracts the funds needed to pay the suppliers. Suppliers are paid once they fulfill the order on their side.

    As a supplier, you'll see the order on your store once the retailer sends a request for fulfillment.

    You can listen to the following webhooks to synchronize orders into your system.

  • orders/create

  • orders/updated

    Orders created by Collective will have the Shopify Collective and {$retailer_name} tags associated with them. You can see the retailer order number that is linked to your order in the Additional Notes. You can retrieve these notes by querying the order customAttributes.


Anchor to Request fulfillment ordersRequest fulfillment orders

Retailers can programmatically request a fulfillment for the supplier orders using fulfillmentOrderSubmitFulfillmentRequest. You can then listen to the following webhooks to know if this has been accepted by the supplier:

POST https://{shop}.myshopify.com/api/{api_version}/graphql.json

GraphQL query

query OrderFulfillmentStatus($orderId: ID!) {
order(id: $orderId) {
displayFulfillmentStatus
}
}

JSON response

{
"order": {
"displayFulfillmentStatus": "FULFILLED"
}
}

You can check the status of the automatic payments for a particular order by querying your shopifyPaymentsAccount and looking at the adjustments the associatedOrder.id.


Anchor to Accept fulfillment ordersAccept fulfillment orders

As a supplier, when you are ready to fulfill a specific order, you can do so by invoking fulfillmentCreate. If you have Automatic Payments ON, Collective will perform a credit operation on your Shopify Payments account once the order is fulfilled.

You can check the status of the automatic payments for a particular order by querying your shopifyPaymentsAccount and looking at the adjustments for the associatedOrder.id.



Was this page helpful?