Connect Shopify to Zenventory

Prerequisites:

  • Before they can sync to Zenventory, all Shopify products must have a unique SKU assigned (including variants).  If some of your products are missing a SKU in Shopify, you can add them easily using the Bulk Editor described in this article.  Inventory synchronization will fail for any item missing a SKU in Shopify.
  • All Shopify products must be marked as a physical product and the option to track inventory in Shopify must be enabled with Zenventory as an available stock location.  Inventory synchronization will fail for any product where these two settings are disabled in Shopify.
  • Requires the use of the free Shopify Flow app installed within your Shopify account.

Shopify Integration Functionality  (updated 6/27/2023)

This can be a technical setup that requires quite a few settings adjustments in your Shopify account and an understanding of location priorities, shipping origin locations, and order routing with the free Shopify Flow app.

  • Pulls items, their details (sales price, shipping weight, UPC, cost) and quantities from Shopify into Zenventory during initialization (unless a matching SKU already exists.  If a matching SKU already exists in Zenventory, then the connection is made, but no data is downloaded from Shopify).  Once the item has been downloaded/connected to Zenventory, then any changes made to the item details in Shopify will not automatically carry over to Zenventory.  
  • Pulls new fulfillment orders into Zenventory that have been (1) assigned to the Zenventory fulfillment app location within Shopify and (2) a fulfillment request has been created for Zenventory.   
  • Pushes updated inventory stock levels from Zenventory to Shopify for matching SKUs (if stock updates is enabled).
  • Pushes order status update when completed, shipped, or canceled from Zenventory to Shopify.  If a fulfillment order is cancelled, then the order will transition from In Progress to Unfulfilled status in Shopify.
  • Pushes shipment data from Zenventory to Shopify

Update interval (maximums):

  • All actions:  15 minutes

Configuring the integration

NOTE: If you have the Shopify Basic Plan subscription tier, then you have to use the Shopify App Store install method.  Click this link for setup instructions for Shopify Basic Plan subscribers.

