34 "summary": "A Catalog V3 variant is created inside its product's write (product.variantsInfo.variants[]); there is no standalone variant import. Never map a source variation to its own import task: map it into the stores/product row, and let the product task produce the variant identities (createStoresProduct operationContracts.childOutputs)."
39 "summary": "A target variant ID is usable by a dependent (an order line's catalogReference.options.variantId) only from the product's verified write receipt, where product-import.js matched each source variant to exactly one target variant by its source-fixed SKU/choice projection. Response order is never an identity; a missing or ambiguous match stays a gap."
40 },
41 {
42 "code": "stable-variant-source-key",
43 "severity": "blocker",
44 "summary": "A variant expectation's sourceKey must be the source variation's own stable ID (WooCommerce product_variation id, Shopify variant id), so a dependent order line can name it and a catch-up pass finds the same key. A product with no source variations uses <productSourceKey>#default for its single default variant. Never derive the key from an array position."
45 }
46 ],
47 "mappingGuidance": [
48 "Not a write target. Source variations are written through their parent stores/product row; this entity exists so dependents can declare and gate a per-record reference to a variant ID.",
49 "ecom/order line items reference it at lineItems[].catalogReference.options.variantId, beside catalogItemId for the same product (Catalog V3 eCommerce integration: always include the variantId)."