Skip to main content

Product Error Codes

Error and warning codes for product imports and exports.

Altera shows a code such as ABC001 with each error or warning. This article explains the codes for this area of the app and how to resolve them. For codes from other areas, see Error and warning codes.

Product Codes

Error and warning codes that occur when dealing with product data

PRD001 - No Option 1 Values

Products with multiple variants need to have the Option1 Value column set to identify the different variants.

PRD003 - Invalid Product Status

The product status field must be empty or one of the following: ACTIVE, ARCHIVED, DRAFT or UNLISTED.

PRD004 - Duplicate Product Title

The spreadsheet it identifying products by title but more than one product with that title exists in Shopify. A product title needs to be unique when using it to update a product. If you have multiple products with the same title you can either use the ID or Handle column to identify the product you want to update.

PRD005 - Weight Should Just be a Number

The Variant Weight column should just contain a number. If you want to set the unit of the weight you can set that separately in the Variant Weight Unit column.

PRD006 - Reference Metafields Need GID Format

When importing reference metafields the values need to be in the GID format like gid://shopify/Metaobject/123456789 or ["gid://shopify/Metaobject/123456789"] if it's a list of references. We are working on adding support for looking up references by handle. Please contact us if you feel this feature should be prioritized.

PRD007 - Option1 Value Column Required

When including an 'Option1 Name' column in your product import, you must also include the corresponding 'Option1 Value' column. Option names define the type of variant (like "Size" or "Color"), while option values define the specific variants (like "Small" or "Red").

PRD008 - Missing Option1 Value

For each product with an 'Option1 Name' defined, you must provide a corresponding value in the 'Option1 Value' column. Empty option values will cause errors when creating variants in Shopify. Ensure all products with option names have corresponding option values set.

PRD009 - Missing Variant Identification Column

When updating variant data, you must include at least one column that identifies which variant to update, such as 'Variant ID', 'Variant SKU', or 'Variant Barcode' if the product has more than one variant. Without an identification column, the system cannot determine which variant should receive the updates. Add one of these columns to your import file to resolve this issue.

PRD010 - Missing Product Title

The product's title is required in each row of your import file. This is necessary for the system to properly group variants belonging to the same product. Make sure every row in your import file has a product title, even when importing multiple variants of the same product.

PRD011 - Invalid Price Format

The price columns ('Variant Price', 'Variant Compare At Price', 'Variant Cost') and the catalog pricing columns (Price / <Catalog>, Compare At Price / <Catalog>) should contain only numbers, with no currency symbols. For example, use 19.99 instead of $19.99.

Numbers may be written with comma and period grouping, following the same rules as DAT005: when both a period and commas are present the period is the decimal separator and commas are thousands separators (1,234.56), and when only a comma is present it is read as the decimal separator (19,99 becomes 19.99). Values like 1,000 whose grouping is interpreted in a way you may not expect raise a non-blocking DAT019 warning so you can double-check the result.

PRD012 - Newlines in Meta Description

The meta description field (Metafield: description_tag [single_line_text_field]) should not contain newline characters. Newlines in meta descriptions can cause issues with SEO and may not display correctly in search engine results. Altera will attempt to remove any newline characters from this field during import, but it's best to ensure your source data does not include them.

PRD013 - HTML in Meta Description

The meta description field (Metafield: description_tag [single_line_text_field]) should not contain HTML elements. HTML in meta descriptions is typically stripped by search engines and may cause unexpected display issues in search results. Using plain text in meta descriptions is recommended for better SEO outcomes and proper display across all platforms. Please remove HTML elements like <div> or <p> tags from your meta descriptions.

PRD014 - Unknown Market Price Column

A column in the file was recognized as a market pricing column, but it is not one that Altera knows how to import. Only Price / [Market] and Compare At Price / [Market] set market prices; the Included / [Market] and Variant Included / [Market] columns are handled separately and do not cause this error.

This should not happen with a standard export file. Check the column header against the products field reference and correct or remove the column. If the error continues, contact support with your job ID.

PRD015 - Market Compare-At Price Requires Regular Price

When setting a compare-at price for a specific market, you must also set the regular price for that same market. Shopify requires that any market with a compare-at price must also have a regular price defined. Update your spreadsheet to include the regular price for any markets where you've specified a compare-at price.

PRD016 - Meta Description Too Long

The meta description field (Metafield: description_tag [single_line_text_field]) exceeds Shopify's recommended maximum length of 160 characters. While longer descriptions will be imported, search engines typically truncate meta descriptions to around 155-160 characters. For optimal SEO performance, keep your meta descriptions concise and within the recommended length to ensure they display properly in search results.

PRD017 - Meta Title Too Long

The meta title field (Metafield: title_tag [single_line_text_field]) exceeds Shopify's recommended maximum length of 70 characters. While longer titles will be imported, search engines typically display only the first 50-60 characters of meta titles in search results. For optimal SEO performance, keep your meta titles concise and within the recommended length to ensure they display properly in search results.

PRD018 - Missing Product Title

A title is required to create a new product. This error occurs when trying to create a product without providing a title field. This may also happen when trying to update products by SKU where the SKU doesn't exist on the store. In such cases, the system tries to create a new product but fails because there's no title provided in the import data.

If you are creating new products, ensure that each product row in your import file includes a 'Title' column with the product's name. If you are updating existing products by SKU you can ignore this error if you know that not all SKUs in your import file exist on the store.

