Shopify POS & Web Shopping Cart- 2 Way Interface
Last Updated 4/30/2025
Overview
Yellow Dog Inventory has a 2 way integration using Shopify’s GraphQL API. Yellow Dog Inventory pulls sales data from Shopify and pushes on hand counts as well as new and changed item data to Shopify.
Sync Approach
The main components of the integration are the ability to:
Create new items (complete details, variants, pictures, etc)
Update any item changes
Update on-hand counts
Process Orders to update sales and reduce on-hands
Manage inventory for your web or brick and mortar store
This interface contains one element: a Yellow Dog sync application which pulls sales and pushes in new/changed items via the Shopify API.
Sync Frequency
This sync can be scheduled to run at almost any interval, although by default, will be scheduled to run at the top of every business hour.
Configuration Options:
Yellow Dog’s Shopify integration supports multiple Shopify accounts/instances per Yellow Dog database
None of the Yellow Dog Stores can be mapped to Shopify Locations in more than one Shopify account.
Separate syncs will be required per Shopify account.
Options
This integration supports multiple configurations. Please consult with your Yellow Dog Implementation Guide to determine the appropriate option for your business need(s).
Options:
Pull Sales Only
Push On Hands Only + Pull Sales
Push Items and NOT On Hands + Pull Sales
Push items AND On Hands + Pull Sales
Other configuration options:
This integration allows for additional configuration options that can be enabled to better support specific configuration needs. Additional configuration options available include:
Option to enable/disable pushing images (if exclusively managed in Shopify)
Option to assign sales based on fulfillment location rather than order location.
Option to not push tags (if exclusively managed in Shopify)
Option to not push product types (if exclusively managed in Shopify)
Option to only pull in Fulfilled Sales from Shopify
Note:
Prior to the start of your implementation, let the Yellow Dog team know if items already exist in Shopify, as this will impact and potentially change our implementation approach.
Shopify with 3PL Configuration Options
The Yellow Dog SKU always has to match the Shopify SKU.
If existing Shopify Client with a 3PL adding Yellow Dog Inventory, the client needs to unify SKUs between both legacy systems prior to providing YD data.
We take one of the following three approaches during installation:
1. Brand New Shopify & Yellow Dog installations
Yellow Dog Inventory will be the primary source of data pushing brand new items into Shopify
SKUs will use a 12 digit, numeric only generation. We recommend no alphas or special characters.
2. Existing Shopify client adding Yellow Dog
Client needs to provide data to YD with the matching Shopify SKU so we can match already created items in Shopify. The Shopify SKU will become the Yellow Dog SKU for all existing items and we can update on hands for matching items.
If client is desiring a 2-way integration with a full item push, all items will need to be deleted from Shopify and a fresh push will need to be performed with Yellow Dog being the primary source of data.
3. Existing Shopify client adding Yellow Dog that doesn’t want to match SKUs (Not Recommended)
Yellow Dog will NOT push items into Shopify (and any 3PL integration when applicable) in this situation. Yellow Dog will only configure a 1-way sales pull and customer will need to map Shopify Items to YD Items in Yellow Dog’s POS Item Map. No updates to items or on hands will be pushed to Shopify.
Requirements
Client:
The client is responsible for setting up Shopify’s back office.
The client will also need to:
Create an app for Yellow Dog in their Shopify account and
Enable the appropriate access scopes for the app
Provide the API Admin Access Token associated with the app to Yellow Dog so that our sync application can connect
NOTE: Detailed instructions will be provided when the integration process is started, but will require assistance from a user who is an Administrator in Shopify with access to Apps.
The following API Permissions will need to be configured based on the integration needs.
Provide the .myshopify.com address. This can be found in Shopify where Domains are listed. The required is NOT the domain name; it is an alpha-numeric code.
Provide the Shopify Business ID - this is the code in the URL when you go to Manage Account: https://accounts.shopify.com/accounts/[theNumberHereIsWhatWeNeed]
If existing items are being matched to Yellow Dog for matching sales and pushing on hand updates, the client will need to make sure all SKUs match between the systems.
Confirm Shopify Location to Yellow Dog Store Mapping
If there are multiple Locations in Shopify (and will be therefore mapped to multiple YD Stores for this integration), an Interfaces Store (where you will set all interfaces in Yellow Dog for this sync) will need to be designated in Yellow Dog.
NOTE: ALL items that are pushing to Shopify MUST be available to the Interfaces Store. Therefore, if there are multiple stores being mapped, it is recommended that a new Store is created in Yellow Dog to function as the Interfaces Store.
Data Exchange
Sales Data from POS
Yellow Dog’s ShopifyConsole pulls sales data from Shopify’s API. There are settings in our sync application that determine whether we will only pull fulfilled orders or if we will pull orders in different stages of the ordering process.
If sales have somehow been missed, we are able to pull historical sales data from Shopify, but Yellow Dog is normally limited to 30 days or the Closeout Date set in the database, whichever is more recent, for pulling historic sales data.
For a one-way integration with Shopify (sales only, or sales and on hands only), Yellow Dog will match sales to items based on SKU (Yellow Dog SKU and Shopify SKU must match) or based on POS Item Map.
We pull in the following sales data:
Modifiers are not supported in this integration.
Item Data from Yellow Dog
Yellow Dog’s ShopifyConsole pushes item data to Shopify’s API
Interface Codes
Yellow Dog Item to POS Mapping
Yellow Dog pulls in unsold items that can be mapped in POS Item Map for a one-way (sales) integration. POS Mapping is not used for a two-way integration with Shopify.
SKU & UPC Limitations
Shopify is limited to a single SKU and a single UPC per item. Yellow Dog will push the SKU to the SKU field and, if the item has a UPC, will push UPC 1 to Shopify’s UPC field; if the item doesn’t have a UPC in Yellow Dog, we will push the SKU to Shopify’s UPC field.
Workflows - Where Performed
Accounting Export :
Yellow Dog’s integration with Shopify doesn’t currently pull in the data needed for an accounting integration other than net sales.
Limitations
Yellow Dog does not integrate with Shopify Lite.
Exchange It is not currently supported by Yellow Dog’s integration.
Future Orders are not currently supported by Yellow Dog’s integration.
TransactionDetail (Tax and Revenue for accounting) is not currently supported by Yellow Dog’s integration.
Shipping is not currently supported by Yellow Dog’s integration.
Discount Description is not currently supported by Yellow Dog’s integration.
Our sync uses Shopify's processedAt datetime as the checkClosed, and processedAt is set when the order is created, and is not updated. Because of this, if the sync is configured to only pull in fulfilled or partially fulfilled orders, orders could be lost (i.e., never pulled in to Yellow Dog) if the CloseOutDate for the Store in YD associated with the order is between the datetime when the order was created in Shopify and when it was fulfilled in Shopify.
In order for items to match for updating on hands in Shopify, the item in YD and the item in Shopify MUST be the same type of item (individual or matrix item)
When pushing on hands only (NOT pushing items as well), track inventory will NOT be updated in Shopify by our sync, so it MUST be enabled in Shopify directly in order for the on hands to appear there.
An update to Shipping Weight in Yellow Dog will not automatically cause the item to repush; another change to the item or a manual retriggering of the item to sync will be required to push an update to shipping weight
Changing the vendor on an item in Yellow Dog will not automatically cause the item to repush; another change to the item or a manual retriggering of the item to sync will be required to get the new vendor to push over.
Shopify has a limit of 100 variants per product. Pushing any more will result in errors. (12/20/2023)
Shopify has an image size limitation of 5000x5000 megapixels and under 20MB in file size.
Web Properties Short Description in Yellow Dog (pushed to Shopify as Title) only supports 255 characters.
Yellow Dog Supports up to 7 Collections per item via our Shopify Collection 1-7 interfaces.
Yellow Dog Supports up to 7 Sales Channels per item via our Shopify Sales Channels 1-7 interfaces.
Our sync does not control or affect Smart Collections. We cannot set them but we also do not overwrite them.
When allowZeroDollarRetail: true, the $0 retail items MUST have $0 set as the retail (i.e., the retail cannot be blank/never set).
Images in YD MUST have an imageUrl, meaning that they were uploaded to s3, in order to push to Shopify. Some customers who have used YD for many years may have saved images to the database before we added the automatic upload to s3. New customers will not be affected.
Yellow Dog controls whether an item is published to any sales channels via our Shopify Published and Shopify Sales Channels interfaces; controlling sales channel publishing via Shopify Collections is not supported by this integration.
Other Notes
When matching items between Shopify and YDI, you will need to remove the images from Shopify before syncing. If you do not, the sync will create duplicate images and you won't know which one to delete.
You will need to decide between using Smart Collections or Custom Collection
When an item is in a matrix set to propagate, all edits to Product Types and Tags must be made in the Matrix’s web properties tab.
Shipping charges are handled by creating an item in Yellow Dog with a SKU of “Shipping” for reporting purposes.