Shopify
Keep your Shopify store in sync with PIM, in both directions.
Connect a Shopify store to publish your product content from PIM and bring Shopify's own data back. For each field you choose who is in charge: fields owned by PIM are sent to Shopify, and fields owned by Shopify are copied into PIM.
You can connect several stores to one PIM account. Each store is its own integration, with its own mappings, segment and settings.
How it works
- Products are linked by SKU. A PIM product is linked to the Shopify product whose variant has the same SKU. Once linked, the pair stays together even if a SKU changes later.
- Changes in PIM go out right away. When you save a product in PIM, whether in the app, through the API or from an AI tool, it is sent to Shopify within moments.
- Changes in Shopify arrive every hour. PIM checks Shopify for changed products every hour, and runs a full sync every night.
- Only products in the integration segment sync. The segment you set up for the integration decides which PIM products are sent to the store.
- Nothing is deleted. PIM never deletes products in Shopify, and deleting a product in either system doesn't delete it in the other.
Before you start: create a Shopify app
PIM connects to your store through an app that you create in your own Shopify organization.
- In the Shopify Dev Dashboard, create an app in the same organization as your store.
- Give it the access scopes
read_productsandwrite_products. Webhooks, app URLs and redirect URLs aren't needed. - Release the app and install it on your store.
- Open the app's Settings page and copy the Client ID and Client Secret.
Set it up in PIM
- Open Integrations and add Shopify.
- Under Base URL, enter your store's address, such as
https://your-store.myshopify.com. Then paste the Client ID and Client Secret, and test the connection. The credentials are stored encrypted. - Map PIM attributes to Shopify fields, and choose an owner for each one (see below).
- On the Products step, set the segment conditions for the products this store should sell, and choose whether products may be created on either side.
- Run a Full sync and check a few products in Shopify.
Fields you can map
| Group | Shopify fields |
|---|---|
| Content | Title, Description (rich text is sent as HTML) |
| Classification | Vendor, Category, Product type, Tags |
| Publishing | Status (Active, Draft, Archived or Unlisted) |
| SEO | SEO title, SEO description |
| Variant | Barcode, Weight (g), Price, Compare-at price |
| Media | Main image |
| Metafields | Any product or variant metafield, such as metafield.custom.nicotine_strength |
Identifier (SKU) is a special mapping. By default PIM links products using its own SKU. If your store's SKUs live in another attribute, map that attribute to Identifier (SKU). It is only used to find matching products and is never sent to Shopify.
Each mapping shows a short description of how that field behaves. A few rules worth knowing:
- A blank value never clears the other side. An empty field in PIM leaves Shopify's value alone, and the other way round.
- Tags are only added. Tags owned by PIM are added to a product and never removed, so tag-based collections keep working.
- A blank or zero price is never sent. A compare-at price of 0 removes it, so you can end a sale from PIM.
- Status publishes and hides products. Owned by PIM, it sets each product's status in Shopify. Sales channels are always managed in Shopify.
- Category is Shopify's standard product category. You can send its full name or its ID.
- The main image is only added, never replaced. An image owned by PIM is added to Shopify products that have no images yet. Images already in Shopify aren't changed or removed.
After you change mappings, already-synced products get the change at the next full sync. To apply it now, use Full sync on the integration page.
Decide who owns each field
For each mapped field, choose whether PIM or Shopify is in charge. A field can have only one owner across all your integrations, so two systems never overwrite each other.
A common setup is to let PIM own the content (title, description, images, SEO) and let Shopify own what the store manages day to day, such as price or status.
Creating products
Both options are off by default. You can find them on the integration's Settings tab.
- Create products in Shopify from PIM. Segment products that no Shopify product matches are created in Shopify as drafts, filled with every mapped field. Nothing is published unless Status is mapped and owned by PIM. Review each draft and add stock before you make it active. PIM shows how many segment products aren't linked yet, so you know how many could be created.
- Create products in PIM from Shopify. Shopify products whose SKU isn't in PIM are created in PIM. You can limit this to products that would be in the integration segment (recommended) or allow all products. A Shopify product with a SKU that PIM already has is linked to that product instead.
If another integration, such as DK, already creates your products in PIM, keep Create products in PIM from Shopify off. PIM warns you when two integrations would both create products.
Fix a wrong link
If a product is linked to the wrong Shopify product, open it in PIM and use Re-link in its sync status. The link is dropped and the product is matched again by SKU. Nothing is deleted in Shopify.
Keep an eye on syncs
Each sync shows how many products were checked, updated, created, linked and skipped, in both directions. A skipped product is not a failure: the sync log says why it was left out, for example because it has no SKU.
Limitations
- Single-variant products only. Shopify products with several variants are skipped.
- Images: JPEG, PNG, WebP, GIF and AVIF are supported. SVG images aren't.
- Shopify changes aren't instant. They arrive with the hourly sync. Use Sync now on the integration page to pick them up sooner.