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 ItemDiscountShipping LineTransactionRefund LineRefund ShippingFulfillment LineIgnore
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 (
Currencydiffers fromShop 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: Typeset to "Line Item"Make sure the
Line: Commandcolumn is set to "MERGE" for the line items you want to addVerify 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 itA
Company: Locationcolumn is set but no location matches itCompany: Location IDresolves to a location that belongs to a different company than theCompany:column on the same rowCompany: Location Nameis set without aCompany:column and more than one company on the store has a location by that nameCompany: Location External IDis set without aCompany:column and more than one company on the store has a location with that external IDA
Company:column is set but noCompany: Locationcolumn is set
To fix:
Import the company and its locations before importing orders that reference them
Check that the values in the
Company:andCompany: Locationcolumns match existing records exactlyWhen
Company: Location NameorCompany: Location External IDmay not be unique across companies, also setCompany: ID,Company: External ID, orCompany: Nameto scope the lookupMake sure
Company: Location IDand theCompany: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: IDorCustomer: Emailto a customer that exists on this storeMake 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 orderOtherwise, leave the
Company:columns blank forMERGE/UPDATErows
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: Emailand theCompany: Locationcolumns 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: Typeset toShipping Linefor the order, withLine: Titleset to a shipping method name andLine: Priceset to the shipping amountPrice: Total Shippingis 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 IDvalue in the error message and correct it so it matches a variant that exists on this storeOr, if the line item is intentionally not linked to a product, add a
Line: Titlevalue 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: Typeset toFulfillment LineandFulfillment: Statusset tosuccess. LeaveFulfillment: IDempty and you do not need to list the individual items; the whole order is fulfilled. Add one such row per orderTo fulfill only some of the items (a partial fulfillment), include one
Fulfillment Linerow per item with aFulfillment: ID(any value likeF1groups the lines into one fulfillment),Fulfillment: Statusset tosuccess, and the item'sLine: SKU/Line: Title/Line: Price(orLine: ID) so it can be matchedThe simplest route for a migration is to re-export the orders from Altera, which produces correctly shaped
Fulfillment Linerows, then re-import that file withMERGEThis 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 Itemrow (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: ReasonsetShopify sets the cancellation date to the time of the import, so the
Cancelled Atvalue 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 paidIf only part of the order was free, set
Transaction: Amountto the amount that was actually charged instead of 0To 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: IDon theRefund Linerow to the same value as theLine Itemrow it refundsOn an existing order (
UPDATE), setLine: IDon theRefund Linerow to the ID of the line item it refunds. An export of the order shows this in theLine: IDcolumnIf
Line: IDis blank, the app falls back to matching onLine: Variant IDand thenLine: SKU, so one of those must match aLine Itemrow on a new order, or a line item of the existing orderOn a new order, a
Refund Linerow for an item that has noLine Itemrow of its own can't be imported, because the item is never created and there is nothing to refundThe 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: IDon theRefund Linerow to the same value as theLine Itemrow it refundsOn an existing order (
UPDATE), setLine: IDon theRefund Linerow to the ID of the line item it refunds. An export of the order shows this in theLine: IDcolumnThis 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 Attimestamp is only applied when the order is first created, so to preserve historical archive dates, include theClosed Atcolumn in the import that creates the orderCancelling an order does not archive it, so include
Closed Aton 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 rowsIf money was refunded on the row, set
Transaction: Kindtorefundand fill inTransaction: 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: Amounton the row and re-import with MERGEIf 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 unaffectedTo 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 Servicecolumn 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
Sourcevalue 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 Transactioncolumn and set it toFALSETo refund a different amount, add a
Transactionrow with the sameRefund: ID,Transaction: Kindset torefund, and the amount inTransaction: Amount(see How to bulk partially refund Shopify orders for a specific amount)Explicitly setting the column to
TRUEgenerates 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: IDon theFulfillment Linerow to the ID of the line item it fulfills. An export of the order shows this in theLine: IDcolumnIf
Line: IDis blank, the app matches onLine: SKU,Line: Title,Line: Variant Title, andLine: Pricetogether, so those must match the line item exactlyEach line item is matched at most once per import, so two
Fulfillment Linerows for the same item needLine: IDto 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 exampleLine: Price (Shop Currency)) holds the same amount in the shop currency. Fill in both for line items, shipping lines, transactions, fixed amount discounts, and taxesA blank or missing
Shop Currencycolumn means the store's currency. An older file whereCurrencyheld the shop currency of an order in another currency needs aShop Currencycolumn with that same currencyFor an order in one currency, set
CurrencyandShop Currencyto the same value (or leaveShop Currencyblank for the store's currency). Then only the amount columns are neededWith the
REPLACEcommand 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 Linerow for the line item with the quantity to remove. See RefundsTo remove the whole line item, set
Line: CommandtoDELETEon its rowTo leave the line item as it is, clear
Line: Quantityor 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: IDon the row to the ID of the line item to change. An export of the order shows it in theLine: IDcolumn
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: IDvalue 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: IDbelongs to a customer on this store. IDs from another store don't matchTo find the customer by email, or to create a new customer, add the
Customer: EmailcolumnTo remove the customer from the order, leave
Customer: IDblank, with noCustomer: EmailorCustomer: Phonevalue 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: SKUorLine: Variant IDinstead. Shopify adds it at the product's price in both currenciesTo add the custom line item with your own amounts in both currencies, create the order again: import it with the
REPLACEcommand, withLine: PriceandLine: 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
0is 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.
