The Shopify connector syncs your minipim catalog to a Shopify store — products, variants, metafields, and media. It’s event-driven: when you publish a product in minipim, the connector picks up the event and writes to Shopify’s API. You don’t push manually; you just mark products ready and let the connector carry them out.
Prerequisites
- A minipim instance (self-hosted or Hosted)
- A Shopify store with a custom app or private app that has Products read/write and Inventory read/write scopes
- The Shopify connector enabled on your minipim instance (included on Hosted; install from the connector registry on self-hosted)
Step 1 — Create a Shopify custom app
In your Shopify admin:
- Go to Settings → Apps and sales channels → Develop apps
- Click Create an app, give it a name (e.g. “minipim sync”)
- Under Configuration → Admin API scopes, enable:
write_products,read_productswrite_inventory,read_inventoryread_locations(needed to assign inventory levels)
- Click Install app then copy the Admin API access token
Keep that token — you’ll need it in the next step.
Step 2 — Add the connection in minipim
In the minipim UI, go to Connectors → Add connector → Shopify.
Fill in:
- Store URL — your myshopify.com domain (e.g.
northwind-goods.myshopify.com) - Admin API access token — the token you copied above
- API version — leave as the default unless you have a specific reason to pin it
Click Test connection. If it succeeds, save it. The connector will appear in your channel list.
Step 3 — Map attribute families to Shopify product types
Shopify has a flat product model: a product has a title, body HTML, vendor, product type, tags, and up to three option dimensions (Size, Color, Material). Everything else goes in metafields.
In minipim, open the Shopify connector and go to Field mapping. For each attribute family you want to sync, map your attributes to Shopify’s fields:
| minipim attribute | Shopify destination |
|---|---|
title | Product title |
description (richtext) | Body HTML |
vendor | Vendor |
price | Variant price |
sku | Variant SKU |
barcode / gtin | Variant barcode |
weight | Variant weight |
gallery | Product images |
| Everything else | Metafield (namespace + key) |
Metafields let you push any attribute that doesn’t have a native Shopify field. Define the namespace (e.g. minipim) and key (e.g. material) and Shopify will store it against the product. You can then surface metafields in your theme using Liquid or the Storefront API.
Step 4 — Set Shopify readiness rules
Go to Channels → Shopify → Readiness rules. These rules determine what a product needs before it can publish to Shopify. A sensible starting set:
title— requiredprice— requiredsku— required on at least one variantgallery— at least 1 image requiredgtin— required (Shopify surfaces this as barcode; Google Shopping requires it)
You can mark rules as warnings rather than blockers if you want products to publish without them but still surface the gap in the readiness score.
Step 5 — Publish your first product
Open a product, complete the attributes until the Shopify readiness score hits 100%, then click Publish → Shopify. The connector will:
- Create or update the Shopify product via the Admin API
- Sync variants with their prices, SKUs, and weight
- Upload images that aren’t already in Shopify’s CDN
- Write any mapped metafields
Subsequent publishes are incremental — only changed attributes are written.
Keeping things in sync
The connector is one-directional by default: minipim is the source of truth and Shopify is the destination. If you edit a product directly in Shopify, those changes won’t come back into minipim. This is intentional — maintaining a single source of truth is the whole point.
If you need to pull inventory levels or order data back from Shopify, use the Shopify Webhooks or the Admin API directly in your own tooling. minipim doesn’t manage inventory quantities.
Troubleshooting
Product creates but variants are missing — check that your variant attributes (size, color, etc.) are mapped under Variant options in the field mapping. Shopify requires option names to match between the product and its variants.
Metafields not appearing in the theme — metafields need to be “pinned” in the Shopify admin (Content → Metafields → Products) before they’re accessible to Liquid. The connector writes them correctly but Shopify hides them from the theme by default.
Rate limit errors — Shopify’s REST Admin API allows 2 requests/second (40/second on Shopify Plus). The connector automatically throttles and retries, but if you’re bulk-publishing hundreds of products simultaneously, expect it to take a few minutes.