On a REPLACE row this check runs before the existing product is deleted, so the row fails and the product on the store is left unchanged. Add a Title to re-create the product, or use MERGE or UPDATE to change the existing one.

PRD019 - Invalid Unit Price JSON Format

The unit price data in the 'Variant Unit Price' column is not in the correct JSON format. This column requires a valid JSON object with the following structure:

{
  "quantityUnit": "G",
  "quantityValue": 12.0,
  "referenceUnit": "KG",
  "referenceValue": 1
}

Valid units: CL, CM, FLOZ, FT, FT2, G, GAL, IN, ITEM, KG, L, LB, M, M2, M3, MG, ML, MM, OZ, PT, QT, YD

Value requirements:

  • quantityUnit: Unit for the quantity (from valid units list)

  • quantityValue: Numeric value (decimals allowed)

  • referenceUnit: Reference unit (from valid units list)

  • referenceValue: Whole number required (2.0 is acceptable and will be converted to 2)

Tip: If you find JSON formatting difficult, consider using the separate unit price columns instead (Unit Price Total Measure, Unit Price Total Measure Unit, Unit Price Base Measure, Unit Price Base Measure Unit). See error code PRD031 for more information about these columns.

Special behaviors:

  • Leave the column blank - Skips updating unit pricing (preserves existing value)

  • Set either value to 0 - Clears/removes unit pricing from the product

PRD020 - Invalid Image Command

The 'Image Command' column contains an invalid value. This column specifies how images should be handled when importing products and must contain either 'MERGE', 'REPLACE', 'NEW', 'DELETE', or 'IGNORE' (case insensitive).

  • MERGE: Adds new images to existing ones on the product

  • REPLACE: Removes all existing images and replaces them with the new ones

  • NEW: Only adds images if product has no existing media (skips if product already has media)

  • DELETE: Removes specified media from the product

  • IGNORE: Skips this media row during import

Make sure all values in the 'Image Command' column are either empty or one of the valid commands. Any other values will cause the import to fail.

PRD021 - Excel Scientific Notation in SKU or Barcode

The column contains values in Excel's scientific notation format (like 8.0335E+12 or 1.23E-05). This typically happens when:

  1. Opening a CSV file in Excel: Excel automatically converts large numbers (like UPC codes or long SKUs) to scientific notation

  2. Saving from Excel: When you save a CSV from Excel, these scientific notation values get permanently converted and lose their original format

  3. Incorrect cell formatting: Excel treats numeric-looking text as numbers and applies scientific notation

