Skip to main content

Shopify - Data Mapping & Synchronisation

A comprehensive technical guide to the Shopify integration with Optiply. Covers synchronisation frequencies, multi-store setups, handling product variants, composed products, and detailed field mappings.

Written by Marc de Graaf
Updated over a week ago

πŸ”— Shopify: Data Mapping & Synchronisation

This guide details exactly how data flows between your Shopify store and Optiply. It outlines synchronisation schedules, custom configuration options, and the specific logic used to handle product variants and supplier (vendor) data.


βš™οΈ 1. Integration Options & Features

Optiply offers a few key features to customise your Shopify integration:

  • Get Sell Orders from Multiple Shopify Accounts

    If you have multiple Shopify shops or domains where you sell the exact same products, Optiply can pull sales orders from all of those accounts into a single Optiply environment! The only requirement is that the skuCodes of your products are completely identical and coherent across all your Shopify domains.

  • Update Product Stock

    When enabled (this is the default setting), Optiply pushes inventory stock levels back to Shopify for each product variant. You can ask us to disable this option (updateProductStock: false) if you prefer to manage your stock strictly within Shopify or if you want to prevent inventory overwrites from other external warehouse systems.


πŸ“¦ 2. Shopify Limitations & Workarounds (Compositions, MOQs, Suppliers)

Because Shopify is designed primarily as a storefront rather than a full ERP, it lacks a few native inventory features. Optiply provides workarounds for all of them:

  • Composed Products / Bundles

    Shopify does not natively support composed products or bundles. If you sell product combinations, you can pass the composition data to us via a CSV file. Once imported, Optiply will automatically transfer the sales history of the composed (parent) product down to the underlying component products to generate accurate purchasing advice.

  • Lot Size and MOQ

    Lot sizes ("Order in multiples of") and Minimum Order Quantities (MOQ) are not available in Shopify. You can enter these manually per product directly within Optiply, or you can send our Customer Support team a list and we will bulk-upload them for you.

  • Multiple Suppliers per Product

    Shopify only handles one supplier (Vendor) per product. If you would like to work with multiple suppliers for a single product, please contact our support team. We will turn off the supplier product syncing from Shopify entirely, allowing you to safely manage your multiple suppliers directly in Optiply without Shopify overwriting your data.


⏱️ 3. Synchronisation Overview

The table below outlines how often Optiply pulls data from (or pushes data to) Shopify.

Entity

Sync Direction

Frequency

Products & Variants

Shopify β†’ Optiply

Hourly

Product Deletions

Shopify β†’ Optiply

Daily

Suppliers (Vendors)

Shopify β†’ Optiply

Hourly

Supplier Products

Shopify β†’ Optiply

Hourly

Sell Orders

Shopify β†’ Optiply

Hourly

Item Deliveries (Receipts)

Optiply β†’ Shopify

Every 15 minutes

Important Sync Rules:

  1. Product Deletions: Because deleted products/variants are not actively flagged by Shopify's API, Optiply runs a daily "Full Sync" to compare your data. It checks which products are enabled in Optiply but no longer exist in Shopify, and marks them accordingly.

  2. Sell Order Logic: By default, we only sync Closed Sell Orders. We do not sync Order Updates. Once a Sell Order is in Optiply, any subsequent changes in Shopify (line deletions, quantity changes, or new lines) will not update in Optiply.

⚠️ Note on Product Variants:

When a Product in Shopify has variants (like Sizes, Colors, etc.), Optiply only updates the variant product information. The "main" parent product is ignored because the variants are the entities that actually hold the stock and relevant data. This logic applies to Supplier Products as well.


πŸ—ΊοΈ 4. Data Mapping Details

Products

Optiply Field

Shopify Field

Logic / Notes

Name

Title + variant Title

SKU Code

Variant sku

Article Code

Variant product_id

Price

Variant price

Unlimited Stock

Evaluated

IF inventory_management == null β†’ true, ELSE β†’ false.

Stock Level

Variant.inventory_quantity

Status

Evaluated

Enabled if Active, Disabled if archived or draft.

Remote ID

variant ID

EAN Code

variant / barcode

Created Date

created_at

Sell Orders

(By default, Optiply only pulls Completed/Closed orders. You can request to sync "Created" status orders as well).

Optiply Field

Shopify Field

Notes

Total Value

total_price

Placed Date

processed_at

Completed Date

closed_at

Remote ID

id

Sell Order Lines

Optiply

Shopify

product_id

optiplyWebshopProductId

quantity

quantity

subtotalValue

price

Suppliers (Source Path: /admin/products.json)

Because Shopify does not have dedicated Supplier profiles, Optiply extracts this data directly from the Product entity.

Optiply Field

Shopify Field

Notes

Name

vendor

Mapped strictly by name, as each product only has one Vendor.

Supplier Products (Source Path: Vendor from /admin/products.json & Cost from /admin/api/2022-01/inventory_items/{inventory_item_id}.json)

Optiply Field

Shopify Field

Logic / Notes

Product ID

optiplyWebshopProductId

Supplier ID

optiplySupplierId

SKU Code

sku

EAN Code

barcode

Price (Cost)

cost

This value is set manually by you on the Product attributes in Shopify. If left blank, the API returns null, and Optiply maps it as 0.

Status

Hardcoded

Default: "enabled"

Item Deliveries (Optiply β†’ Shopify) (Source Path: /inventory_levels/adjust.json)

When you mark an item as delivered/received in Optiply, we push that delivery directly back to Shopify to update your stock.

Optiply Field

Shopify Field

Notes

Item ID

inventory_item_id

Optiply stores this internal Shopify ID in its cache specifically for this purpose.

Quantity

available_adjustment

Adds the newly received quantity to the variant in Shopify.


❓ 5. Frequently Asked Questions (FAQs)

Why aren't my supplier product prices updating in Optiply?

Supplier prices map from the "Cost" field within your product attributes in Shopify. If this field is left empty, Optiply maps the cost as zero. Ensure the Cost field is populated for all your active variants!

I changed an order in Shopify after a customer called, but Optiply still shows the old quantity. Why?

Optiply does not sync subsequent changes to Sell Orders. Once an order is pulled into Optiply, any additions, deletions, or quantity changes made to that order in Shopify will not be reflected.

How do I get my bundled products to show up correctly?

Since Shopify doesn't support native product compositions, you just need to send our Customer Support team a CSV file containing your bundle components. We will manually configure them in Optiply so the sales history is properly transferred to the underlying items!

Did this answer your question?