• price is in major units (e.g. 29.99); status is DRAFT | ACTIVE | ARCHIVED.
  • Per-item failures are collected in result.errors — the job still succeeds for the rest.
  • A storefront resync is scheduled automatically after a successful import.
Scope: catalog:write. For a single product use POST /products (dtc_upsert_product).