How to configure Shopify product sync
Once your Shopify store is connected, the next step is to tell the Shopify Connector which products to synchronize and how your Bizzkit PIM data should appear in Shopify. This guide walks through the three parts of that setup — sync rules, field mappings, and activation — so your catalogue flows from Bizzkit PIM to Shopify exactly the way you want.
Before you begin
This guide assumes your Shopify store connection is already in place and validated. If it is not, set it up first. You also need a Bizzkit PIM with the products and attributes you intend to publish.
Everything below is configured per store, and your settings apply only to your own store.
How configuration fits together
Configuration moves your store through three states:
stateDiagram-v2
[*] --> Connected : Shopify credentials saved
Connected --> Configured : Sync rules + field mappings saved
Configured --> Active : Synchronization activated
Active --> Configured : Synchronization deactivated
Active --> Active : PIM change received → synced to Shopify
| State | Meaning |
|---|---|
| Connected | Your Shopify credentials are stored and validated. |
| Configured | Sync rules and field mappings are in place — ready to activate. |
| Active | The connector is live, syncing PIM changes to Shopify as they happen. |
You can set up your sync rules and field mappings in either order. Activation comes last, and only becomes available once the connection and rules are in place. Activating explicitly means you can set up and review your whole configuration before any products reach your store.
Configure sync rules
Sync rules control which products are eligible to sync, how removals are handled, whether your PIM categories are mirrored as Shopify collections, and which languages are published. They are grouped by subject — Products, Categories, and Languages — and each group is saved on its own, so you can set one up without having the others ready.
Sync activation attribute
The sync activation attribute is an opt-in gate: only products where this attribute is on are synced to Shopify. This keeps you in control of what reaches your store and prevents accidentally publishing your entire catalogue.
- Choose a single-valued boolean (
PBoolean) PIM attribute as the gate (for example, one named "Sync to Shopify"). A product syncs when that attribute is present and set to true. - The gate is optional. Leave it unset and every mapped product becomes eligible.
- When a product that was previously syncing becomes ineligible (the attribute turns false or is removed), the connector applies your configured action on delete to it in Shopify.
Action on delete
The action on delete decides what happens to a product in Shopify when it is deleted, unpublished, or made ineligible in PIM. Choose the level of caution that suits your store:
| Action | Effect in Shopify | Reversible? |
|---|---|---|
| Set as draft | Product is hidden from the storefront but kept | Yes |
| Archive | Product is archived and not visible | Yes |
| Delete | Product is permanently removed | No |
Set as draft is the recommended default. Deleting is irreversible and can break existing orders or links, so use it only when you are sure removed products should disappear entirely.
Categories as collections
Category sync mirrors your PIM product hierarchies as Shopify collections: every category in a chosen hierarchy becomes a collection, and the products placed in that category become its members. It is off to begin with — turn it on, then choose which hierarchies to mirror. Categories outside them are left alone.
A hierarchy is identified by the system name of its root category, so you can type a system name directly if the hierarchy you want is not among the suggestions. Each chosen hierarchy then has two settings of its own:
- Manage memberships — on by default. The connector puts each synced product in the collections mirrored from this hierarchy. Turn it off to have the collections mirrored but decide yourself what goes in them, using Shopify's own collection rules.
- Mirror the root — off by default. PIM lets you place products at the root level of a hierarchy as well as in its categories. While this is off the root is not mirrored, and a product placed there is in no collection at all. Turn it on and the root becomes a collection like any other, holding the products placed directly at the root.
Where a product ends up. A product placed in Pants can either be in Pants only, or in Pants and every category above it — Clothing, Apparel, and so on. Including the categories above is the default, because it is what shoppers expect from category navigation. The choice applies to every mirrored hierarchy, and a mirrored root is never included this way — only products placed at the root reach it.
The connector owns membership
Where Manage memberships is on, Bizzkit PIM states the whole truth on every sync: the products the connector sends are that collection's complete membership, so a product you add to a mirrored collection by hand in Shopify is removed again the next time it syncs. Shopify collection rules are untouched and keep adding products alongside the synced ones — that is how you curate a mirrored collection without working against the sync.
When a category is removed in PIM. Choose what happens to the collection mirrored from it:
| Action | Effect in Shopify | Reversible? |
|---|---|---|
| Leave the collection in place | Collection is kept, and the connector stops maintaining it | Yes |
| Delete the collection | Collection is permanently removed | No |
Leaving the collection in place is the default, for the same reason as the product action on delete.
Turning category sync off undoes nothing. Collections mirrored earlier stay in Shopify along with the products in them, and your hierarchy choices are kept for when you turn it back on. In the same way, turning it on does not sweep through your existing catalogue: collections appear, and memberships change, as the categories and products behind them change in PIM.
Collection titles and descriptions come from your field mappings — see Map PIM data to Shopify below — and a collection title is published in every language you have set up under language mappings, just as a product title is.
Language mappings
Language mappings connect a PIM segmentation to a Shopify locale, which is how the connector publishes multilingual content across your Shopify Markets:
- Each mapping pairs a PIM segmentation with a Shopify locale (for example, Danish or English).
- Exactly one mapping is your primary locale. The primary locale's values populate the base Shopify fields; the remaining locales are published as Shopify translations.
- Each Shopify locale can be used in only one mapping, and at least one mapping is required.
Translations are only published for attributes the connector determines to be translatable — see Map PIM data to Shopify below.
Map PIM data to Shopify
Field mappings define how your PIM data appears in Shopify. Each mapping reads one PIM value source and writes it to exactly one Shopify destination. Mappings are managed one at a time, so you can start with the essentials and add more as you go — a product picks up a new mapping the next time it changes in PIM.
Choose what the mapping is for
Every mapping begins with what this mapping is for. That choice decides both where the value is written in Shopify and which PIM values you can read from, so the rest of the form follows from it:
| What this mapping is for | Writes to | Reads from |
|---|---|---|
| Products | Shopify products | PIM products |
| Variants | Shopify variants | PIM variant-level products |
| Collections | Shopify collections | PIM categories |
What a mapping is for is fixed when it is created. To map a different thing, remove the mapping and add a new one.
Choose a source
The source is one of:
- A PIM attribute field — a specific field within one of your PIM attributes, named by attribute and
field system name (for example
COLOR.VALUE). The attribute must exist in PIM; the connector verifies it when you save the mapping. A product or variant mapping reads a product attribute, and a collection mapping reads an attribute on the PIM category. - A PIM master data field — a built-in property. Which properties are on offer depends on what the mapping is for:
| What this mapping is for | Master data fields |
|---|---|
| Products, Variants | Unique name, external string id, or external integer id |
| Collections | System name |
Master data always holds a single, language-independent value, and each product, variant, or category supplies its own value (master data is never inherited from a parent).
Map to a standard field
Standard fields are Shopify's built-in properties. Each of the three mapping types writes to its own set, so what you can map to depends on what the mapping is for.
When the mapping is for the product:
| Shopify field | Value type | Notes |
|---|---|---|
| Title | Text | Translatable; defaults to the product's PIM unique name when not mapped |
| Description | Text | Translatable |
| Handle | Text | The product's URL handle |
| Product type | Text | |
| Tags | Text (list) | Multivalued; syncing replaces all existing tags |
When it is for each variant:
| Shopify field | Value type | Notes |
|---|---|---|
| Price | Number (decimal) | |
| Barcode | Text | For example, EAN or UPC |
When it is for each collection:
| Shopify field | Value type | Notes |
|---|---|---|
| Title | Text | Translatable; defaults to the PIM category's display name when not mapped |
| Description | Text | Translatable |
Title always has a value
A title is required in Shopify. If you do not map the Title field — or its PIM source is empty — the connector falls back to a title of its own: the product's PIM unique name, or the PIM category's display name for a collection. Nothing is blocked from syncing. Add a Title mapping whenever you want a merchant-friendly name; existing records pick it up the next time they change in PIM.
Note
Some Shopify fields are set for you and are not mapped here:
- A product's status (active, draft, or archived) is managed automatically — a product is active while it is eligible to sync, and follows your action on delete once it leaves sync.
- A variant's SKU and its option values come from the product structure in PIM.
Map to a metafield
Metafields hold custom data that has no built-in Shopify field. A metafield is attached to whatever the mapping is for — the product, each variant, or each collection — so its owner follows from that first choice and is not a separate step. For a metafield mapping you provide:
- Namespace — optional, and defaults to
custom. Thebizzkit_pimnamespace is reserved for the connector and cannot be used. - Key — the metafield key.
- Type — the Shopify metafield type, for example single line text, integer, or a list of integers.
Multiple values and translations
You do not set "multivalued" or "translatable" options yourself — the connector derives them from the source when you save the mapping and shows them on the saved mapping:
- Multivalued reflects whether the PIM attribute can hold more than one value.
- Translatable is on only when the PIM field is localizable and the Shopify destination can carry per-language values (the Title and Description standard fields, and any metafield). For translatable mappings, the connector publishes the primary locale on the base field and the other locales from your language mappings as Shopify translations.
Master data sources are always single-valued and language-independent, so both options are off for them.
What gets validated
Each mapping is checked the moment you save it, so mistakes surface immediately rather than as a failed sync later. The connector checks that the value types are compatible, that translations only go to destinations that can hold them, and that the destination is not already in use. A destination includes what the mapping is for, so a product title and a collection title are two different destinations and do not clash.
Value type compatibility. The matrix shows which PIM attribute types can map to which Shopify value types. Standard fields have a fixed value type (see the tables above); for a metafield, the value type is the metafield type you choose. PIM types are grouped into families by their PIM type name.
| PIM attribute type | Text | Number (integer) | Number (decimal) | True/false | Date | Date & time |
|---|---|---|---|---|---|---|
PString, PStringV, PChar |
✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
PInt16, PInt32, PInt64 |
⚠ | ✓ | ⚠ | ✗ | ✗ | ✗ |
PDecimal1–PDecimal9 |
⚠ | ✗ | ✓ | ✗ | ✗ | ✗ |
PBoolean |
⚠ | ✗ | ✗ | ✓ | ✗ | ✗ |
PDateTime, PDateTimeOffset |
⚠ | ✗ | ✗ | ✗ | ⚠ | ✓ |
| Global-list reference | ⚠ | ✗ | ✗ | ✗ | ✗ | ✗ |
✓ supported · ⚠ supported, but the value is converted and the mapping is saved with a warning · ✗ not allowed, so the mapping is rejected.
Localizable PIM types (whose type name carries Translated, such as
PTranslatedString) share the value
type of their non-localizable counterpart and add translation support — see Translations below.
Master data sources follow the same matrix: the unique name, the external string id, and a category's system name behave as text, and the external integer id behaves as an integer.
Multiple values. A destination that holds a list — the Tags standard field and any list metafield
type — keeps every value of a multivalued PIM attribute. Mapping a multivalued attribute to a
single-value destination is allowed but saved with a warning, since only its primary value is sent and
the rest are dropped.
Translations. Only the Title and Description standard fields and metafields can hold
translations. A localizable PIM attribute can map to any of these; pointing one at any other standard
field is rejected.
To point a PIM attribute at a different Shopify destination, remove the mapping and create a new one — editing a mapping changes only its PIM source, not its destination.
Activate synchronization
With your connection, sync rules, and field mappings in place, activate synchronization. Activation subscribes the connector to PIM change notifications for your store and begins syncing; from this point, product changes in PIM flow to Shopify automatically.
| Action | Purpose |
|---|---|
| Activate | Start syncing and subscribe to PIM changes |
| Deactivate | Pause syncing; your configuration is kept |
| Status | Check whether syncing is active and when it was last activated |
Deactivating pauses synchronization without losing any configuration, which is useful during maintenance or store migrations. Reactivate at any time to resume.
Learn more
- Shopify Connector — what the connector does and how it fits into your Bizzkit solution.
- Data types — the full reference for the PIM attribute types you map from.
- Segmentations — how PIM models translation cultures and other dimensions used by your language mappings.