Shopify fulfilment location for multiple locations within a single store

jason

We have integrated with our Shopify Store, which store has 2 locations, of which both fulfil online orders.

At present, CIN7 has no native functionality to automatically switch the sales location in CIN7 Core based on the Shopify fulfilment location for multiple locations within a single store.

The above causes orders, where stock items are set for auto-assembly, to go on back-order.

6

Comments

4 comments

  • Comment author
    Simon Grason

    This causes problems for us too, all orders come in with the same header location regardless of what Shopify says for the fulfilment location. 
    I had to write a python program to create fulfilments and Picks in Cin7 based on the Shopify fulfilment data. Orders have to be set to “No Picking” in the Shopify integration settings, then my program manually creates the fulfilment(s) and pick(s) for every single order via API. 
    This works to get my orders shipped, but the incorrect header location in Cin7 also means stock levels in Shopify are incorrectly updated as orders come in.
    Example:
    Warehouse 1 (default) - 0 in stock
    Warehouse 2 - 1 in stock
    Order comes in for 1 unit > Shopify warehouse 2 stock goes to 0
    order is assigned to warehouse 1 in Cin7 (even though Shopify says warehouse 2)
    Warehouse 1 available stock goes to -1 in Cin7 > Cin7 updates warehouse 1 stock on Shopify to -1 available, -1 on-hand and warehouse 2 stock to 1 available, 2 on hand
    The overall stock is correct (0 available, 1 on-hand) but the individual locations are wrong. It gets re-corrected after the order is shipped, but up to that point it remains in a confusing state where it looks like Warehouse 2 has available stock. 

    In our case that's our retail store, so the POS shows wrong stock and the staff are left scratching their heads. Also, our plan on switching to Cin7 was to show our live location stock levels on our website so our customers can see if we have available stock in the location they want to collect from. In the example above it'll show them we have 1 at our store and -1 at our warehouse
     

    0
  • Comment author
    flo

    We're experiencing exactly the same issue and wanted to add our experience in case it helps build the case for this feature.

    We have a single Shopify store with four locations, each of which needs to map to a different fulfillment location in Cin7 Core. We have set up the location mapping under Integrations → Shopify → Link Shopify locations to Cin7 Core locations, which looks like it should solve the problem — but it doesn't work for unfulfilled orders.

    The issue is that Cin7 Core only reads the Shopify fulfillment location when an order has already been fulfilled in Shopify. Since we fulfill our orders from Cin7 Core (not Shopify), all orders come through as unfulfilled, and Cin7 Core simply ignores the location mapping and falls back to the default location every time.

    We have tried enabling Order Routing (Settings → Reference Books) and setting 'Location for online sales' to Order Routing — but the routing table only supports geographic routing by country/state/postcode/city, which is useless when all your customers are in the same country but need to be routed to different fulfillment centres based on which Shopify location their order originated from.

    We understand that Cin7 Omni supports 'External Route Codes' which allow routing by Shopify location ID — this is exactly what we need, and we'd love to see this feature brought across to Cin7 Core.

    We have raised this with Cin7 Core support and are awaiting a response, but wanted to add our upvote and experience here as this feels like a fundamental gap for any business running multiple fulfillment locations out of a single Shopify store.

    0
  • Comment author
    Simon Grason

    @flo I'm told the location mapping used to work (Cin7 support docs still say it does) but Shopify changed the location from being in the order header to being on the line items and Cin7 only looks at the header information which just says the default store. The header info works for POS orders so they always fulfil in the right place, but any orders to ship are always the default location. 
    The other problem with the current integration is that the Pick in Cin7 may not match the Shopify fulfilment location. Meaning Shopify thinks stock is shipping from Location 1 and updates stock accordingly, but then Cin7 decides to create the Pick from Location 2. Once the order has actually shipped it'll correct itself, but before that point it'll look like the stock is wrong on Shopify.

    1
  • Comment author
    flo

    @simon Thank so much! All my orders come into cin7 as to ship - they just go to different departments/ 3PL. How would I fix this? 

    Even when I push though to pick, it chooses default (1) not the required location (2)… it's a bit of a nightmare for us! 

    0

Please sign in to leave a comment.