Import Inbound
Contents
1. Feature Guide
When a merchant delivers many product lines at once, or you need to register several inbounds together, instead of typing each one by hand in "New Inbound" you can open the import dialog from the inbound list with "Import" and upload one Excel template covering the whole batch. The system creates or updates the inbounds from the template, saving you the time of entering them one by one.
Quick Jump: Dialog Fields | Workflow | Template Columns | Multiple Lines per Inbound | Override Existing Data
1.1 Dialog Fields
Clicking "Import" in "Inbound List" opens the import dialog. The fields and buttons, top to bottom, are below. Fields marked with * are required.
| Field / Button | How to fill | Notes |
|---|---|---|
| Import Template | Optional. If you created import templates earlier, select one to apply its column mapping | Leave empty to use the system default column mapping. Select the template before downloading, so the template headers align with it |
| *Select Merchant | Select the merchant these inbounds belong to | The inbounds are created under this merchant; single-merchant plans do not show this field |
| Download Template | Download the Excel template and fill in your inbound data following it | You must select a merchant first; the template includes that merchant's product custom-attribute columns |
| *Select File | Click to choose a file, or drag it into the upload area | Only .xlsx / .xls, max 10MB per file, one file at a time |
| Override existing data | Checked by default; decides whether to overwrite an inbound with the same name | See Override Existing Data for the meaning |
| Upload | After confirming the merchant, file, and checkbox state, click to submit the import | The "Cancel" next to it closes the dialog and discards this import |
1.2 Workflow
▸ Download the template
- In "Inbound List", click "Import" in the top right to open the dialog
- Select the merchant in "Select Merchant" first
- Click "Download Template" and open the downloaded template in Excel
▸ Fill in the template
- The first row contains column headers — do not change it
- Enter data from the second row; see Template Columns for how to fill each field
- One inbound can span multiple product lines; see Multiple Lines per Inbound
- Save the file, keeping the .xlsx format
▸ Upload and import
- Return to the "Import" dialog and confirm the same merchant is selected
- Click "Select File" to choose the file, or drag it into the upload area
- Adjust the "Override existing data" checkbox as needed (uncheck to create, keep checked to update)
- Click "Upload" to submit
▸ Check the results
- After importing, the progress and success / failure results of this run are recorded in "Data Exchange Logs" → "Import Logs"
- Find this import record there to review the successful and failed lines; failed lines list their reason
- The inbound list does not refresh automatically — go back to the list and refresh manually to see the newly created inbounds
⚠️ The import runs in two stages: the system first checks the whole file, and if any line is invalid (a missing required field, a bad format, a product / inventory type that cannot be found, a duplicate inbound number, and so on), the entire file is aborted and not one inbound is created — the record lists every problem line at once, so fix them all and re-upload the whole file. Only once every line passes does the system create the inbounds one at a time; at that stage a single inbound can still fail (for example a missing Expected Arrival Date) while the rest are still created.
1.3 Template Columns
The column names below are the headers in the Excel template. Fields marked with * are required, and their columns must not be deleted from the template. Even when a column may be left empty in some cases (for example Expected Arrival Date for "Production"), the column itself must stay; if the whole column is removed, the system reports a missing required field on row 1 and none of the file is imported. The one exception is a column that already has a default value in your import template and that template is selected under "Import Template" when you import — then the column may be left out of the file and the system fills in the template's default. A template that exists but is not selected for this import counts for nothing, and the column is still reported as a missing required field.
Inbound-level columns (first row of each inbound):
| Column | How to fill | Notes |
|---|---|---|
| *Inbound Number | The identifying name of this inbound | Must be unique within the merchant; it is the key for identifying and overwriting existing inbounds |
| Other Number | E.g. a purchase order or shipping number from a third-party system | Optional |
| *Expected Arrival Date | Expected date the goods reach the warehouse, format YYYY-MM-DD | Only "Production" may leave it empty; for other inbound types a blank value fails that one inbound at the creation stage (the other inbounds in the file are still created). ⚠️ Never write a date such as "01/02/2026" or "01-02-2026", where the day and month order is ambiguous: the system always reads the day first, so it silently stores 1 February 2026 without reporting an error |
| Inbound Type | One of "Receiving", "Sales Return", "Production" | Defaults to "Receiving" if empty; the template puts a dropdown on this column, so picking from it is the safest way to fill it. A value the system does not recognize is rejected during validation and none of the file is imported |
| Inbound Note | A note for the whole inbound | Optional |
Product-level columns (every product line):
| Column | How to fill | Notes |
|---|---|---|
| *Product SKU | The product's SKU | Must be a product already created for the merchant, otherwise none of the file is imported |
| *Inventory Type Code | A code enabled for the merchant | Required on every line, and must be a code enabled for the merchant; a missing or unknown code means none of the file is imported |
| *Scheduled Inbound Quantity | The quantity this line is expected to receive; must be a number | Required, must be greater than 0, otherwise none of the file is imported; files using the former "Quantity" header still import correctly |
| Expiration Date | Product expiration date, format YYYY-MM-DD | Optional, can be filled in during verification; once filled it must be a date (use YYYY-MM-DD) — text such as "N/A" is rejected during validation and none of the file is imported. ⚠️ Never write "01/02/2026" or "01-02-2026" here either: the day is always read first, so it silently stores 1 February 2026 without reporting an error |
| Manufacturing Date | Product manufacturing date, format YYYY-MM-DD | Optional, can be filled in during verification; once filled it must be a date — text such as "N/A" or a non-existent date such as 2026-13-40 is rejected during validation and none of the file is imported. When the product has "Validity Days" set, fill in either Manufacturing Date or Expiration Date and the system derives the other; if you fill in both, the values are stored as you entered them and neither overwrites the other. ⚠️ The same ambiguous day/month warning as Expiration Date applies — always use YYYY-MM-DD |
| Batch | Product batch number | Optional, can be filled in during verification |
| Item Note | A note for this line | Optional |
📌 Note: If the merchant has defined product custom attributes, the template adds matching columns automatically. These custom-attribute columns are never required when importing inbounds and can be left empty.
1.4 Multiple Lines per Inbound
If one inbound has several products, use the "Inbound Number" column to group them:
- The first row of each new inbound must fill in the "Inbound Number" and that inbound's inbound-level columns
- The following product rows of the same inbound leave "Inbound Number" empty, and the system groups them under the previous inbound
For example: the first row has the inbound number + the first product, the next few rows have only products with the inbound number left empty, forming one inbound with multiple lines; the next inbound starts again from a row that fills in the inbound number.
⚠️ The very first data row of the file must have an inbound number, otherwise the system cannot tell which inbound that row belongs to and simply drops that row's products. Note that the import record then still shows status "completed" with a failure count of 0 — only one extra line appears in the error details, which is easy to miss. A later inbound whose first row is missing its number is quieter still: there is no error detail at all, and those product lines are merged into the previous inbound. Neither case is counted as a failure, so check yourself that every new inbound's first row carries a number.
1.5 Override Existing Data
"Override existing data" is checked by default. The system matches existing inbounds by "Inbound Number" and decides the action from the checkbox state and the existing inbound's status:
| Checkbox state | When an inbound with the same name exists | When to use |
|---|---|---|
| Unchecked | Reports an error, and none of the file is imported | Creating new inbounds, to avoid overwriting existing ones |
| Checked (default) | If the inbound is in the editable "Pending" status, updates it (replacing the original lines with the template's lines); otherwise reports an error and none of the file is imported | Updating existing inbounds |
Change details:
- Prerequisite: The inbound being overwritten must be in "Pending" status; inbounds that have started verification (and any later status) cannot be overwritten.
- Side effect: Overwriting clears the inbound's original lines and replaces the whole batch with the template's lines. So leaving a line's Expiration Date, Manufacturing Date, Batch or similar field empty in the file clears its original value (when the product has "Validity Days" set, the empty date is re-derived from the other date instead); if you change only Manufacturing Date while Expiration Date still has a value, Expiration Date keeps the value in the file and is not recalculated from the new Manufacturing Date.
- Reversibility: Once overwritten, the pre-overwrite content cannot be restored automatically.
2. FAQ
Quick Jump: Questions | Important Notes
2.1 Questions
▪ Where do I download the template? Why is the download button disabled?
In "Inbound List", click "Import" to open the dialog, select "Select Merchant" first, and the "Download Template" button becomes clickable. Without a merchant selected the download button is disabled, because the template needs to include that merchant's product custom-attribute columns.
▪ One inbound has many products — how do I fill the Excel?
Put the inbound number and inbound-level columns on the first row, and leave "Inbound Number" empty on the following product rows of the same inbound. See Multiple Lines per Inbound.
▪ Where do I see success or failure after importing?
Go to "Data Exchange Logs" → "Import Logs" to view this import's results and failure details. The inbound list does not refresh automatically — refresh it manually after returning.
▪ What does "Override existing data" mean? Will it overwrite an inbound already verified?
It decides whether to overwrite an inbound with the same name. It only overwrites inbounds still in "Pending" status; inbounds that have started verification are not overwritten and the system reports an error instead. See the full rules in Override Existing Data.
▪ Why did the whole batch fail to import?
The most common cause of a whole-batch failure is that the merchant has not set a default warehouse, so the system does not know which warehouse to receive into. Confirm the merchant has a default warehouse set, then import again. Beyond that, every validation-stage error (a missing required field, a bad format, a product / inventory type that cannot be found, a duplicate inbound number, and so on) also aborts the whole file — one bad line means nothing at all is created. See the categories in Common causes of import failure.
▪ Are Batch, Expiration Date and Manufacturing Date required?
No. The inbound is a "plan", so Batch, Expiration Date and Manufacturing Date can all be left empty at this stage and filled in with the actual values when the goods are verified on arrival. When the product has "Validity Days" set, filling in either Expiration Date or Manufacturing Date is enough — the other is derived automatically.
▪ Are there file format or size limits?
Only .xlsx / .xls are supported, with a 10MB limit per file and one file at a time.
▪ What if a product / inventory type is not found?
It means a value in the template does not exist under that merchant. Use the table below to create the data first or correct the value, then import again:
| Object not found | What to do |
|---|---|
| Product | Check the Product SKU spelling; go to "Products" → "Product List" to confirm the product exists, and create it first if not |
| Inventory type | Go to "Merchant Settings" → "Merchant Inventory Types" to confirm the codes enabled for the merchant, then fill one in |
▪ What are the common causes of import failure?
They fall into four categories:
| Category | Common situations | What to do |
|---|---|---|
| Required field missing | Missing Product SKU, Inventory Type Code or Scheduled Inbound Quantity (whole file aborted); missing Expected Arrival Date (that one inbound fails); the very first data row of the file has no Inbound Number (that row is dropped; the status still shows completed with 0 failures) | Fill the Product SKU, Inventory Type Code and Scheduled Inbound Quantity on every line; Expected Arrival Date may only be empty for "Production"; each new inbound's first row needs an inbound number |
| Invalid format | Scheduled Inbound Quantity is not a number or is 0 or negative, Expected Arrival Date, Expiration Date or Manufacturing Date is not a recognizable date, or Inbound Type is a value the system does not recognize | Change the quantity to a number greater than 0; write dates as YYYY-MM-DD; pick the inbound type from the template dropdown or leave the cell empty |
| Data not found | Product / inventory type not found, or the merchant has no default warehouse | Create the matching data or correct the value first; set the merchant's default warehouse if missing — see the questions above |
| Data conflict | An inbound with the same name exists but "Override existing data" was not checked, or the inbound is no longer in "Pending" status and cannot be overwritten | To update, check override and confirm the inbound is still editable; to create, use a non-duplicate inbound number |
2.2 Important Notes
⚠️ Important reminders
- "Override existing data" is checked by default — remember to uncheck it when creating new inbounds, so you do not overwrite an existing inbound with the same name.
- Overwriting clears all original lines and replaces the whole batch with the template's lines, and it cannot be restored automatically afterward.
- Only inbounds in "Pending" status can be overwritten; inbounds that have started verification are not overwritten.
- The merchant must have a default warehouse set before importing, otherwise the whole batch fails.
💡 Tips:
- Select the merchant before downloading the template, so it includes that merchant's product custom-attribute columns.
- Create your products in "Products" → "Product List" before importing to greatly reduce "product not found" failed lines.
3. Related Features
| Feature | Description | Link |
|---|---|---|
| Inbound List | View, search, and manage inbounds; the import entry is also here | Go |
| New Inbound | Manually create a single inbound; faster than importing when there are few lines | Go |
| Inbound Details | View a single inbound's content and verification progress | Go |
| Product List | Confirm products exist before importing | Go |