Shopify POS & Web Shopping Cart- 2 Way Interface
Last Updated 2/25/2026
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, including Creating an app for Yellow Dog in the Shopify Dev Portal via their Shopify account and providing app credentials.
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.
Provide the Shopify shopId
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:
| Sales - TPTransaction | Shopify API Field |
|---|---|
| ClientSyncID | |
| Source | "Shopify" |
| ThirdPartyID | {source}_{siteId}_{locationId}_{order.Id} |
| Converted | {transaction.ThirdPartyID}_{lineNumber} |
| Revenue Center | order.locationId |
| StoreID | n/a |
| SalesChannel | n/a |
| TransactionNumber | order.Id |
| TransactionLineNumber | incremental |
| CheckClosed | order.ProcessedAt.Value |
| ItemNumber | item.VariantId |
| SKU | item.SKU |
| Item | item.Name |
| ItemRetail (always positive) | item.Price |
| ItemDiscount (always negative) | DiscountAllocations/Quantity |
| DiscountDescription | n/a |
| Quantity | item.Quantity |
| EmployeeNumber | n/a |
| EmployeeName | n/a |
| Tender | n/a |
| Reference | order.Refund.Note |
| RegisterNumber | n/a |
| RegisterName | n/a |
| ParentNumber | n/a |
| DateKey | n/a |
| Fee | n/a |
| TotalTaxOfTheLine | n/a |
| Void | n/a |
| Return | isRefund |
| Order Status | order.FulfillmentStatus |
| TaxInclusive | n/a |
| Order Number | order.Name |
Modifiers are not supported in this integration.
Item Data from Yellow Dog
Yellow Dog’s ShopifyConsole pushes item data to Shopify’s API
| Item Properties - Yellow Dog | Shopify | Notes |
|---|---|---|
| Single Items: Item Web Properties Short Description else Item Description, Matrix: Matrix Web Properties Short Description else Matrix Description |
Title | |
| Single Items: Item Web Properties Extended Description Matrix: Matrix Web Properties Extended Description |
Description | |
| Shipping Weight | Weight | |
| Item Retail | Price | Based on the retail in the interface store |
| SKU | SKU | |
| UPC1, else SKU | Barcode (limit 1) | |
| Dimensions | Variants | |
| On Hand of the item in Store/Total/Selected Stores based on the configuration option selected. | On Hand | NOTE: Use the Shopify Do Not Push On Hands interface to control whether a specific item's on hand is pushed |
| Vendor Description | Vendor | |
| Inventory Policy | YD will set to Track OnHands when pushOnHands is enabled in the sync config, but will not affect the inventory policy if pushOnHands is disabled | |
| Pictures | Images | |
| Single Items: Item Web Properties: Product Type Matrix: Matrix Web Properties Product Type |
Product Type | |
| Single Items: Item Web Properties Tags Matrix: Matrix Web Properties Tags |
Tags | NOTE: There is an option in the sync config to push dimensions as tags; when configured, the configured dimensions will push as tags and the Web Properties tags will NOT |
| Single Items: Item Web Properties: Taxable Matrix: Matrix Web Properties Taxable |
Charge Taxes | |
| Shopify Published | Determines whether the Sales Channel Availability will be enabled | |
| Shopify Sales Channels 1-7 | Sales Channel Availability | NOTE: Shopify Published must be enabled in order for the product to be assigned to the sales channels |
| Shopify Collections 1-7 | Collections | |
| Shopify Product Status | Product Status | |
| Shopify Do Not Push On Hands | Allows control over whether an item's on hand is pushed to Shopify or not, regardless of whether it has already been matched |
Interface Codes
| Shopify | YD Interface | Notes |
|---|---|---|
| Collection | AccountingOther - ShopifyCollection1-7 | Up to 7 Collections can be assigned per item |
| Status | AccountingOther - Shopify Product Status | Active, Draft, or Archived |
| Publish to Sales Channels | AccountingOther - Shopify Published | This is a true/false value that determines if the selected Sales Channels will be assigned to the items in Shopify |
| Sales Channels | AccountingOther - Shopify Sales Channel1-7 | Up to 7 Sales Channels can be assigned per item |
| AccountingOther - Shopify Do Not Push On Hands | true/false Allows control over whether an item's on hand is pushed to Shopify or not, regardless of whether it has already been matched |
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
| Workflows | Done in YD | Done in POS |
|---|---|---|
| Create POS Item | x | |
| Create Stand Item | x | |
| Create Menu Item | x | |
| Create Modifier | x | x |
| Modifier Assignment to Item | x | |
| Screen Placement for Item | x | |
| Discount Setup | x | |
| Discount Assignment to Item | x | |
| Tax Setup | x | |
| Tax Assignment | x | x |
| Collection Setup | x | |
| Collection Assignment to Item | x | |
| Status Assignment to Item | x | |
| Publish to Sales Channels Assignment to Items | x | |
| Sales Channels Setup | x | |
| Sales Channels Assignment to Items | x |
| YD Action | Result in POS |
|---|---|
| Item Creation | Item will push to Shopify if item requirements are met |
| Item Edit/Update | Item updates will push to Shopify if item requirements are met |
| SKU Edited | SKU will be updated in Shopify |
| UPC Edited | Barcode will be updated in Shopify (UPC1 only, else SKU is pushed to Shopify's barcode field) |
| Inactivated | Item updates will not be pushed to Shopify |
| Removed | Item updates will not be pushed to Shopify |
| Level Is Changed | This could change some interface codes assigned to the item in YD, and, if so, those changes would push to Shopify |
| Item is configured to Push to POS | New items and updates will push to Shopify. To push to POS, item must be available to the designated interfaces store, have Send to Web enabled, be active and not removed |
| Publish set to "No" | N/A - Publish is not used for this integration |
| POS Blocked | N/A - POS Block is not used for this integration |
| Unchecked availability to one store/location | If item is no longer available to a store in YD that is mapped to a Shopify location, the inventory location assignment will NOT be removed in Shopify, and the on hands for the store will not be affected. In order to fully remove an item from a store in both YD and Shopify, the item must be manually removed from the location in Shopify as well as YD. |
| No longer available to Any Store/Location | Will not push to Shopify (new item or updates) if the item isn't available to the designated interfaces store for the sync |
| Image added to item in YD | If pushImages is enabled, the image will be pushed to the item in Shopify |
| Imaged removed from item in YD | If pushImages is enabled, the image will be removed from the item in Shopify |
| Item removed from Sales Channel | The item will be removed from the Sales Channel in Shopify |
| On Hand changed in Yellow Dog | On Hand will be updated in Shopify |
| POS Actions | Result in YD |
|---|---|
| Item Returned | Item's on hand will be positively adjusted based on the return quantity |
| Item Voided/Canceled | Treated the same as a refund; original sale will deduct on hand from YD, then on hand will be returned to YD |
| Previous Check Voided/Canceled | Treated the same as a refund; original sale will deduct on hand from YD, then on hand will be returned to YD |
| Item created in POS, not in YD | None |
| Item deleted in POS | If the item was originally pushed from YD, it will repush the next time it is triggered as long as it is still configured to sync. |
| Item properties changed in POS, not in YD | Item properties in the POS will be overwritten by the sync the next time the item syncs |
| Item sold at POS but is Removed in YD | The sale will be pulled in and matched to the item; the item will be automatically un-removed because the on hand will be <> 0 |
| Item sold at POS but is Inactive in YD | The sale will be pulled in and matched to the item |
| Menu item sold at POS | Populates in YD POS Item Mapping |
| Menu item created at POS but not sold | Populates in YD POS Item Mapping Unsold Items |
| Modifier created at POS but not sold | Populates in YD POS Item Mapping Unsold Items |
| Modifier sold at POS | Populates in YD POS Item Mapping |
| Image deleted at POS, not in YD | None; note that if the image was pushed from YD previously, it will push to Shopify again as long as the item is active, send to web enabled, and pushImages is enabled |
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.
Order lines that do not have a variantId will be ignored by the sync.
Returns made via Shopify Collective are not supported
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.
