About our 3PL Fulfillment Integration to Shopify - Excelsior Integrated
post-template-default,single,single-post,postid-16769,single-format-standard,ajax_fade,page_not_loaded,,qode-title-hidden,qode-child-theme-ver-1.0.0,qode-theme-ver-11.2,qode-theme-bridge,wpb-js-composer js-comp-ver-6.1,vc_responsive

About our 3PL Fulfillment Integration to Shopify

About our 3PL Fulfillment Integration to Shopify

Shopify is a leading ecommerce platform which many online merchants use for an ecommerce storefront and order management system. At Excelsior we have built a 3PL fulfillment integration to Shopify that allows us to hook into to your Shopify account to automatically pull new orders, confirm shipped orders, and sync inventory. Here’s how it works:

Automated Order Pull:

At scheduled times every day, Excelsior will automatically pull in new orders from Shopify. Usually this occurs at 8am and noon, though the second run is dependent on your account’s same-day cutoff time. All the address and order-item information is included in the Excelsior order. The ship method can be copied directly from Shopify or mapped by Excelsior (for example: “free shipping” gets mapped to “USPS First Class Mail”).

Excelsior has validation rules for which orders will import:

  • Fulfillment Status: Excelsior only pulls orders with a fulfillment status of “partial” or “unshipped”
  • Financial Status: An order will be skipped if it has a financial status of “pending”, “voided” or “refunded”.
  • Order items: must have a fulfillable quantity above zero, a “requires_shipping” property that’s true, and cannot have a fulfillment status of “fulfilled”.
  • Valid Items: All items on an order must be valid. This means the item SKUs in Shopify must match those in Excelsior (or be mapped by Excelsior’s integration manually). This is something we’ll review during implementation.
  • Sufficient Inventory: All items on the order must have sufficient inventory in Excelsior’s system, or we are not able to create an order.
  • Valid Data / Foreign characters: Every order must have sufficient data (all required address fields) and must have acceptable English characters.


Order Tagging: As Excelsior’s integration is running through the open Shopify orders, it will tag each one to signify the action taken. It will tag the order with a “FULFILLMENT IN PROCESS” tag, if that order passes all the above checks and Excelsior is able to successfully import it for fulfillment. Or it will tag the order with an error tag, if it fails to import an order for any of the above-mentioned reasons. Error tags include: “FULFILLMENT ERROR INVENTORY”, “FULFILLMENT ERROR CHARACTER MAX”, “FULFILLMENT ERROR FOREIGN CHARACTER”, “FULFILLMENT ERROR SHIP ADDRESS”, and “FULFILLMENT ERROR INVALID ITEM”.

Item Mappings, Additions and Bundles: Generally every fulfillable item in shopify should have a SKU that matches a SKU in Excelsior. But situations can arise where you may want to add items to an order, substitute one SKU for another, or create a shipping bundle where one item in shopify corresponds to multiple items in Excelsior. We can set these rules up for you. Some examples include:

  • Map one shopify SKU to a different Excelsior SKU
  • Map one Shopify SKU to a “bundle” of multiple Excelsior SKUs
  • Add a promo item to an order if the order value exceeds $100
  • Add a different promo item to an order for a customer’s first/second/third/etc order
  • Substitute item X for item Y


Order Skipping: Excelsior will skip any order that has a “HOLD” tag applied to it, or a “HIGH RISK” tag applied to it, before our integration imports it. If you do not see a “FULFILLMENT IN PROCESS” tag on the order, then you are free to apply a HOLD tag to the order if you’d like to keep it out of the Excelsior fulfillment system temporarily. Customers can also setup automated processes/scripts in shopify using Shopify Flow, that identify problematic orders and tag them with “HIGH RISK” until they have a chance to review them. Read more about Shopify Flow here: https://help.shopify.com/en/manual/apps/apps-by-shopify/flow

Order Cancelling: If you need us to cancel an order in the Excelsior system, that same order will import again into Excelsior on the next integration run, unless it is handled in Shopify as well – either by cancelling it, marking it refunded, or marking it fulfilled.

Order Editing: Once an order is imported into Excelsior’s system, any edits made in Shopify will not be carried into Excelsior. Also be aware that orders that have items with missing or invalid SKUs in Shopify, will not be fixed after you fix the item setup in shopify. Order item data is not editable after the order is placed, so if there’s a mismatch it will have to be fixed by Excelsior through an order exception.

Multi-Warehouse Order Assignment: If your inventory is stored in both our east and west coast warehouses, we will need to institute logic to handle which warehouse the order is assigned to. Unfortunately, Shopify does not have a way of assigning the correct warehouse and decrementing inventory accordingly. The most basic order assignment logic involves checking the ship to state to determine the closest warehouse, then checking available inventory at that warehouse. If inventory is insufficient, fall back to the next-closest warehouse. We can add nuances to these rules for each customer.

Order confirmation: After Excelsior physically ships an order and it is marked COMPLETE in our system, our confirmation process will automatically mark that order as fulfilled in Shopify. The order confirmation is a scheduled batch process that runs at 6pm ET and/or 6pm PT (can vary by customer). Orders are confirmed at the line item level. For each order that we mark as shipped, we include the following data which populates in Shopify:

  • Location id
  • Tracking Number
  • Ship method
  • Line items: the specific line items we fulfilled
  • Notify Customer: this determines whether shopify sends the customer an email confirmation. It can be true or false. Default Excelsior setup is TRUE.

Inventory Sync: Not all clients choose to use this feature, but Excelsior offers an Inventory Sync to Shopify. We can run the inventory sync as often as a client wants, but in most cases it runs once per day in the evening. There must be a one to one relationship between the Excelsior item and the shopify item – item mappings and bundles will complicate the inventory sync rules. Clients can set up each item in Excelsior to either sync or not sync, and they can also set the sync “buffer”. The buffer quantity is subtracted from the quantity available that Excelsior sends to Shopify, so it acts as a safety net against over selling. In the Excelsior portal, clients have access to two reports:

  1. Inv Sync Maintenance: this is where you set each item’s sync flag and buffer.
  2. Inventory Sync: these list the results of the latest inventory sync.

To get started: Please talk to Excelsior’s IT support team. The first step is to grant us a login to your shopify account. We will login and generate a private app in shopify called “Excelsior Integrated” with read/write access to both orders and inventory resources. We will then utilize the API keys from the private app in our integration to your store. Setup can take 1-3 days.