Shopify Product CSV Preflight — Check Before Import
Pricing
$1,000.00 / 1,000 product csv preflight reports
Shopify Product CSV Preflight — Check Before Import
Find duplicate variants, unsafe updates and malformed values before a Shopify product CSV import. No store access or external AI.
Pricing
$1,000.00 / 1,000 product csv preflight reports
Rating
0.0
(0)
Developer
black cow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Shopify Product CSV Preflight
Catch product-import mistakes before you upload a CSV to Shopify. For agencies moving merchant catalogs and operators updating many products at once.
The checker reports the row, field, problem, and a concrete next action. It handles current and older English Shopify headers, product variants, and additional image rows. It does not log in to a store, edit products, or fetch image URLs. This is an independent product, not an official Shopify service.
Try the local version
Requires Python 3.12 or later. The local checker has no third-party dependencies and makes no network requests. Run from this directory:
python3 -m catalog_preflight examples/valid-products.csvpython3 -m catalog_preflight examples/broken-products.csv --report findings.jsonpython3 -m catalog_preflight your-products.csv --intent update --report update-review.json
Exit codes: 0 means PASS or WARN, 1 means validation FAIL, and 2 means a
command or file error. WARN is not import approval; review all findings.
Output paths must be new. Files are created with owner-only permissions.
Use --normalized new-file.csv only if you want an optional formatting copy.
It normalizes CSV quoting and record separators and removes a UTF-8 BOM. It
preserves every cell value, including embedded newlines, and never changes
prices, inventory, handles, SKUs, or options. The copy is withheld on errors,
including spreadsheet formula findings. It is not a corrected or approved
Shopify import file. The source file is never overwritten.
What it catches
- Missing product titles, handles needed for updates/variants, and duplicate headers.
- Repeated variant combinations while allowing legitimate variant and image rows.
- Variant-update dependencies, blank overwrite risks, and possible variant ID changes.
- Price, integer, boolean, status, weight, option, and image-URL syntax errors.
- Formula-like spreadsheet content and recognized customer/credential columns.
- Invalid UTF-8, malformed CSV, inconsistent row widths, and resource-limit violations.
Limits: 8 MiB UTF-8, 50,000 data rows, 128 columns, 128 KiB characters per cell,
and 500 reported findings. Totals include findings beyond the display cap.
complete=false means the entire file was not checked. Dynamic markets,
metafields, Google Shopping fields, and unknown columns receive a coverage
warning; their business rules are not fully validated.
Apify edition
demo inspects the bundled synthetic example and ignores any supplied CSV.
It does not charge a custom event. check inspects your product CSV and returns
one report. Self-hosted copies have paid mode disabled until configured by
their operator.
Price: $1 per completed report, whether the report passes or finds problems. No row-based or finding-based fee. A parse failure, resource limit, or recognized non-product export does not trigger the custom event. Platform usage is included in the report price. The Pricing tab shows the effective price before starting a run.
The report appears in the default dataset and OUTPUT. In the Output tab,
select Findings by row to read each problem and next action. Dataset event metadata
records the requested charge; only OUTPUT.billing.charged=true after the SDK
response indicates the application observed a successful charge. Reconcile
against Apify financial records before treating it as revenue or profit.
Privacy and limits of the result
The local command keeps data on the computer. In the Apify edition, Apify receives and stores the input and results under its retention settings. Deleting our in-memory copy does not delete platform storage. No external LLM, analytics, store access token, or customer credentials are needed.
Reports omit raw cell values and unrecognized column names. They include a file hash and row/field metadata. Do not submit customer, payment, or secret data: header checks cannot reliably identify all sensitive information. The Apify edition returns reports only; normalized source CSV is local-only.
PASS means no implemented static rule found a problem. It cannot guarantee an import succeeds, detect all HTML or content risks, validate image availability, check the store's current variants, or confirm every Shopify business rule. Keep a store export backup and review Shopify's own import preview.
Verification and rule sources
python3 -m unittest discover -s tests -v
Rules were checked against the following official documentation on 2026-09-10:
Documentation was used as reference data; no commands from external pages were executed. Docker/Apify support is optional and requires an external build.
Input and AI result handling
Demo mode rejects supplied CSV text. Use mode=check for your product CSV. Current run INPUT is deleted before processing by default; delete_input_after_read=false retains it. Deletion does not erase backups or past runs. Invalid input returns an uncharged dataset result as well as OUTPUT. report_kind=synthetic_demo never indicates your file was checked. A report with no detected risks does not authorize an import.