Skip to main content

Order and Inventory Error Codes

Error and warning codes for orders, draft orders, and inventory transfers.

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.

Order Codes

Error and warning codes that occur when dealing with orders

ORD001 - ID or Name Column Missing (Warning)

Order sheets work best with either a Name or ID column for grouping. When neither column is present, the system will fall back to using "Top Row" column markers for grouping, or group all rows into a single order if no Top Row column exists.

ORD002 - Required Column Missing

Required columns, such as the Line: Type column are missing from the source file.

ORD003 - Invalid 'Line: Type' Column

The Line: Type column must be one of these values:

  • Line Item

  • Discount

  • Shipping Line

  • Transaction

  • Refund Line

  • Refund Shipping

  • Fulfillment Line

  • Ignore

ORD004 - Order Import Email Notifications

Importing orders will trigger Shopify Admin staff notifications for each order unless they are disabled. Shopify does not provide a way for apps to detect if notifications are already turned off.

To disable order notifications, open up the Shopify admin and go to Settings > Notifications > Staff notifications and turn them off before importing large batches of orders.

Additionally, importing orders may trigger other applications that are configured to process new orders on Shopify. We recommend testing with 1-2 orders before importing large batches of orders.

ORD006 - Editing Orders Not Supported

Editing existing orders is not currently supported through the application. You may need to delete the existing order and create a new one with your desired changes.

ORD007 - Missing Line Item Data

This error occurs when processing a refund with insufficient line item data. When processing refunds, make sure to include all required line item information to properly associate the refund with the correct items.

ORD008 - Trial/Development Store Rate Limit

Shopify limits new orders to 5 per minute on trial and development stores. If your store is on a trial or development plan, order imports will run more slowly due to this limitation. To increase the import speed, consider upgrading to a paid Shopify plan.

ORD010 - Invalid Date/Time Value

The date/time columns in your order import ('Processed At', 'Transaction: Processed At', 'Fulfillment: Processed At') must contain valid date/time values or be left blank. This error occurs when these columns contain text or other values that cannot be parsed as valid dates. Use standard date formats like 2024-01-15, 2024-01-15 14:30:00, or Jan 15, 2024 2:30 PM. Ensure all values in these columns are either empty or contain properly formatted date/time values.

ORD011 - Payment Terms Due Date Required

When importing orders with fixed date payment terms, the 'Payment Terms: Due At' column must be provided and cannot be empty. This error occurs when you have specified a payment terms template that requires a fixed due date, but the corresponding 'Payment Terms: Due At' column is missing or empty. Ensure that for fixed date payment terms, you include the 'Payment Terms: Due At' column with a valid date/time value specifying when the payment is due.

ORD013 - Multiple Fulfillments Without ID

You can only update a single fulfillment per order when the Fulfillment ID is not specified. If you need to update multiple fulfillments for the same order, you must provide the specific Fulfillment ID for each fulfillment you want to update.

ORD015 - Incomplete Address Information

When importing orders, if you provide any shipping or billing address information, you must provide all required address fields. This error occurs when some address fields are filled but others are missing.

Required shipping address fields:

  • Shipping: Last Name

  • Shipping: Address 1

  • Shipping: City

  • Shipping: Country Code

Required billing address fields:

  • Billing: Last Name

  • Billing: Address 1

  • Billing: City

  • Billing: Country Code

How to fix this:

  • Either fill in all required address fields for the address type you're importing

  • Or remove the partial address data if the address is not needed

  • Ensure that when you provide any address field, you also provide the other required fields for that address type

ORD017 - Cannot Edit International Currency Order

Shopify does not allow editing orders that are recorded in a currency different from your store's currency, for example orders from before the store changed its currency. The order's Shop Currency column shows the currency it is recorded in.

To resolve this:

  • Make sure you are only trying to edit line items of orders recorded in your store's currency

  • Orders that customers paid in another currency (Currency differs from Shop Currency) can be edited, except that a custom line item can't be added to them (ORD057)

Note: Shopify doesn't allow adding Line Items to an Archived Order – the app will automatically unarchive the order, add the line items, and then re-archive it if it was originally archived.

ORD018 - No Line Items to Add

