The integration with Shopify is fairly standard and provides all of the flows needed for a complete integration.

Order Management

Order Download

The default integration downloads orders that are unfulfilled based on when the order was last updated. The updated date allows the order to be resent by updating the order in Shopify.

Lines that do not require shipping are typically removed and not brought to the warehouse.  Order attributes like tags, site name, shipping methods, and notes are often included.

Fulfillment Orders:  Shopify automatically creates Fulfillment Orders for each order that is placed.  The purpose of this is to allow an order to be split across multiple locations and multiple 3pl services.  Because WarehouseOS is typically serving as a self-fulfillment, the integration with Shopify does not download Fulfillment Orders.  Details like Order Tags are often used to make decisions on order processing and those are not yet available through Fulfillment Orders.

Order Updates

WOS doesn't currently allow orders to be updated once they are created.  Orders must be deleted and resubmitted.  But orders get locked once they are batched and an integration can't delete these orders.  This makes any attempt at an automated order update potentially inconsistent.  

Most customers have decided that manually deleting orders to ensure they can control the process is a better approach than an automation that might not always be successful.

Cancelled Orders

WOS does not have a standard flow that reads and updates cancelled orders.  Please read the Order Updates section above for an explanation as to why.

WOS has a flow for cancelled orders that can be added to your account up on request.  It does the following:

  • Every 5 minutes read into Shopify for recently cancelled orders
  • Check WOS to see if those orders still exist
  • Attempt to delete the order  (CustomField4 is updated to indicate the request came from Shopify Cancelled orders.  This is done so the History Log has some record as to why the order was deleted.)
  • If the order can't be deleted, then the Notes field is updated to start with CANCELLED.
    • Force Show Order Notes during the packing stage would need to be turned on to help catch these orders
    • This would also mean that all order notes would pop up for the packer to see them


After an order is picked in WarehouseOS, the picked details are pushed back to Shopify to create a shipment.  This can happen at the time of Picking or Packing.  WarehouseOS recommends performing this operation at Packing.  If an integration between WarehouseOS and a Shipping system is setup, tracking details will be gathered so that the Shipment created in Shopify includes those details.

Shopify's change to Fulfillment Orders requires fulfillments are created against a fulfillment instead of directly against the order.  If multiple fulfillments were created, the WarehouseOS integration will loop through each fulfillment to identify order lines that were fulfilled and submit a fulfillment against each Fulfillment Order.

Auto-fulfilling Non-shippable Lines

Non-shippable lines are not brought to the warehouse.  An optional process will look up the order to identify any non-shippable lines and include those when creating the fulfillment for the order.  This allows these lines to be auto-fulfilled as part of the fulfillment creation process

Moving Fulfillment Orders

Fulfillment Orders are assigned to a specific location in Shopify.  If there is an Area to Location integration between WOS and Shopify, an optional process will check the location of the fulfillment and ensure it matches the area setup in WOS.  If they are not the same, the Fulfillment Order will be moved to the matching location before a fulfillment is created.  This ensures that inventory is adjusted from the correct location when the fulfillment is created.

Local Pickup Options

Shopify allows the option of tagging an order as "Ready for Pickup".  A pickup notification is sent to the customer and the fulfillment is finally created when that order is picked up.  Instead of creating a fulfillment, the WarehouseOS integration can identify local pickup orders and tag them as "Ready for Pickup" instead of creating a fulfillment.  This step is not done with each order line, but is just done with the order as a whole.  Short-picked order lines are not reported back to Shopify in this step.

Inventory and Inventory Integration

Items setup in Shopify can be automatically downloaded into WarehouseOS.  WarehouseOS downloads each variant as a separate item.  The SKU value is optional in Shopify but is required to bring that item into WarehouseOS.  The Barcode value in Shopify will be added as the Item's Alias value.

Inventory Adjustments

Adjustments in WarehouseOS can be pushed up to Shopify to make the same adjustment in that system.  The variant's Inventory Item Id is required to make the adjustment.  If the Inventory Item Id is not provided on the item in WOS, Shopify can be queried based on sku to find it.  The sku value must be unique for that lookup to be applied.

Shopify does not require a SKU value and allows that SKU to be duplicated when items are cloned.  This can cause complications with the Shopify and WarehouseOS integration.  For a better understanding how the issues this can cause and how to work around it, please read Shopify Inventory Integration

Inventory Reconciliation

Current inventory levels can be downloaded and compared to WarehosueOS inventory in a custom Inventory Discrepancy report.  This can help identify issues where transactions weren't synced or differences in the systems occur.

Integration Options

Area to Location Integration

Multiple Areas in WarehouseOS can be linked back to a Location in Shopify.  Adjustments made in WarehouseOS will make an adjustment in Shopify against the matching location.  Movements in WarehouseOS between two different Areas can result in matching adjustments in Shopify to replicate that movement of inventory.