Enrich Location Decorations

When a customer adds a decorated product to their cart, your store needs to also charge them for the decoration: a Setup Fee and a Run Charge, usually as separate line items at checkout.

Each of those fees is its own Shopify product behind the scenes (“PCNA, Embroidery, Setup Fee”, “PCNA, Embroidery, Run Charge”, etc.). They’re created once per supplier and reused across every product that offers that decoration.

The decoration data on a regular product is just a list of names (“Front Chest, Embroidery”). For checkout to actually charge the right fees, each entry in that list needs to point at the matching Setup Fee and Run Charge products. Enrich Location Decorations wires those pointers up.

You run it once after importing a batch of products that have decoration data, and any time the underlying Setup Fee or Run Charge products have been recreated.

When to Use It

⚠️

Run this after Decoration Listings. If the Setup Fee and Run Charge products don’t exist yet, enrichment has nothing to point at.

Before You Run It

1. Create the Decoration Fee Products for Each Supplier

In PromoSync, open the dashboard and click the Decoration Listings card. Pick the supplier and click Create Decoration Products. This is a one-time step per supplier. It creates one Setup Fee product and one Run Charge product per decoration method the supplier offers.

You only need to repeat this when:

See the full walkthrough in Decoration Listings.

2. Make Sure Your Products Have Decoration Data

The action only does work on products that already have a psrestful.location_decorations metafield. Products imported through PromoSync from a supplier that publishes decoration data will have this automatically. Products you’ve stamped with Apply Default Location Decorations will also have it.

Products without decoration data are skipped silently.

How to Run It

You have two ways to scope the job.

Option A, Run on Specific Products

  1. In Shopify Admin, go to Products.
  2. Tick the checkboxes next to the products you want to enrich.
  3. Click the ... button, then Apps > Bulk Product Sync.
  4. In the dropdown, pick Enrich Location Decorations.
  5. Click Submit.

Option B, Run on Every Product with Decoration Data

If you leave the selection empty, PromoSync walks every product in your store that has a psrestful.location_decorations metafield. This is the right choice after you’ve created decoration products for a new supplier and want everything wired up.

Store-wide enrichment can take a while on large catalogs (the job has a 30-minute window before it has to break itself up). For very large stores, run by supplier instead: filter products by the supplier’s tag, select all, then run the action.

What Happens Next

You’ll get an email titled “Location Decorations Enrichment Results”. It includes:

The email goes to the notification contacts you’ve set up in your shop settings.

How Matching Works

For each decoration on each product, PromoSync looks for a Setup Fee and Run Charge product in your store that satisfies two conditions:

  1. The fee product has the same supplier code as the product you’re enriching.
  2. The fee product’s handle starts with the same root as the decoration name (e.g. decoration “Laser Engrave” matches handles laser-engrave-setup-fee and laser-engrave-run-charge).

If both conditions match, the fee product’s ID is written into the decoration entry. If not, the decoration shows up in the “unmatched” section of the email.

Why Something Might Be Skipped or Unmatched

What the email or log showsWhat it meansWhat to do
Product skipped: “no psrestful.location_decorations metafield”The product has no decoration data to enrich.Either this product doesn’t offer decorations (correct), or it needs default decorations applied first. See Apply Default Location Decorations.
Product skipped: “location_decorations is not a list”The decoration data is malformed JSON (rare, usually from a hand-edited metafield).Open the product’s metafields in Shopify Admin and fix or clear the value.
Decoration unmatched: shows a decoration name and supplier codeNo Setup Fee or Run Charge product exists in your store for that supplier and decoration name combination.Open Decoration Listings for that supplier and run Create Decoration Products. Then run Enrich Location Decorations again.
Product updated 0 times even though selectedEvery decoration was already wired correctly, so there was nothing to change.No action needed.

Common Questions

Will this break the decoration data already on my products?

No. The action only adds Setup Fee and Run Charge pointers to existing decorations. Decoration names, locations, max imprint colors, and other data are left exactly as they were.

What if a decoration shows up as “unmatched” even though I ran Create Decorations?

Two common causes:

  1. The decoration name on the product doesn’t quite match the fee product’s handle (e.g. the supplier renamed “Embroidery” to “Embroidery 1-Color” after you created fees). Re-run Create Decoration Products for that supplier.
  2. The fee product was deleted by hand from Shopify. Re-run Create Decoration Products to recreate it.

Do I need to run this every time I import new products?

Yes, after each import of products with decoration data. The fastest workflow is: import a batch, then run Enrich Location Decorations on the same batch.

Do I need to run this for products with no decorations?

No. Those products are skipped automatically.

Does this change the visible product page in any way?

No. The enrichment is invisible to customers. They only notice the difference at checkout, when Setup Fee and Run Charge line items now appear correctly.

What if I’ve changed my decoration prices?

Edit the Setup Fee or Run Charge product price in Shopify Admin like any other product. You do not need to re-run this action, it only wires up which fee product to use, not the price on the fee.