Pricing & Variants

How product prices flow from PIMS to Shopify, and how variants are defined and priced individually.

Pricing always syncs one-way from PIMS to Shopify. PIMS is the source of truth: every Shopify variant that maps to a PIMS item gets its price from that item's PIMS record, and prices are re-applied on every sync.

Note:

PIMS always wins. Prices you type directly in Shopify are overwritten on the next sync. To change a price in Shopify, change it in PIMS.

Price Field Mapping

Two PIMS fields control what a customer sees on the Shopify product page.

PIMS FieldShopify FieldSynced DuringNotes
PRICEPriceCreate + UpdateThe selling price. Located in PIMS under Home → Default Price/Costing → Price. Always synced.
MSRP / RETAILCompare-at priceCreate + UpdateThe "was" / list price shown struck-through next to the selling price. Located in PIMS under Home → Default Price/Costing. Only applied when the PIMS item has a value — leave it blank to omit the compare-at price.

Note:

To show a struck-through "was" price (a perceived discount) on your Shopify storefront, set the MSRP / Retail value in PIMS higher than the Price. If MSRP / Retail is blank, no compare-at price is sent.

Currency is whatever your Shopify store is configured to use — the integration sends the numbers from PIMS as-is. Product cost (cost-per-item) is not synced to Shopify.

How Variants Are Priced

Each variant is priced independently from its own PIMS item. There is no shared "parent" price that variants inherit — a product with multiple variants can have a different price on each one, pulled from each variant's own PIMS record.

This works because, in PIMS, every sellable item is its own inventory record with its own Price and MSRP / Retail. When that item becomes a Shopify variant, it receives the price from its own record.

How Variants Are Defined in PIMS

PIMS has no built-in "options" concept (like Color: Black). Instead, variants are grouped using a single field that points a child item at its parent product.

  • A PIMS item with an empty base product field is a standalone product. Its Part Code becomes the SKU of the product's default variant in Shopify.
  • A PIMS item whose base product field is set to the parent's Part Code becomes a variant of that product. The child item's own Part Code becomes the SKU of its variant.

Note:

To attach an item as a variant, set its base product field to the parent product's Part Code — not the variant's own code. The parent item must already exist in PIMS with an empty base product field.

Why the parent/variant distinction matters

  • Pricing — each variant keeps its own Price and MSRP / Retail from its own PIMS record, as described above.
  • Product status — only the parent item controls whether the Shopify product is Active or Archived. A single discontinued variant cannot archive the whole product.

When Pricing Is Written

Price and compare-at price are written in every sync path — there is no "create-only" exception for pricing:

  • On product creation — the new product's variant receives its PIMS price before it is published.
  • On product update — matching variants have their price re-applied whenever the PIMS record is modified.
  • On the regular sync cycle — variant prices are refreshed as part of the continuous background sync (roughly every 60 seconds).

Because the sync runs continuously, any price change in PIMS propagates to Shopify automatically on the next cycle.

Troubleshooting

A price I set in Shopify keeps reverting. This is expected. PIMS overwrites the price on every sync. Update the price in PIMS instead.

The compare-at / "sale" price isn't showing. The MSRP / Retail field is blank for that item in PIMS. Populate it (set it higher than Price) to show a struck-through compare-at price.

One variant has the wrong price. Pricing is per-item. Check that variant's own PIMS record (its Part Code / SKU) rather than the parent product.

A new product has no price or didn't appear in Shopify. Confirm the item is flagged "OK To Show On SHOPIFY" in PIMS and that its Price is set. See Inventory Sync for the publishing requirements.

For more sync diagnostics, see PIMS Sync Troubleshooting.

Need Help?

For assistance, please send a message to our Support page.