When using the Line: Command column with the MERGE value to add line items to an order, you must include at least one line item row in your spreadsheet.

To resolve this:

  • Make sure you have at least one row in your spreadsheet with Line: Type set to "Line Item"

  • Make sure the Line: Command column is set to "MERGE" for the line items you want to add

  • Verify that your line items have the required fields filled in (such as SKU or Product Handle to identify the product)

ORD019 - Invalid Fulfillment Line Item Quantity

The fulfillment request contains an invalid line item quantity. This typically happens when:

  • Line item already fulfilled: You are trying to fulfill a line item that has already been fulfilled. Shopify does not allow fulfilling the same line item twice.

  • Quantity exceeds available: The quantity you are trying to fulfill is greater than the unfulfilled quantity remaining on the line item.

How to fix this:

  • Check if the line items in your import have already been fulfilled in Shopify

  • Ensure the fulfillment quantity does not exceed the ordered quantity minus any already-fulfilled quantity

  • If re-importing fulfillments, remove rows for line items that were already fulfilled in a previous import

ORD020 - Refund Amount Adjusted for Fully Refunded Order

Shopify rejected the refund because the recorded refund amount in shop currency was greater than the net payment received on the destination order. This typically happens with multi-currency orders where the exchange rate drifted between sale time and refund time on the source store - the customer paid and was refunded the same presentment amount, but the recorded shop-currency values differ.

When the source order was fully refunded (Price: Current Total = 0, Price: Total Outstanding = 0, Payment: Status = refunded) and there is exactly one sale and one refund transaction, the import retries with the refund amount adjusted to match the sale so the order settles cleanly on the destination.

This is informational; no action is required. The destination order will show as fully refunded.

ORD021 - Company Link Could Not Be Resolved

The order specifies a B2B company link, but Altera couldn't unambiguously resolve the company and/or location. The row fails so the order isn't created with the wrong association.

This code is raised in any of the following situations:

  • A Company: column (ID, External ID, or Name) is set but no company on the store matches it

  • A Company: Location column is set but no location matches it

  • Company: Location ID resolves to a location that belongs to a different company than the Company: column on the same row

  • Company: Location Name is set without a Company: column and more than one company on the store has a location by that name

  • Company: Location External ID is set without a Company: column and more than one company on the store has a location with that external ID

  • A Company: column is set but no Company: Location column is set

To fix:

  • Import the company and its locations before importing orders that reference them

  • Check that the values in the Company: and Company: Location columns match existing records exactly

  • When Company: Location Name or Company: Location External ID may not be unique across companies, also set Company: ID, Company: External ID, or Company: Name to scope the lookup

  • Make sure Company: Location ID and the Company: column on the same row point at the same company

ORD022 - Company Location Requires a Customer

A Company: Location is set but no customer could be resolved for the order. Shopify only creates a B2B order when both a customer and a company location are provided, and the customer has an active role at that location. The row fails.

  • Set Customer: ID or Customer: Email to a customer that exists on this store

  • Make sure that customer has been assigned as a contact at the company location with an "Ordering only" or "Location admin" role (see the Companies import guide)

ORD023 - Company Link Ignored on Existing Order

A Company: column was set on a row using MERGE or UPDATE, but Shopify's order update API doesn't support changing the company location of an existing order. The company link was ignored and the order's existing company association was preserved.

  • Use REPLACE (delete and recreate) if you need to change the company link on an existing order

  • Otherwise, leave the Company: columns blank for MERGE/UPDATE rows

ORD024 - Customer Has No Role at Company Location

The order specifies both a customer and a company location, but the customer isn't assigned as a contact at that location. Shopify only accepts a B2B order when the customer has an active role at the linked company location, so the row fails.

  • Open the company location in Shopify Admin and add the customer as a contact with an "Ordering only" or "Location admin" role

  • Or import the contact role first using the Companies import (see the Companies import guide), then re-run the order import

  • Make sure Customer: ID / Customer: Email and the Company: Location columns point to a customer/location pair that already has a role assigned

ORD025 - Total Shipping Price Not Imported

