PRACTICAL GUIDE · REVIEWED 21 OCT 2026
Find why WooCommerce failed, skipped, or changed the row.
Start with the import log and mapping screen. Then separate CSV structure from product rules, extensions, and server limits before retrying the full catalog.
FAST TRIAGE
Import complete, but products are not showing?
WooCommerce can finish an import while skipping individual rows. A duplicate identifier, unmatched update, unexpected status, or variation relationship may be the real problem even when the CSV opens normally in a spreadsheet.
Start with the failed or skipped-row report. Preserve the source, identify whether the job creates or updates products, and correct one class of failure before testing a small copy.
Check the Products list as well as the storefront. If the products exist in the admin but are not visible to shoppers, inspect their Published status: the CSV can set products to private, draft, or pending review. If the products are absent from the admin too, compare the skipped-row log with the import mode, IDs, SKUs, and column mapping. A local file scan cannot confirm either store-side outcome.
If the report names an existing SKU or skipped product, use the focused duplicate-SKU decision guide to separate file duplicates from store matches.
REPRODUCIBLE EXAMPLE · CHECKED 21 OCT 2026
Two rows: duplicate SKU and private products.
Synthetic demonstration data, not a customer case. Download both files, choose WooCommerce in the free local scanner, and compare the results. These files were checked with Data Preflight’s byte decoder, CSV parser, and platform rules. They have not been imported into a live store.
Before: reproduce the failure
Both rows use DP-DEMO-CUP. Expected local result: two rows, six columns, review, one DUPLICATE_SKU warning.
Both also have Published=0. That is a valid private status, so it is not flagged as an invalid value. A successful import can still leave these products hidden from shoppers.
After: check the intended correction
The two distinct demo products now have different SKUs. Published=1 expresses the intended published status.
Expected local result: two rows, six columns, clear, zero findings. Changing SKUs is appropriate here only because these are two different new demo products; it is not a safe default for an update.
Download corrected CSVBefore trying this in WooCommerce
Use a staging store and its current product export. Confirm whether each row creates or updates a product; review ID/SKU matches and column mapping. Test a few representative rows, then inspect the import report, Products list, and storefront status. A local clear result cannot confirm existing store matches or storefront visibility. The demo files omit images and variations and do not test those workflows.
SYMPTOM → CAUSE → ACTION
Eight WooCommerce import problems to check first.
Garbled text or rejected file
The file is not a valid UTF-8 CSV, or a spreadsheet editor changed its encoding while saving.
Do this: Export a fresh CSV in UTF-8. Compare multilingual product names with the source instead of repairing corrupted characters by guesswork.
Columns shift after a comma or line break
A value containing a comma, quote, or line break was not encoded as one CSV field, so later values land under the wrong headings.
Do this: Inspect the first failing row and re-export from the source editor. Values that contain commas need correct CSV quoting.
A column is ignored or mapped incorrectly
The heading does not match the core schema, was mapped to the wrong product field, or belongs to an extension.
Do this: Review every field on the Column mapping screen. WooCommerce ignores unrecognized columns by default; custom metadata normally uses a meta: prefix.
Product already exists—or update row is skipped
The import mode does not match the intent. Existing IDs or SKUs can collide on a create import, while unmatched identifiers are skipped during an update.
Do this: Decide create versus update first. Use stable IDs or SKUs, remove duplicates, and select Update existing products only after making a backup.
Product appears with the wrong status
The Published value maps to a different status than expected, or contains an unsupported label such as “publish”.
Do this: Use 1 or true for published, 0 for private, -1 or false for draft, and 2 for pending review.
Price or stock is missing or malformed
A number contains currency text, unexpected formatting, or a sale price conflicts with the intended regular price. Variation stock may need to inherit from its parent.
Do this: Use plain numbers, review sale and regular prices together, and use parent only for a variation that should inherit stock settings.
Image was not imported
The URL is incomplete, requires authentication, returns a redirect page, or is not directly reachable by the store server.
Do this: Use a direct public HTTP(S) image URL or an existing Media Library filename. Test the URL without a signed-in session.
Variation is skipped or detached
The variation has no matching Parent, lacks a unique identifier, or uses attribute names or values that do not agree with the variable product.
Do this: Give each variation a unique SKU, match Parent to the parent SKU or id:123, and keep attribute spelling consistent. Follow the version-appropriate parent-first workflow.
TOOL BOUNDARY
What the free check can—and cannot—confirm.
- UTF-8, delimiter, quotes, and row width
- Missing, empty, or duplicate headings
- ID, SKU, or Name presence and duplicate SKUs
- Common Type, Published, price, stock, image URL, and variation-parent risks
- Final column mapping and extension-specific fields
- Existing products, IDs, SKUs, taxonomies, and attributes in this store
- Whether the server can retrieve a remote image
- Plugin or theme conflicts, upload limits, memory, and processing time
A clear preflight result reduces common file risks; it cannot reproduce the state, extensions, permissions, or resource limits of a particular WordPress site.
SAFE IMPORT WORKFLOW
Five steps before a production retry.
- 01Back up and export
Keep the database backup and current product export outside the working folder.
- 02Capture the failure
Save the import log, skipped rows, mode, and first failing record before editing.
- 03Preflight the file
Fix encoding and structural blockers before field values.
- 04Review mapping and mode
Confirm every imported column and whether the run creates or updates products.
- 05Test on staging
Use a parent, a few variations, and images; inspect the result before scaling up.
中文速查
导入“完成”,也可能有商品被跳过。
先保存数据库备份、当前商品导出和失败日志,再确认这次操作是新建还是更新。 优先检查 UTF-8、分隔符、引号、列数、字段映射,以及 ID / SKU 是否重复或无法匹配。
变体要有唯一 SKU,并通过 Parent 对应父商品;图片必须能被服务器直接访问。 Data Preflight 的免费检查在浏览器本地运行,不上传 CSV,但它无法判断站点里的 插件冲突、已有商品状态、服务器限制或最终字段映射。
PRIMARY SOURCES
Verify the workflow against current WooCommerce sources.
STILL BLOCKED?
Turn the failing batch into a bounded repair.
One CSV/XLSX, up to 1,000 rows, and one agreed repair rule may fit the $19 Quick Fix. If the cause is unclear or several risks are involved, start with the $49 review instead. Send a non-sensitive description first; no file or payment is needed to ask.