A product feed is ready for review when each record identifies one real offer and supplies the facts the selected destination requires.
Passing a CSV parser is a low bar. The file still needs stable product identity, readable titles and descriptions, accurate price and stock, useful images, option relationships, seller context, supported regions, and links that open the matching product.
Readiness is target-specific. A clean source catalog can be converted into several outputs, but each destination can require different fields and validation. One successful conversion does not prove the store or every platform path is ready.
Start with one canonical product model
Source files rarely use the same column names or structures. One export may use Handle, another Product ID, and another Merchant SKU. Normalize those sources into a consistent internal product record before mapping them to a destination.
The normalized record should retain source provenance. Keep the source system, source field, source record ID, extraction time, source-owned update time when available, and whether any inference was applied.
- Stable product and option IDs
- Title, description, category, and brand
- Product page and image links
- Price, currency, stock, and condition
- Product codes and option attributes
- Seller, policy, locale, and region context
Treat missing and invalid as different problems
A missing GTIN and an invalid GTIN do not mean the same thing. A blank optional category and a malformed required price do not deserve the same severity. A useful feed check identifies the field, affected product, source record, rule, and correction path.
Do not silently fill gaps. An inferred category, generated option ID, or normalized stock value should be visible for merchant review. Some values, including platform eligibility flags and unsupported product claims, must never be inferred.
A converter may rename, format, flatten, or map supported values. It should not create commercial facts the merchant did not provide.
Keep every offer addressable
If a product has options, flatten the export carefully so each purchasable option retains its identity, price, stock, image, and attributes. Preserve the parent relationship separately. Do not pass a parent record while dropping the child offers shoppers can actually buy.
The product link should open the matching product and, where supported, the matching option. Broken links, generic collection links, and pages that select a different variant weaken the record even when the columns are complete.
Validate for one destination at a time
Choose the destination before declaring the file ready. An OpenAI-oriented product file, Google Merchant Center record, Stripe catalog mapping, and Shopify internal catalog review have different contracts and evidence limits.
Run target-specific validation after normalization. Report valid and invalid records, target failures, inferred values, and checks that could not be performed. Remote media reachability, account status, approval, activation, and transaction behavior remain separate unless they were explicitly tested.
Plan for the next update
A feed is operational only if price, stock, option, and product changes can be published reliably. Document which system owns each field, how often the export runs, what happens to deleted products, and how failures are surfaced.
Test a representative sample first, then expand. Keep the original source, normalized records, validation result, and output so later changes can be compared without guessing.