The row sets Price: Total Shipping to a non-zero value, but no row for this order has Line: Type set to Shipping Line. Shopify's order creation API has no field for a total shipping amount - shipping charges can only be added to an order through a Shipping Line row. The order was created without any shipping charge, even if a transaction on the order included the shipping amount.

  • Add a row with Line: Type set to Shipping Line for the order, with Line: Title set to a shipping method name and Line: Price set to the shipping amount

  • Price: Total Shipping is informational only (used on export) and is never used to create shipping charges on import

ORD026 - Line Item Has No Matching Variant and No Title

A line item on the order could not be matched to a product variant on this store (the Line: SKU or Line: Variant ID value doesn't exist), and the row has no Line: Title value. Shopify requires every line item to have a title, so the order fails to import with a "Line items Title can't be blank" error.

The error message includes the SKU and/or variant ID from the row so you can find the problem line in your file.

  • Check the Line: SKU / Line: Variant ID value in the error message and correct it so it matches a variant that exists on this store

  • Or, if the line item is intentionally not linked to a product, add a Line: Title value so it can be imported as a custom line item

ORD027 - Line Fulfillment Status Ignored on Existing Order

A row using MERGE or UPDATE set Line: Fulfillment Status to fulfilled on an order that already exists, but no Fulfillment Line rows were included. The Line: Fulfillment Status column only creates a fulfillment when the order is first created. When updating an existing order, that column is ignored, so no fulfillment was created and the order stays unfulfilled even though the import reports success.

  • To fulfill the whole order, add a single row with Line: Type set to Fulfillment Line and Fulfillment: Status set to success. Leave Fulfillment: ID empty and you do not need to list the individual items; the whole order is fulfilled. Add one such row per order

  • To fulfill only some of the items (a partial fulfillment), include one Fulfillment Line row per item with a Fulfillment: ID (any value like F1 groups the lines into one fulfillment), Fulfillment: Status set to success, and the item's Line: SKU / Line: Title / Line: Price (or Line: ID) so it can be matched

  • The simplest route for a migration is to re-export the orders from Altera, which produces correctly shaped Fulfillment Line rows, then re-import that file with MERGE

  • This is a warning only - the rest of the order update still applies

ORD028 - Order Details Read from First Line Item Row

The first row for this order has Line: Type set to something other than Line Item (for example Discount or Shipping Line), and that row's order-level cells are blank. Order details like the customer email, billing and shipping addresses, and processed date are normally read from the first row of each order, so the app filled the missing details from the order's first Line Item row instead.

  • This is informational only - the order imported with the details from the Line Item row

  • To avoid the message, order the rows in your file so a Line Item row (the one carrying the email, addresses, and dates) is the first row for each order

ORD029 - Order Created but Not Cancelled

The row has Cancelled At or Cancel: Reason set, so the app created the order and then tried to cancel it. Shopify does not allow cancelling an order that is both paid and fulfilled. Normally the app handles this automatically by cancelling the order's fulfillments and retrying (see ORD034), but that automatic step failed here, so the order was left uncancelled.

  • The order itself was created successfully and remains open

  • To cancel it, first cancel its fulfillments in the Shopify admin, then run an UPDATE import for the order with Cancel: Reason set

  • Shopify sets the cancellation date to the time of the import, so the Cancelled At value from the file is not preserved

ORD030 - Zero-Amount Transaction Skipped

The row has a transaction with Transaction: Amount set to 0. Shopify doesn't accept zero-amount transactions when creating an order, so the app skipped the transaction and imported the order without it.

  • The order itself imported normally, including its Payment Status, so a fully discounted or voucher-paid order still shows as paid

  • If only part of the order was free, set Transaction: Amount to the amount that was actually charged instead of 0

  • To avoid the message, leave the Transaction: columns blank on orders where nothing was charged

ORD031 - Refund Line Doesn't Match a Line Item

The order has a Refund Line row that the app couldn't tie to any line item of the order, so it couldn't tell Shopify which item was refunded.

  • On a new order, set Line: ID on the Refund Line row to the same value as the Line Item row it refunds

  • On an existing order (UPDATE), set Line: ID on the Refund Line row to the ID of the line item it refunds. An export of the order shows this in the Line: ID column

  • If Line: ID is blank, the app falls back to matching on Line: Variant ID and then Line: SKU, so one of those must match a Line Item row on a new order, or a line item of the existing order

  • On a new order, a Refund Line row for an item that has no Line Item row of its own can't be imported, because the item is never created and there is nothing to refund

  • The order itself is still created or updated; only the refund fails

ORD032 - Refund Line Matches More Than One Line Item

The order has a Refund Line row with no Line: ID, and the Line: SKU or Line: Variant ID it does have appears on more than one line item of the same order. The app doesn't guess which one was refunded, because attaching a refund to the wrong line item gives the order incorrect financial records.

  • On a new order, set Line: ID on the Refund Line row to the same value as the Line Item row it refunds

  • On an existing order (UPDATE), set Line: ID on the Refund Line row to the ID of the line item it refunds. An export of the order shows this in the Line: ID column

  • This is common when an order has the same product on several lines, for example the same SKU bought in two separate lines at different prices

  • The order itself is still created or updated; only the refund fails

ORD033 - Order Archived at Current Time

The row updated an existing open order and had a value in the Closed At column, so the app archived (closed) the order. Shopify only lets an existing order be archived at the moment the request is made, so the archive date on the order is the time of the import, not the value from the Closed At cell.

  • This is informational; the order was archived as requested

  • The exact Closed At timestamp is only applied when the order is first created, so to preserve historical archive dates, include the Closed At column in the import that creates the order

  • Cancelling an order does not archive it, so include Closed At on rows that cancel orders too; fully refunded or fulfilled orders can be archived automatically depending on the store's settings

ORD034 - Fulfillments Cancelled to Cancel Order

The row cancels an order that is both paid and fulfilled. Shopify does not allow cancelling such an order, so the app cancelled the order's fulfillments first and then cancelled the order. Shopify cannot represent an order that is paid, fulfilled, and cancelled at the same time.

  • This is informational; the order was cancelled as requested

  • The order shows as unfulfilled because its fulfillments were cancelled; tracking details remain visible on the cancelled fulfillments in the order's timeline

  • Orders that are fulfilled but not paid can be cancelled without this step and keep their fulfillments

ORD035 - Refund Transaction Skipped Without Kind or Amount

The order has a refund row where both Transaction: Kind and Transaction: Amount are blank, but another Transaction: column (usually Transaction: Gateway) has a value. Shopify requires the kind and amount on every refund transaction, so the app skipped the transaction and imported the refund without it.

  • The refund itself was still created and records the returned items; only the payment transaction was left out

  • This is usually the right outcome for zero-value returns where no money moved; to avoid the message, leave all Transaction: columns blank on those rows

  • If money was refunded on the row, set Transaction: Kind to refund and fill in Transaction: Amount, then re-import with MERGE

ORD036 - Refund Transaction Missing Amount

The order has a refund row where a Transaction: column such as Transaction: Currency is filled in, but Transaction: Amount is blank. A refund transaction can't be created without an amount, so the transaction was not imported.

  • The refund itself may still have been created for the returned items, but without the payment transaction, so the refunded amount is missing from the order's financial records

  • Fill in Transaction: Amount on the row and re-import with MERGE

  • If no money was refunded, leave all Transaction: columns blank on the row instead

ORD037 - Discounts Ignored on Existing Order

The row updates an existing order but includes discount data, either a Discount row or Line: Discount values. Shopify only applies discounts when an order is created and has no way to add or change a discount on an existing order, so the discount was skipped.

  • To apply the discount, re-import the order with the REPLACE command, which deletes and re-creates the order, or delete the order in Shopify first and import it again

  • Shopify doesn't support per-line discounts on imported orders: the discount is applied as one order-level discount that Shopify spreads across the line items

ORD038 - Fulfillment Service Not Found on Store

The Line: Fulfillment Service value doesn't match any fulfillment service registered on this store, so the line item was assigned Shopify's default manual fulfillment service instead. The rest of the order, including its fulfillments and tracking information, is imported normally.

  • This usually happens when importing orders exported from a different store: fulfillment services belong to a specific store, so the source store's services don't exist on the destination store

  • The manual fallback only affects which service the line item is associated with; tracking numbers and fulfillment statuses come from the Fulfillment: columns and are unaffected

  • To keep a third-party fulfillment service assignment, install and set up that fulfillment service on the destination store before importing, or clear the Line: Fulfillment Service column to accept the manual service without warnings

ORD039 - Shopify Source Value Skipped

The Source value is one of Shopify's own channel values (web, pos, iphone, android, shopify_draft_order, checkout_one, checkout_next). Shopify doesn't allow apps to set these protected values when creating an order, and sending one makes the whole order fail, so the value was skipped and the order was created without it.

  • These values appear in files exported from Shopify, so this warning is common when copying orders between stores

  • The order itself is imported normally; only the source value is left unset

  • To keep channel information on the order, use a custom Source value that isn't in the protected list, or add a tag and filter the order list by tag

ORD040 - Refund Transaction Generated by Default

The file has Refund Line or Refund Shipping rows for this refund but no Transaction row linked to the same Refund: ID, and the Refund: Generate Transaction column is missing or blank. The app treats a missing value as TRUE, the same as Matrixify, so it generated the refund's payment transaction from Shopify's suggested refund for the refunded lines: the unit price times the refunded quantity, plus the tax on those units, plus any refunded shipping. The transaction uses the gateway of the original payment and is linked to it as its parent.

  • This is an informational message; the refund and the transaction were created as described

  • To record a refund without returning any money, add the Refund: Generate Transaction column and set it to FALSE

  • To refund a different amount, add a Transaction row with the same Refund: ID, Transaction: Kind set to refund, and the amount in Transaction: Amount (see How to bulk partially refund Shopify orders for a specific amount)

  • Explicitly setting the column to TRUE generates the transaction in the same way without this message

ORD041 - Refund Transaction Not Generated

Refund: Generate Transaction was TRUE (or missing) for a refund with no Transaction row, but Shopify couldn't suggest a payment transaction for it, so the refund was created with its refund lines only and no money was returned. The message names the order and the reason.

Common reasons:

  • The order has no successful payment to refund against, for example an order that was imported as pending or unpaid

  • The refunded lines have already been refunded in full, so nothing is left to refund

  • Shopify returned an error for the suggested refund lookup

To return money on this order, check the order in the Shopify admin and, if it still has a refundable balance, import a Transaction row with the same Refund: ID, Transaction: Kind set to refund, and the amount in Transaction: Amount.

ORD042 - Fulfillment Line Doesn't Match a Line Item

An existing order was updated with a Fulfillment Line row that the app couldn't tie to any line item of the order, so that row was skipped. The rest of the fulfillment is still created if its other rows matched.

  • Set Line: ID on the Fulfillment Line row to the ID of the line item it fulfills. An export of the order shows this in the Line: ID column

  • If Line: ID is blank, the app matches on Line: SKU, Line: Title, Line: Variant Title, and Line: Price together, so those must match the line item exactly

  • Each line item is matched at most once per import, so two Fulfillment Line rows for the same item need Line: ID to tell them apart

ORD043 - Amount Missing in One Currency

The order's Currency (what the customer paid) is different from its Shop Currency, but an amount is only in one of the two currencies, so the order wasn't created. The app doesn't convert between currencies, because it can't know the exchange rate the order was placed at. The message lists every missing column.

  • Each amount column (for example Line: Price) holds the amount in the order currency, and its twin with (Shop Currency) at the end (for example Line: Price (Shop Currency)) holds the same amount in the shop currency. Fill in both for line items, shipping lines, transactions, fixed amount discounts, and taxes

  • A blank or missing Shop Currency column means the store's currency. An older file where Currency held the shop currency of an order in another currency needs a Shop Currency column with that same currency

  • For an order in one currency, set Currency and Shop Currency to the same value (or leave Shop Currency blank for the store's currency). Then only the amount columns are needed

  • With the REPLACE command the existing order is kept, because the new one can't be created

ORD044 - Transaction Currency Isn't the Order Currency

A transaction row has a Transaction: Currency that is different from the order's Currency. Shopify only accepts transactions in the order currency, so the amount in Transaction: Amount was imported as an amount in the order currency. Check the order's payment status after the import. If the amount was in another currency, convert it to the order currency in the file and import the order again.

When the order has one currency and the row has a Transaction: Amount (Shop Currency) value, that value is imported as the amount instead, because it is already in the order currency. Files exported before September 28, 2026 have this shape for orders that the customer paid in another currency.

ORD050 - Order Line Items Edited

The import changed the line items of an existing order. The message counts the line items that were added (Line: Command set to MERGE), updated (a higher Line: Quantity), and deleted (Line: Command set to DELETE). For example: Order Edit: added [1] Line Items, updated [0], deleted [1].

All the changes for one order are saved together as one order edit in Shopify, and the order timeline shows them. The customer isn't notified. This message is for information only.

ORD051 - Line Item Quantity Not Decreased

The Line: Quantity value is lower than the quantity of the existing line item, so the quantity wasn't changed. Shopify reduces the quantity of an existing line item through a refund, not an edit.

  • To reduce the quantity, add a Refund Line row for the line item with the quantity to remove. See Refunds

  • To remove the whole line item, set Line: Command to DELETE on its row

  • To leave the line item as it is, clear Line: Quantity or set it to the current quantity

ORD052 - Line Item Row Matches More Than One Line Item

The row has no Line: ID, and its Line: Variant ID or Line: SKU (or, on a Line: Command MERGE row, its Line: Title) matches more than one line item on the order, so the app can't tell which line item to change. The row was skipped and the other rows were imported. A MERGE row that matches more than one line item isn't added.

  • Set Line: ID on the row to the ID of the line item to change. An export of the order shows it in the Line: ID column

ORD053 - Customer Email Not Changed

The row has a Customer: ID and a Customer: Email that belongs to a different customer, or that is different from the email of that customer. The order is linked to the customer with the Customer: ID, and the email in the file is ignored.

  • An order import can't change a customer's email. To change it, import the customer with a customers import

  • To link the order to the customer with that email, remove the Customer: ID value from the row

ORD054 - New Customer Created

No customer on the store has the Customer: Email from the row, so the app created a new customer with that email and linked the order to it. The new customer also gets the name, phone, and address from the row's Customer: columns. This message is for information only.

ORD055 - Order Customer Not Changed

The row asks to change the order's customer, but no customer on the store matches the Customer: ID or Customer: Phone value, so the order keeps its current customer. The rest of the row was imported.

  • Check that the Customer: ID belongs to a customer on this store. IDs from another store don't match

  • To find the customer by email, or to create a new customer, add the Customer: Email column

  • To remove the customer from the order, leave Customer: ID blank, with no Customer: Email or Customer: Phone value on the row

ORD056 - Unknown Line Command

A row has a Line: Command value that isn't DEFAULT, MERGE, or DELETE (for example a typo like DELTE). The order wasn't created or changed, so that the line items aren't left in a state you didn't ask for.

  • Correct the value and import the order again. Values are case-insensitive

  • Leave the cell blank to keep the line item as it is

ORD057 - Custom Line Item Can't Be Added to a Multi-Currency Order

The row adds a custom line item (Line: Command set to MERGE, with no product) to an order in two currencies: the order's Currency, which the customer paid in, differs from its Shop Currency. Shopify prices a new custom line item in the order currency and sets the shop currency amount with its own exchange rate, and the app doesn't convert between currencies. The order wasn't changed. The message has the same wording as Matrixify, for example Currency must be EUR.

  • To add a product, use Line: SKU or Line: Variant ID instead. Shopify adds it at the product's price in both currencies

  • To add the custom line item with your own amounts in both currencies, create the order again: import it with the REPLACE command, with Line: Price and Line: Price (Shop Currency) on each line item row. This deletes the order and creates a new one

Draft Order Codes

Error and warning codes that occur when dealing with draft order imports and operations.

DRFT001 - Draft Orders Import Not Yet Available

We're still working on importing draft orders. Please email us if you need more information about when this feature will be available or if you have specific requirements for draft order imports.

DRFT002 - Unable to Find Draft Order to Delete

The draft order you are trying to delete cannot be found in your Shopify store. This may be because it was already deleted or because the identifier (ID or name) provided in your import is incorrect.

DRFT003 - Shopify API Refused to Save Draft Order

The Shopify API rejected the draft order data and refused to save it during a creation operation. This typically occurs when the draft order configuration violates Shopify's business rules or contains invalid data that passed initial validation but failed at the API level.

DRFT004 - Draft Order is Completed - Only Tags Can Be Updated

You are trying to update a draft order that has already been completed (converted to a real order). Completed draft orders are locked and only their tags can be modified. Other changes require creating a new draft order.

DRFT005 - Shopify API Refused to Update Draft Order

The Shopify API rejected the draft order data and refused to update it. This typically occurs when the updated draft order configuration violates Shopify's business rules or contains invalid data that passed initial validation but failed at the API level.

DRFT006 - Invalid Email Format

The email address provided for the draft order is not in a valid format. Email addresses must follow the standard email format (e.g., [email protected]). Please check the email field and ensure it contains a properly formatted email address.

DRFT007 - Invalid Date Format for Reserve Inventory Until

The date format provided for the 'Reserve Inventory Until' field is invalid. Expected format is YYYY-MM-DD HH:MM:SS or YYYY-MM-DD. Please ensure your date values match one of these formats.

DRFT008 - Company Link Could Not Be Resolved

Altera could not link the draft order to a B2B company location. This happens when the Company: columns reference a company, location, or customer that doesn't exist on the store, when the location belongs to a different company than the one specified, or when a Company: column is set without a corresponding Company: Location value. Make sure the company and location identifiers exactly match an existing record in Shopify and that the row also sets Customer: ID or Customer: Email.

DRFT009 - Could Not Resolve Company Contact

The draft order specifies a company location, but the customer is not a contact of that company and could not be added automatically. Add the customer as a contact of the company in Shopify admin (or in the same import via the Companies sheet) before importing draft orders that reference this company.

DRFT010 - Invalid Email Format

A value in the Email column of a draft orders file does not look like an email address. The message includes the row number and the value that was found. Correct the value so it contains an @ and a domain, or leave the cell blank, and upload the file again.

DRFT011 - Invalid Customer Email Format

A value in the Customer: Email column of a draft orders file does not look like an email address. The message includes the row number and the value that was found. Correct the value so it contains an @ and a domain, or leave the cell blank, and upload the file again.

DRFT012 - Line Quantity or Price Must Be a Number

A value in the Line: Quantity or Line: Price column of a draft orders file is not a number. The message names the column, the row, and the value that was found. Remove any currency symbols or text from the cell so it contains only a number, and upload the file again.

DRFT013 - Invalid Date/Time Value

A value in the Reserve Inventory Until, Created At, or Updated At column of a draft orders file could not be read as a date and time. The message names the column, the row, and the value that was found. Use a format like 2024-12-05 06:12:35 -0500 (ISO-formatted timestamps are also supported), or leave the cell blank, and upload the file again.

Inventory Transfer Codes

Error and warning codes that occur when dealing with inventory transfer imports and operations.

TRFR001 - Unable to Resolve Line Item

An inventory transfer line item could not be matched to a product variant. This happens when the SKU, barcode, or inventory item ID provided doesn't match any variant in your store, or when the quantity is missing or zero. Check that your SKUs match exactly and that the quantity is greater than zero.

TRFR002 - Inventory Transfer Not Found for UPDATE

The UPDATE command was used, but no inventory transfer with the provided ID could be found in your Shopify store. Either use MERGE to create the transfer if it doesn't exist, or verify the ID in your file matches an existing transfer.

TRFR003 - Invalid Inventory Transfer Status Transition

The Status value in the import file is either unknown or represents a transition that is not allowed from the transfer's current state. Valid statuses are Draft, Ready to Ship, In Progress, Received, and Cancelled. Note that In Progress and Received are only reached by creating and receiving shipments - they cannot be set directly. Transfers cannot be moved back to Draft, and a received transfer cannot be cancelled.

TRFR004 - Shipment Not Found on Transfer

A row referenced a shipment that doesn't exist on the transfer (either by ID or because DELETE was used without a valid ID). Leave the Shipment N: ID column blank to create a new shipment, or use the ID of a shipment that already exists on the transfer.

TRFR005 - Conflicting Shipment Column Prefixes

The import file contains both Shipment: (single shipment) and Shipment 1: (numbered shipments) column prefixes in the same sheet. Pick one convention and use it consistently. Use Shipment: when every transfer has exactly one shipment, or Shipment 1:, Shipment 2:, etc. when transfers may have multiple shipments.

TRFR006 - Transfer Location Not Found

The origin or destination location specified for the inventory transfer could not be found in your Shopify store. Verify that the location name or ID in your import file matches an existing location. Leave blank for external suppliers or shipments.

TRFR007 - Origin and Destination Can Only Be Changed for Draft Transfers

You tried to change the Origin Location or Destination Location on an inventory transfer that is no longer in DRAFT status. Shopify only allows origin and destination to be changed while the transfer is in the Draft state. Either clear the location column to leave it unchanged, or cancel and recreate the transfer.

TRFR008 - Shopify API Refused to Save Inventory Transfer

The Shopify API rejected the inventory transfer data and refused to create it. This typically occurs when the transfer configuration violates Shopify's business rules or contains invalid data. Check the error message returned by the API for specific details.

TRFR009 - Shopify API Refused to Save Inventory Shipment

The Shopify API refused to create or update an inventory shipment on this transfer. This usually means the shipment input violates a business rule (for example, the transfer isn't in a shippable state or the shipment has no line items). Check the surrounding error message for the specific reason.

TRFR012 - Inventory Transfer Already Exists

The NEW command was used for an inventory transfer that already exists in your Shopify store. Use MERGE to update an existing transfer (once updates are supported), or remove the ID column to create a new transfer.

TRFR014 - Inventory Transfer REPLACE Not Yet Supported

The REPLACE command is not yet supported for inventory transfers and will be available in a future release. Use NEW or MERGE to create new transfers.

TRFR015 - Invalid Date Created

The value provided for the Date Created field is not a valid date. Expected format is YYYY-MM-DD HH:MM:SS or an ISO 8601 timestamp. Please check the date value and ensure it matches one of these formats.

TRFR017 - Inventory Item Does Not Track Inventory

One or more line items reference a variant that has inventory tracking disabled. Shopify only allows inventory transfers for tracked variants. Enable inventory tracking on the variant in Shopify admin (or via a product import) before including it in a transfer.

TRFR018 - Inventory Item Not Stocked at Origin or Destination

A line item on the inventory transfer references a variant that Shopify considers "not stocked" at one of the transfer's locations. Shopify surfaces a single error message for this, but in practice it can be triggered by either end of the transfer:

  • Origin not stocked - the item has never been activated at the origin location, so there is no inventory level to draw from. Stock the item at the origin (for example with a product or inventory import) before including it in the transfer.

  • Destination not stocked - the origin has stock, but the destination location has never had an inventory level activated for this item. Shopify requires an active inventory level at the destination before a shipment can move from Draft or Ready to Ship into In Transit. Activate the item at the destination (an inventory import with quantity 0 is enough) and retry.

If you see this error when creating or marking a shipment as In Transit and the origin clearly has stock, the destination is almost always the real cause.

TRFR019 - Invalid Shipment Status Transition

The Shipment N: Status value is either unknown or represents a transition that isn't allowed from the shipment's current state. Valid statuses are Draft, In Transit, Partially Received, and Received. Shipments can move Draft to In Transit to Received, but cannot be sent back to an earlier state.

TRFR020 - Shipment Has No Line Items

A new shipment was requested but the transfer has no remaining shippable quantities for any of its line items. Either add more line items to the transfer, or avoid creating additional shipments until line items with remaining quantity are available.

TRFR021 - Ambiguous SKU or Barcode

A line item's SKU or barcode matched more than one variant in your store, so the importer cannot decide which inventory item to transfer. Shopify treats inventory transfers as strict on this point - duplicate SKUs are rejected rather than guessed. Make the SKU or barcode unique across your catalog (or scope it to the correct variant) and re-run the import.

TRFR022 - No Line Items Could Be Resolved

The row included line items but none of them matched a variant in your store by SKU or barcode. Rather than create or update the transfer with the wrong line items (or with none at all), the row is rejected. Check the accompanying TRFR001 warnings to see which SKUs or barcodes failed, correct them, and re-run the import.

Did this answer your question?