How to fix this:

  • For CSV files: Open the CSV in a text editor (like Notepad) to verify the original format, or import the CSV into Excel using the Data Import wizard and format the SKU/Barcode columns as "Text" before importing

  • For Excel files: Format the SKU and Barcode columns as "Text" before entering the data, or prefix values with a single quote (') to force Excel to treat them as text

  • Alternative solution: Add leading zeros or text characters to prevent Excel from treating these values as numbers

Prevention: Always format SKU and Barcode columns as "Text" in Excel before entering data, especially for UPC codes, EAN codes, or other long numeric identifiers that should be treated as text rather than numbers.

PRD023 - Inventory Item Not Stocked at Location

You are trying to set inventory levels for a product variant at a location where the inventory item is not stocked. Before you can update inventory quantities, the product variant must first be stocked at that location.

If you are trying to set inventory using the Variant Inventory Qty column, the app will try to stock the variant at the oldest active location on your store. (It is not possible to see the default location for a store through the API.) If you want to stock the variant at a specific location, you can use the Inventory Available: [Location Name] column to set the inventory quantity.

PRD024 - Cannot Set Inventory When Inventory Tracking Is Disabled

You are trying to set inventory quantities for a product variant that has inventory tracking disabled. In Shopify, you cannot set inventory levels for variants that are not being tracked.

There are several ways to fix this:

  • Enable inventory tracking for the variant by setting the Variant Inventory Tracker column to shopify in your import file

  • If you want to update an existing variant, ensure that the variant has inventory tracking enabled in Shopify before attempting to set inventory quantities

  • Remove the inventory quantity columns (Variant Inventory Qty, Variant Inventory Adjust, or Inventory Available: [Location Name]) from your import file if you don't need to track inventory for this variant

This code also appears as a warning when a blank Variant Inventory Tracker cell disables tracking for a variant and the same row contains inventory quantities. The tracking change is applied, and the quantities are skipped. Remove the quantity columns, or set the tracker to shopify if you want to keep tracking inventory.

PRD025 - Invalid Harmonized System Code

The Harmonized System (HS) code provided is invalid. HS codes are used to classify goods for customs purposes.

If you are seeing this error, check that your HS codes:

  • Are valid HS codes

  • Don't contain invalid characters

  • Match an existing HS code classification

You can search for valid HS codes on the UK's Integrated Online Tariff website.

PRD026 - Add [ID] to Variant SKU for Faster Matching

Your import file has a 'Variant SKU' column but no product identification columns (ID, Title, Handle, or Variant ID). When importing by SKU alone, Altera must look up each SKU individually to find the matching product, which can be slow for large imports.

How to speed up your import:

Rename your 'Variant SKU' column to 'Variant SKU [ID]'. This tells Altera to use SKU as the primary identifier and enables a bulk lookup optimization that can significantly speed up imports.

Example:

Before:

Variant SKU,Variant Price
ABC-123,19.99
DEF-456,29.99

After:

Variant SKU [ID],Variant Price
ABC-123,19.99
DEF-456,29.99

This optimization is most noticeable when importing hundreds or thousands of products by SKU.

PRD027 - Add [ID] to Variant ID for Faster Matching

Your import file has a 'Variant ID' column but no product identification columns (ID, Title, or Handle). When importing by Variant ID alone, Altera must look up each variant individually to find the matching product, which can be slow for large imports.

How to speed up your import:

Rename your 'Variant ID' column to 'Variant ID [ID]'. This tells Altera to use Variant ID as the primary identifier and enables a bulk lookup optimization that can significantly speed up imports.

Example:

Before:

Variant ID,Variant Price
12345678901,19.99
12345678902,29.99

After:

Variant ID [ID],Variant Price
12345678901,19.99
12345678902,29.99

This optimization is most noticeable when importing hundreds or thousands of products by Variant ID.

PRD028 - Add [ID] to Variant Barcode for Faster Matching

Your import file has a 'Variant Barcode' column but no product identification columns (ID, Title, Handle, Variant ID, or Variant SKU). When importing by barcode alone, Altera must look up each barcode individually to find the matching product, which can be slow for large imports.

How to speed up your import:

Rename your 'Variant Barcode' column to 'Variant Barcode [ID]'. This tells Altera to use barcode as the primary identifier and enables a bulk lookup optimization that can significantly speed up imports.

Example:

Before:

Variant Barcode,Variant Price
123456789012,19.99
123456789013,29.99

After:

Variant Barcode [ID],Variant Price
123456789012,19.99
123456789013,29.99

This optimization is most noticeable when importing hundreds or thousands of products by barcode.

PRD029 - 'Variant Inventory Qty' Not Allowed When Updating With Multiple Locations

Your store has multiple inventory locations, so the 'Variant Inventory Qty' column cannot be used when updating existing products. This column sets inventory at a single location and could overwrite inventory data at your other locations.

When creating new products, 'Variant Inventory Qty' is still allowed and will set inventory at your store's default location.

How to fix:

Use location-specific inventory columns instead. Replace 'Variant Inventory Qty' with 'Inventory Available: [Location Name]' where [Location Name] matches one of your store's locations.

Example:

If your default location is named "Main Warehouse":

Before:

Handle,Variant SKU,Variant Inventory Qty
my-product,SKU-001,100

After:

Handle,Variant SKU,Inventory Available: Main Warehouse
my-product,SKU-001,100

You can set inventory for multiple locations by adding additional columns:

Handle,Variant SKU,Inventory Available: Main Warehouse,Inventory Available: Retail Store
my-product,SKU-001,100,25

PRD030 - 'Variant Inventory Adjust' Not Allowed With Multiple Locations

Your store has multiple inventory locations, so the 'Variant Inventory Adjust' column cannot be used. This column adjusts inventory at a single location and could cause incorrect inventory counts at your other locations.

How to fix:

Use location-specific inventory adjustment columns instead. Replace 'Variant Inventory Adjust' with 'Inventory Available Adjust: [Location Name]' where [Location Name] matches one of your store's locations.

Example:

If your default location is named "Main Warehouse":

Before:

Handle,Variant SKU,Variant Inventory Adjust
my-product,SKU-001,10

After:

Handle,Variant SKU,Inventory Available Adjust: Main Warehouse
my-product,SKU-001,10

You can adjust inventory for multiple locations by adding additional columns:

Handle,Variant SKU,Inventory Available Adjust: Main Warehouse,Inventory Available Adjust: Retail Store
my-product,SKU-001,10,-5

PRD031 - Invalid Unit Price Column Value

One or more of the unit price columns contains an invalid value. The unit price columns are:

Column Name

Description

Example

Unit Price Total Measure

The quantity value (decimal allowed)

100

Unit Price Total Measure Unit

The unit for the quantity

G

Unit Price Base Measure

The reference value (whole number)

1

Unit Price Base Measure Unit

The unit for the reference

KG

Valid units: CL, CM, FLOZ, FT, FT2, G, GAL, IN, ITEM, KG, L, LB, M, M2, M3, MG, ML, MM, OZ, PT, QT, YD

Value requirements:

  • Unit Price Total Measure - Must be a number (decimals allowed, e.g., 12.5)

  • Unit Price Base Measure - Must be a whole number (e.g., 1, 100). Decimals like 2.0 are accepted and converted to 2

  • Unit columns - Must be one of the valid units listed above. Case-insensitive (g, G, kg, KG all work)

Special behaviors:

  • Leave all columns blank - Skips updating unit pricing (preserves existing value on the product)

  • Set either measure value to 0 - Clears/removes unit pricing from the product (regardless of what units are entered)

  • Both JSON and separate columns present - If a row has a value in the Variant Unit Price (JSON) column, the separate columns are ignored for that row. The JSON column takes priority.

Example of correct usage:

Handle,Unit Price Total Measure,Unit Price Total Measure Unit,Unit Price Base Measure,Unit Price Base Measure Unit
my-product,500,G,1,KG

This example means "500 grams per 1 kilogram" for unit pricing display.

PRD032 - Gift Cards Must Be Enabled Before Importing

Gift card products cannot be imported until gift cards have been enabled on your Shopify store. New stores do not have gift cards enabled by default.

To enable gift cards:

  1. Log into your Shopify Admin

  2. Go to Products → Gift cards in the left-hand menu

  3. Click the Add gift card product button

You don't need to actually create a gift card product - simply clicking the button will enable gift cards for your store. After this, you can import gift card products through Altera.

PRD033 - Product Metafield Should Be Variant Metafield

Your file contains a product metafield column (e.g., Metafield: custom.myfield), but no metafield definition exists for products with that namespace and key. However, a metafield definition with that namespace and key does exist for variants.

This usually means you intended to set a variant metafield instead of a product metafield.

To fix this:

Change your column header from:

Metafield: namespace.key

To:

Variant Metafield: namespace.key

For example, if your column is Metafield: custom.color, change it to Variant Metafield: custom.color.

PRD034 - Variant Metafield Should Be Product Metafield

Your file contains a variant metafield column (e.g., Variant Metafield: custom.myfield), but no metafield definition exists for variants with that namespace and key. However, a metafield definition with that namespace and key does exist for products.

This usually means you intended to set a product metafield instead of a variant metafield.

To fix this:

Change your column header from:

Variant Metafield: namespace.key

To:

Metafield: namespace.key

For example, if your column is Variant Metafield: custom.material, change it to Metafield: custom.material.

PRD035 - Location Not Found for Inventory

The location name in the Inventory Available: [Location Name] column header could not be matched to any location in your Shopify store. Inventory was not updated for this location.

This can happen if:

  • The location name in your spreadsheet does not exactly match the location name in Shopify

  • The location has been renamed or deleted in Shopify

To fix this: Check the location name in your column header and make sure it matches the exact name of the location in your Shopify admin under Settings > Locations.

PRD036 - No Matching Variant to Update

The variant was skipped because the Variant Command was set to UPDATE but no existing variant could be matched in the Shopify store. The UPDATE command only updates existing variants and will not create new ones.

This can happen if:

  • The variant SKU, ID, or barcode in your spreadsheet does not match any existing variant on the product

  • The variant was previously deleted from the product

To fix this: Verify that the variant identifiers (SKU, ID, or barcode) in your file match existing variants in Shopify. If you want to create a new variant, use the MERGE command instead of UPDATE.

PRD037 - Option2 Without Option1

The spreadsheet has Option2 Name or Option2 Value columns but is missing Option1 columns. Option columns must be sequential - you cannot skip Option1 when using Option2.

To fix this: Add Option1 Name and Option1 Value columns to your spreadsheet. When updating a product that already has Option1 defined, include the existing Option1 values in your file.

PRD038 - Option3 Without Preceding Options

The spreadsheet has Option3 Name or Option3 Value columns but is missing Option1 or Option2 columns. Option columns must be sequential - all preceding options must be present.

To fix this: Add the missing Option1 and Option2 Name/Value columns to your spreadsheet.

PRD039 - Metaobject Not Found

A linked option value references a metaobject handle that does not exist on the store. For Shopify standard metaobject types, entries are created automatically. For custom metaobject types, entries must exist before importing.

To fix this: Create the metaobject entry in your Shopify admin before importing, or check that the handle in your spreadsheet matches an existing entry.

PRD040 - Metafield Definition Not Found

The Option Linked To column references a metafield definition that does not exist on the store. For Shopify standard metafield definitions (namespace shopify), they are enabled automatically. For custom metafield definitions, a product metafield definition of type list of metaobject references, pointing at the metaobject definition you want to link, must exist before importing.

To fix this: Create the metafield definition in your Shopify admin before importing: go to Settings > Custom data > Products, add a definition with content type Metaobject, select List of values, and choose the metaobject definition whose entries your option values should link to. The Option Linked To value should then match that definition in the format product.metafields.{namespace}.{key}.

PRD041 - Linked Option Value Invalid

A linked option could not be created. This can happen when:

  • The product's Category does not include the attribute you are trying to link. For example, shopify.material is available for some categories but not others.

  • One of the option values in your spreadsheet is not a recognized entry for the linked metaobject type.

To fix this: Check that the product's Category supports the attribute in your Option Linked To column. You can verify which attributes a category supports in the Shopify admin by editing a product in that category and looking at the available option types. Also verify that the option values in your spreadsheet are valid entries for the metaobject type.

PRD042 - Option Name Missing

A variant row has an Option Value but no corresponding Option Name. Every Option Value column must have a matching Option Name column.

To fix this: Add the corresponding Option Name column (e.g., if you have "Option1 Value", also include "Option1 Name") to your spreadsheet with the appropriate option name (e.g., "Size", "Color").

PRD043 - Media Processing Failed

An image or media file failed to process on Shopify's side. This typically happens when Shopify cannot download the image from the source URL (e.g., the URL is blocked, expired, or returns an error). The failed media is automatically removed from the product so it does not occupy one of the product's 250 media slots.

To fix this: Verify that the image URL is publicly accessible and not blocked by a firewall or authentication. Try opening the URL in a browser to confirm it loads. If the image is hosted on a private server, ensure it allows external access.

PRD044 - Cannot Convert Option to Linked

One or more option values could not be matched to a metaobject entry when converting a plain text option to a linked metaobject option. All existing option values on the product must have a corresponding metaobject entry for the conversion to succeed.

To fix this: Ensure that every option value (e.g., "Black", "Red") has a matching metaobject entry of the correct type. You can create missing metaobject entries in the Shopify admin under Settings > Custom data > Metaobjects, or by importing them with Altera first.

PRD045 - Could Not Detach Variant Image

Shopify rejected the request to remove the image association from a variant. The variant is left with its existing image in place, and the image remains attached to the product.

To fix this: Retry the import. If the error persists, check that the variant still exists and that you have permission to modify product media on the store.

PRD046 - Redirect Created for Changed Handle

The product's handle changed during the import, so a URL redirect was automatically created from the old product URL to the new one. This keeps existing links and SEO value working after the handle change.

To fix this: No action needed. This is informational. To stop redirects from being created, turn off "Create redirects if handles change" in the import options before starting the import.

PRD047 - Could Not Activate Inventory at Location

Shopify rejected the request to activate (stock) the inventory item at a location while importing inventory quantities. The quantities are still saved, but the Shopify admin shows "Location doesn't fulfill this variant" until the location is activated. The most common cause is a fulfillment service location that requires the variant to have a SKU.

To fix this: Check the reason included in the warning message. If the variant is missing a SKU, add a value in the Variant SKU column and re-import. Once the cause is fixed, importing the inventory quantities again will activate the location automatically.

PRD048 - Variant Inventory Not Updated

The importer could not determine which inventory item belongs to the variant while preparing an inventory update, so the quantity in the Variant Inventory Qty or Variant Inventory Adjust column was not applied.

To fix this: Retry the import. If the warning persists, export the products first and use the exported file as the basis for your update so the variant identifiers are present, or contact support with the job ID.

PRD060 - Market Has No Catalog Publication

Included / <Market> was set to FALSE for a market whose catalog only adjusts pricing (no publication). All products are implicitly available in such markets, so they can't be excluded from the import.

To fix this: Either remove the Included / <Market> column, leave the cell blank, or set it to TRUE. To gate visibility per product, the market needs an active catalog with a publication.

PRD061 - Compare At Price Requires Price

A Compare At Price / <Market> column was set without a matching Price / <Market> column. Shopify only stores a fixed compare-at price on a price list entry that already has a fixed price.

To fix this: Add a Price / <Market> column for the same catalog and include the fixed price alongside the compare-at price.

PRD062 - Variant Publishing Not Supported for POS

A Variant Published: Point of Sale column was set to FALSE, but Shopify doesn't allow per-variant publishing for the Point of Sale channel.

To fix this: Remove the Variant Published: Point of Sale column or leave the cells blank. Use the product-level Published: Point of Sale column to control POS visibility instead.

PRD063 - Image Src Filename Not Found

Image Src was set to a plain filename (no URL), but no file with that name exists in your Shopify Files. The image was not attached to the product.

To fix this: Either upload the file first (via the Files sheet or Settings > Files in Shopify Admin) and re-import, or set Image Src to a full URL (https://...) that the app can fetch and upload.

PRD064 - Combined Listings Require Shopify Plus

Your file uses combined listing columns (Combined Listing Role, Combined Listing Child, or Combined Listing Child ID), but combined listings are only available on Shopify Plus. This is a warning, not an error: the import still runs, but the combined listing columns are skipped and the products are imported as normal products (a PARENT product is created without its child links).

To fix this: Upgrade to Shopify Plus to use combined listings, or remove the combined listing columns to import the products normally without the warning.

PRD065 - Combined Listing Child Not Found

A row references a child product (by Combined Listing Child handle or Combined Listing Child ID) that could not be found, so it was not attached to the combined listing parent.

To fix this: Make sure the child product exists, or is created in the same import file, and that its handle or ID matches the value in the Combined Listing Child / Combined Listing Child ID column exactly.

PRD066 - Combined Listing Parent Not Found

The combined listing parent product could not be found after the import, so its child products were not linked. This usually means the parent row failed to import, or its Handle / ID did not resolve to a product on the store.

To fix this: Check that the parent product row imported successfully, and that its Handle or ID is correct and matches the products being created in the same file.

PRD067 - Combined Listing Update Failed

Shopify rejected the combined listing update for the parent product. The error message includes the reason returned by Shopify.

To fix this: Review the message for details. Common causes include a child product already belonging to another combined listing, or invalid option values. Correct the data and re-import.

PRD068 - Combined Listing Would Have No Children

A Combined Listing Child row used the DELETE command (or a REPLACE omitted every child) in a way that would remove all of a parent's child products. Shopify does not cleanly dissolve a listing this way: the product keeps its parent role, gains an empty default variant, and is forced to draft. The update was skipped to avoid leaving the parent in that state.

To fix this: Keep at least one child product attached to the parent. If you want to dissolve the combined listing entirely, delete the parent product instead.

PRD069 - Combined Listing Child Missing Option Value

A Combined Listing Child was set on a parent row that has no option value (Option1 Value). Each child must map to a parent option value, so the child was skipped and not linked to the listing.

To fix this: Add an Option1 Value (for example a color or model) to the parent row that references the child, then re-import.

PRD070 - Market Has No Catalog Publication for Variant Inclusion

Variant Included / <Market> was set for a market whose catalog only adjusts pricing (no publication). Without a catalog publication there's nothing to publish or unpublish individual variants against, so the per-variant inclusion was skipped.

To fix this: Either remove the Variant Included / <Market> column or use a market with an active catalog that has a publication. To control whole-product availability in a pricing-only market, see Included / <Market>.

PRD071 - Image Src CDN URL No Longer Exists

Image Src was a Shopify CDN URL for this store, but the file returns a 404 Not Found, so it no longer exists in your Shopify Files (it was likely deleted or regenerated with a new URL, for example by an app). The image was not attached to the product.

To fix this: Re-export the products to get current Image Src URLs, or set Image Src to a working image URL (https://...) that the app can fetch and upload.

PRD072 - Image URL Is Not a Public HTTP(S) URL

The image URL in Image Src or Variant Image uses a scheme the app cannot fetch (for example, file:// or a local file path). Shopify can only fetch images from publicly accessible http:// or https:// URLs, so the image was skipped and was not attached to the product. Note that ftp:// and sftp:// URLs are supported: the app downloads those files itself and uploads them to Shopify for you.

To fix this: Host the images on a public web server (or upload them to Shopify Files) and use their https:// URLs in the import file, or use an ftp:// / sftp:// link in the format ftp://username:password@server:port/path/file_name.

PRD073 - Image Could Not Be Downloaded From FTP/SFTP

An Image Src or Variant Image URL pointed to an FTP or SFTP server (ftp:// or sftp://), but the app could not download the file or upload it to Shopify. Common causes are a wrong username or password, a file path that does not exist on the server, a server that is not reachable from the internet, or a file larger than the 1 GB media limit. The image was skipped and the rest of the product row was still imported.

To fix this: Check that the URL follows the format ftp://username:password@server:port/path/file_name (the port is optional; use sftp:// for SFTP servers), that the credentials and file path are correct, and that the server is publicly reachable. If the username or password contains special characters such as @, percent-encode them (for example, %40 for @).

PRD074 - Cannot Re-link Option to a Different Metafield

The import tried to change which metafield a linked product option is linked to (for example, from product.metafields.shopify.size to product.metafields.custom.size), but one or more option values have no metaobject entry with a matching handle in the new metaobject type. All option values on the product must resolve to an entry in the new type before the option can be re-linked, so the option was left linked to its current metafield.

To fix this: Create a metaobject entry with the same handle for each option value in the target metaobject type before re-importing. Custom metaobject entries are never created automatically - you can add them in the Shopify admin under Settings > Custom data > Metaobjects, or import them with Altera first. Entries for Shopify standard category metaobjects (such as shopify--color-pattern) are created automatically when the value is part of Shopify's taxonomy. If re-linking to a Shopify standard metafield, also make sure the product's category supports that attribute.

PRD075 - Option Value Casing Updated to Match the File

An option value in the import file matched an existing option value on the product except for letter casing (for example, large blue in the file and Large Blue on the product). The existing option value was renamed to use the file's casing, and the variant was updated instead of a new variant being added.

This is informational and no action is needed. If you want to keep the store's original casing, use the same casing in your import file. Option values that differ in more than casing are still treated as new values, which add new variants to the product.

PRD076 - Inventory Location Is Deactivated

An Inventory Available or Inventory Available Adjust column in your import file refers to a location that exists on your store but has been deactivated in Shopify. Inventory cannot be stocked at a deactivated location, so the quantity in this column was skipped for the row. All other values in the row, including prices and quantities at active locations, were still imported.

To resolve this, either reactivate the location in your Shopify admin under Settings > Locations, or remove the column from your import file. Removing an unused location column also speeds up large imports, because the app no longer needs to process those cells. Rows where the cell is blank do not produce this warning.

PRD077 - Cannot Remove All Locations From a Variant

A blank cell in an Inventory Available: <Location> column removes the variant from that location. In this row, the blank cells would have removed the variant from every location it is stocked at. Shopify requires each variant to be stocked at at least one location, so no locations were removed for this variant.

To resolve this, keep a quantity in at least one Inventory Available column for the variant. If you don't want to change inventory at a location, remove that location's column from the file instead of leaving the cells blank.

PRD078 - Variant Could Not Be Removed From Location

A blank cell in an Inventory Available: <Location> column removes the variant from that location, but Shopify rejected the removal for this row. The warning includes Shopify's reason. A common cause is that the location still has committed or incoming inventory for the variant, for example from an unfulfilled order.

To resolve this, address the reason in the message (for example, fulfill or cancel open orders that commit inventory at that location) and import the row again.

PRD079 - Product May Be Missing From a Collection

The product was saved, but Altera could not confirm that it was added to one of the collections listed in the Custom Collections column. When an import creates a collection, Altera adds the products to that new collection a second time at the end of the sheet, because Shopify sometimes drops a product from a collection that was created moments earlier. This warning shows when that second add fails.

To resolve this, check the product in the Shopify admin. If it is missing from the collection, import the row again with the MERGE command to add it.

PRD080 - Variant Could Not Be Stocked At Location

A Stocked value in an Inventory Available: <Location> column connects the variant to that location without setting a tracked quantity, but Shopify rejected the connection for this row. The warning includes Shopify's reason.

The Stocked value appears in exports for variants whose inventory is not tracked, so this warning usually comes up when re-importing an exported file. To resolve this, address the reason in the message and import the row again.

PRD081 - Shipping Profile Not Found

The value in the Variant Shipping Profile column did not match any shipping profile on the store, so the variant was left in its current profile. The rest of the row was still imported.

The column accepts a profile's name or its ID, and the profile must already exist. Altera can assign variants to shipping profiles but cannot create them. To resolve this, check the profile names in the Shopify admin under Settings > Shipping and delivery, correct the value in the file, and import the row again. To assign the store's default profile, use General Profile.

PRD082 - Combined Listing Too Large

The combined listing in the file is bigger than Shopify allows. Shopify accepts at most 250 child products, 250 values per option, and 250 removals in a single combined listing update, and it rejects the whole update when any of those is exceeded. The parent product itself was still imported, but its child products were not linked.

To resolve this, split the products across more than one combined listing so that no parent has more than 250 children or more than 250 values on a single option, then import the file again. If you are removing children, remove up to 250 per import.

PRD083 - Blank Cell in Variant [ID] Column

The import uses a variant-level [ID] column (Variant SKU [ID], Variant Barcode [ID], or Variant ID [ID]) and one or more rows have a blank cell in that column. A row on an [ID] import is matched only by the value in the [ID] column, so a blank cell can't be matched to any variant. Those rows are skipped and their variant data isn't imported. Product-level data and images on the same rows are still applied to the product from the row above. When every row of a product has a blank [ID] cell, the rows are skipped entirely and no product is created or updated.

To resolve this, fill in the missing identifier for those rows, or remove the rows from the file. If the variants don't have a SKU or barcode in Shopify, use Variant ID [ID] or a plain ID column instead.

PRD084 - Conflicting Product Values Across Rows

Rows that belong to the same product (grouped by ID or Handle, or matched through a variant [ID] column) are processed together. A product-level column such as Tags or Title had different values on those rows, so only the first row's value was applied to the product.

To resolve this, give every row of a product the same value in product-level columns, or leave the value blank on all but one row. Variant-level columns (price, SKU, inventory, and so on) and image columns can differ per row. A conflicting Command column is a hard error instead of this warning, see IMP013.

PRD085 - Product Deleted but Replacement Failed

The row used the REPLACE command, which deletes the existing product and creates a new one from the row. The delete succeeded, but the create did not finish. The message includes the reason and tells you which of two situations you are in:

  • "the replacement could not be created": Shopify rejected the new product, so no product with this handle is on the store any more.

  • "a replacement was created, but it could not be completed": Shopify created the product, but a later step failed (variants, images, publishing, or market prices). The product exists with the ID in the message and is incomplete.

Before it deletes, Altera checks the row for problems it can detect itself (a missing title, invalid variant values, unreadable metafield values, and so on) and fails the row with the product intact. This error only appears when Shopify rejects something after the delete, for example because of a store limit or a value Shopify validates on its side.

To resolve this, fix the problem in the message and import the row again with Command set to MERGE. MERGE creates the product if it is missing and completes it if it was partly created, so it is safe in both situations. Do not use NEW, which skips the row if the partly created product exists. The original product's ID is gone in both cases, so links to it (collections, orders, redirects) point to the new product only if you add them again.

PRD086 - Invalid Variant Command

The 'Variant Command' column contains a value that isn't a variant command. The column must contain 'MERGE', 'UPDATE', 'NEW', 'DELETE', or 'REPLACE' (case insensitive), or be left blank to use 'MERGE'.

  • MERGE: Updates the variant if it exists, otherwise creates it

  • UPDATE: Updates the variant only if it exists

  • NEW: Creates the variant only if it doesn't exist yet

  • DELETE: Removes the variant from the product

  • REPLACE: Updates or creates the listed variants and removes every other variant from the product

The file is rejected so that a typo such as 'DELTE' can't update a variant you meant to delete. Correct the value in the row shown in the message and upload the file again.

'IGNORE' is not a variant command. To leave a variant unchanged, remove its row from the file. To skip a whole product, set the product's 'Command' column to 'IGNORE' instead.

PRD087 - Variant Command REPLACE Removes Unlisted Variants

The 'Variant Command' column contains 'REPLACE'. For each product that has a REPLACE row, the file is treated as the complete list of variants: variants that match a row are updated, rows without a match create new variants, and every existing variant that no row references is deleted from the product. The import result lists how many variants were removed from each product.

This is the intended behavior of REPLACE, so no action is needed if you want to sync the product's variants to your file. If you only want to remove specific variants, use 'DELETE' on those rows and 'MERGE' on the others. REPLACE is skipped with a warning if it would leave the product with no variants.

PRD088 - Conflicting Commands Across a Product's Rows

This code is replaced by IMP013, which reports the same problem for every data type.

PRD089 - Duplicate Option Values With Different Variant Data

Two rows of the same product have the same option values (for example, both rows have Option1 Value set to Small) but different values in a variant column such as Variant SKU, Variant Price, or Variant Barcode. Shopify requires every variant of a product to have a unique combination of option values, so these rows can't both become variants. Instead of silently keeping only the first row's values, the product is not imported.

To resolve this, give each variant a unique combination of option values, or remove the duplicate row. Rows that repeat a variant's option values and leave the other variant columns blank are still merged into that variant; this layout is used to import multiple row-based variant metafields for one variant.

PRD090 - Media Could Not Be Uploaded to Shopify

An Image Src or Variant Image URL pointed to a video, 3D model, or other file that has to be uploaded to Shopify before it can be attached to the product, and Shopify refused the upload. The warning includes Shopify's reason, for example You can't upload more than 200 videos in an hour. Shopify limits each store to 200 video uploads per hour. The media was skipped and the rest of the product row was still imported.

To fix this: Import the same rows again with the MERGE command once the reason no longer applies. For the video limit, wait an hour and keep each import to 200 videos or fewer.

PRD091 - Unknown Barcode Type

A Variant Barcodes cell has a barcode with a word in front of a colon that isn't one of the barcode types Shopify supports, for example ean13:4006381333931 or sdf:2342323, a barcode that starts with a colon, or a type with no value after it, like ean:. The product row was not imported.

To fix this: Use one of upc, ean, isbn, gtin, or asin in front of the colon (ean:4006381333931), remove the type to store the barcode without one, or write a backslash in front of a colon that is part of the barcode (sdf\:2342323). Files in the format Altera wrote before 2026-09-24 get the same error for a type in square brackets that isn't one of the five (4006381333931 [EAN13]).

PRD092 - Too Many Barcodes

A Variant Barcodes cell lists more than 20 barcodes. Shopify allows up to 20 barcodes per variant. The product row was not imported.

To fix this: Keep at most 20 barcodes in the cell, separated by semicolons.

PRD093 - Duplicate Barcode in Cell

A Variant Barcodes cell lists the same barcode more than once, for example 4006381333931; ean:4006381333931. Shopify rejects duplicate barcodes on one variant, so only the first entry was kept and the row was still imported.

To fix this: Remove the repeated value from the cell. To set a type on a barcode, write the barcode once with the type in front of it.

PRD094 - Variant Barcode Does Not Match Variant Barcodes

The row fills both Variant Barcode and Variant Barcodes, but the Variant Barcode value is not the first value in Variant Barcodes. The first barcode in Variant Barcodes is the variant's primary barcode, so the two columns would disagree about it. The product row was not imported.

To fix this: Leave Variant Barcode blank, or make it the first value in Variant Barcodes. An Altera export always writes the two columns consistently.

PRD095 - No Media Matched the DELETE Row

A media row has Image Command set to DELETE, but no media on the product matches its Image Src value, so nothing was removed. Images and hosted videos are matched by filename. YouTube and Vimeo videos are matched by video ID, so any of the usual URL forms work (youtu.be/<id>, youtube.com/watch?v=<id>, youtube.com/embed/<id>). The rest of the product row was imported normally.

To fix this: Compare the Image Src value with the media on the product. An export of the product shows the exact Image Src for each media item. If the media was already removed by an earlier import, no action is needed. 3D models cannot be removed with DELETE yet.

PRD096 - Shipping Profile Ignored on Market-Driven Shipping

This store uses Shopify's market-driven shipping. Shipping rates are set on each market under Settings > Markets and apply to products by collection, so the store no longer has shipping profiles to assign variants to. The value in the Variant Shipping Profile column was ignored. The rest of the row was imported normally.

To fix this: Remove the Variant Shipping Profile column from the file, or leave its cells blank. To control which products a rate applies to, add the products to a collection and select that collection on the rate in the market's shipping settings. A value of General Profile is accepted silently, so exported files still re-import without this warning.

PRD097 - Shipping Profile Could Not Be Changed

Shopify rejected the request to move the variant to the shipping profile named in the Variant Shipping Profile column. The reason Shopify gave is included in the warning. The rest of the row was imported normally and the variant stays in its current profile.

To fix this: Check the profile in the Shopify admin under Settings > Shipping and delivery, correct the value in the file, and import the row again. If the reason says the variant cannot be dissociated from the default profile, the variant is already in General Profile and no change is needed.

PRD098 - Pricing Column Matched No Market or Catalog

A pricing column header such as Price / <Name>, Compare At Price / <Name>, Included / <Name>, or Variant Included / <Name> names something that is neither a market nor a catalog on the store, so the whole column was skipped. The rest of the row was imported normally. The warning is shown once per column, not on every row.

To fix this: Compare the name in the header with your markets under Settings > Markets and with your catalog titles under Products > Catalogs, then correct the header and import the file again. A header can name a market or a catalog title, including a B2B company location catalog. Draft markets count, but sales channel catalogs are never matched.

PRD099 - Pricing Columns Disagree for the Same Catalog

Two pricing columns in the file write to the same catalog, for example a market name and that market's catalog title, or two markets that share one catalog, and on some rows they hold different values. The value from the column that comes first in the file was used, and the other value was ignored. The warning is shown once per column, not on every row.

To fix this: Keep only one column per catalog, or make sure the columns hold the same value on every row. A blank cell in one of the columns never overrides a value in the other, so you only need to fill in one of them.

PRD100 - Product Matched by Alternate Handle Form

The row's Handle did not match a product exactly, but the same handle in its other spelling did, so that product was updated and its handle was kept. The two spellings are the original script (for example 男裝上衣) and the ASCII transliteration (nan-zhuang-shang-yi). This happens when a product was created with a transliterated handle by an earlier import and the file holds the original handle, or when the Convert handles to English letters option is on and the store still has the original handle. A product matched by its Handle is never renamed, so the storefront URL stays the same.

To fix this: No action needed if you only want the product's data updated. To change the handle, include the ID column in the file so the row is matched by ID; the Handle cell is then applied as a rename and a redirect is created when the Create redirects if handles change option is on.

Did this answer your question?