feedsteadOpen the workspace →

Updating Shopify prices and costs by SKU

Feedstead reconciles a supplier file against a Shopify product export and prepares an update for review. It uses exact SKU text as the match key.

Worked example

Client export:

SKU Cost per item Price
0001 10.00 18.00
0002 10.00 18.00

Supplier file:

Product code Net cost
0001 12.00
0002 11.00
NEW-007 12.00

Map Product code to supplier SKU and Net cost to supplier cost. With a 50% markup and nearest-cent rounding, 0002 proposes a cost of 11.00 and a price of 16.50 because 11.00 × 1.50 = 16.50; its old price is 18.00. NEW-007 is an exception because no exact client SKU exists.

The review shows the old and proposed values before export. The complete change report includes both matching rows and NEW-007, and the workflow never creates a near match for it.

Shopify columns and dependencies

Shopify’s current product CSV documentation says that updates require URL handle and Title. It also says variant-related columns such as SKU and Weight value (grams) depend on the relevant option-name and option-value columns. Missing dependent option fields can create a default variant and delete existing variants. Feedstead’s export must preserve the current format and needed dependencies rather than emitting a two-column “SKU, price” file that Shopify cannot safely interpret.

Source: Shopify Help Center — Using CSV files to import and export products.

Feedstead checks the Shopify column names when you choose a file, sheet or header row. Missing columns are named next to the file. Choose the correct sheet and header row, or download a fresh Shopify product export with its SKU, handle, option, price and cost columns. “Shopify columns found” confirms the headers; comparison still checks the values and variant structure.

What the output records

The update CSV contains the selected exact-SKU changes plus every sibling variant of each affected product. Unselected siblings retain their current price and cost. The complete change report retains every supplier row with its match status, old values, proposed values, and any reason that prevented an update.

The report’s Change selection column distinguishes Selected for update, Not selected, No change, and Cannot update. A proposed value on a “Not selected” row is a suggestion that you did not include. In full-list mode, catalogue SKUs absent from the supplier file are also recorded as Not in supplier file.

Each report records the client, supplier configuration, source filenames, preparation time in UTC and review ID. The Shopify update and report filenames share the client name, UTC date and review ID. Choose the client before loading files. Without a client profile, downloads use “Current catalogue.” Changing a selection creates a new review ID; download both files again to keep a matching pair.

Downloading prepares files for review. It does not change the store. Review the Shopify import preview before confirming an import.