To begin the integration process, you must have a Shopify subscription active.

  1. Start by logging in to your Shopify store.
  2. Navigate to the apps page on the left hand menu.
  3. Click on “App and Sales Channel Settings".  shopifydevelopapps2
  4. Click on "Develop App" and then click  “Create an app”.shopifydevapps3createappshopify

  5. Set a name for your private app that makes it easy to identify, then click "Create App."zenventoryshopifyname-600x350-1
  6. Click "Configure Admin API Scopes"  apiscopesshopify
  7. Make sure the following checkboxes are selected, and leave ALL of the rest unchecked.ShopifyAppPermissions
  8. Click "Save" (1) to save the permissions you just selected and then select the "API Credentials" tab (2).saveshopifypermissions-1536x262
  9.  Record your API Key and API Secret Key values as you will need them to finish the setup in Zenventory.apikeyandsecretshopify
  10. Click the "Install App" button. installappshopify-1536x182
  11. Go back to the API credentials tab.  Click "Reveal Token Once" to obtain the Admin API Access Token.  You will need this to set up the integration in Zenventory.  NOTE: You will only be able to reveal this token one time, so make sure to record it and save it for future use.  Copy and paste these into a document you can temporarily save as you will need them in a future step in this setup process.  You will also need the API Key and API Secret Key values on this API Credentials page. shopifytoken
    apikeysecretshopify
  12. Next, log in to your Zenventory account and navigate to Admin -> System > Integration.  Have the site URL (see image below), Admin API Access Token, API Key, and API Secret ready as you will need them to follow the next steps.
    shopifyurlupdated
  13. While under the “Marketplace” tab, click the “Add Marketplace” button, select “Shopify”, then "Add".8
  14. You will see a prompt to open the install guide.  Simply click this link, and then you can close the new window/tab if you already have the guide open.9
  15. All fields necessary for initializing the Shopify integration will be displayed:
    • Shop - This is the store name embedded in your admin.shopify.com URL address. It may differ from your actual Shopify store name.  See highlighted example below, in this case you'd use "darin-newest-store-11-30-22" for Shop (without the quotes).shopifyurlupdated
    • Admin API Access Token - obtained one time from step 11 above.
    • Client - For 3PL providers, this will link the store to a specific 3PL client in Zenventory.
    • Shop Name - This will be used to identify your shop name locally within Zenventory and can be different from Shop (optional).
    • Stock Warehouse - Choose the warehouse that will be sending stock updates to Shopify. If more than one warehouse is selected, the quantity will be the combined sum of all selected warehouses. 
    • API Key - obtained from step 11 above.
    • API Password - obtained from step 11 above.
    • Warehouse - This will be the default warehouse used for inventory allocations for orders from this channel.
    • Stock Update Mode -
      • Do Not Update Stock Levels - If enabled, only orders, order status updates, and shipment information will pass from Zenventory to Shopify.  Zenventory will not pass stock level updates to Shopify with this enabled.
      • Use Sellable Quantity - will update Shopify with the item sellable quantity.  Sellable is calculated by total in stock minus allocated items minus non allocated items on orders.  This setting prevents overselling of a product.
      • Use In-Stock Quantity - will update Shopify with the item in-stock quantity.  This setting can allow for over sale.
    • Importing User - This will be the user associated with imported data, any user can be selected for this.  NOTE:  If no importing user is selected, no automatic imports will take place (you'll have to run them manually from the Actions menu).
    • Integration Settings -
      • Update Stock Levels Only - will not import orders from Shopify, only updates the item stock levels.
      • Always Send Fulfillment Receipts to Customers in Shopify - allows the integration to always enable emails to be sent to the customer once the order has been fulfilled.
    16.  Once you have filled in all the integration information, click “Save” then “Initialize”.  This will activate your integration and begin transferring data between Zenventory and Shopify.  Once initialization is complete, you are finished with the setup process.

ADDITIONAL SHOPIFY SETUP REQUIRED

  1. Now that the connection process has been completed, there are just a few more steps that need to be taken on the Shopify side of things to get this fully set up to be as hands free as possible.  Always remember that in order for Zenventory to get orders, two things need to happen in order when an order is placed/created.  (1) The items on the order get assigned to the Zenventory location for fulfillment and (2) a fulfillment request needs to be created for Zenventory. 
  2. The first step we need to take is to make sure the Zenventory location is attached to your shipping rate profile. This can be found in your Shopify account under Settings > Shipping and Delivery 
  3. If you have shipping rates set up, then you need to assign the new Zenventory location for use with those shipping rates in order for orders to be processed properly.  If you don't have any shipping rate profiles setup, then you can skip steps 3-4 and move to step 5 below.  Go to the Settings>Shipping and Delivery page and click "Manage" in your shipping rates.  You might have more than one shipping rate profile depending in your setup.
  4. After clicking "manage" scroll down to the bottom of the page and notice the Unassigned Locations section.  Assign Zenventory to the shipping rate profile from there.
  5. The next task is to make sure your products that you want Zenventory to fulfill are available to be stocked in the Zenventory location and removing stock from any other location you don't want to show inventory in.  Zenventory will push stock updates into that Zenventory location.
  6. This is done by navigating to Products > Inventory in Shopify.  ***IT IS HIGHLY RECOMMENDED TO EXPORT YOUR INVENTORY COUNTS FOR EXISTING SHOPIFY LOCATIONS PRIOR TO PROCEEDING IN THE EVENT THAT YOU NEED TO REVERT***.  Click the top checkbox on the left and then click "bulk edit". bulk edit products
  7. Click the "Columns" button in the top right and make sure the Zenventory location is selected for view.  ZENVENTORYSTOCKAT
  8. If any item shows "not stocked" in the "Zenventory - Available" column then you need to change that by clicking into that cell and selecting the "Stock at this Location" checkbox.  If one of your existing Shopify locations contains the inventory numbers in Zenventory, then you'll want to remove those inventory numbers so you aren't showing more inventory than you actually have.  Zenventory pushes the inventory numbers in that Zenventory location in Shopify.  stockatthislocation
  9. Once complete with updating your items to be stocked in the Zenventory location and making  any inventory adjustments to other locations, hit the "Save" button in the top right to save your changes.  
  10. The final task is to setup a workflow in the Shopify Flow app to (1) assign orders to Zenventory and (2) create the necessary fulfillment request so Zenventory can see those requests and automatically download orders.  Go to Apps>Shopify Flow.   flow1
  11. Hit the "Create Workflow" button in the top right.  createworkflow
  12. The workflow you will create will have a "Trigger" = Order Ready to Fulfill, "Condition" = Location Name is not Equal to Zenventory.  If Zenventory is not the location, then Action = "Move Fulfillment Order to Zenventory Location" and a final Action = "Submit Fulfillment Request".  Otherwise, if Zenventory is the location, then Action = "Submit Fulfillment Request".   flowsendorderstoZen

ASSIGNING EXISTING (before Zenventory Install) SHOPIFY ORDERS TO ZENVENTORY FOR FULFILLMENT

  1. Select any orders that need to be converted to have a fulfillment request and click the ellipsis (...) at the bottom of the page to expand the actions. After doing so, click Change Fulfillment Location.
  2. After doing so, you should see a new popup where you’ll want to select Zenventory from the dropdown and click change location.FULFILLLOCATION
  3. Your final step will be to keep those same orders checked and click the ellipsis button one more time at the bottom of the order grid. This time you’ll want to click Request Fulfillment.
  4. These new fulfillment orders will downloaded into Zenventory on our normal automatic order pull within the next 15 minutes, or you can manually pull them in by hitting the "Refresh" button on the Open Orders page in Zenventory.