---
title: "Create / update a product"
method: POST
path: "/stores/{storeId}/products"
tags: ["Products"]
---

# Create / update a product

`POST /stores/{storeId}/products`

## Request

- Base URL: `https://api.helloextend.com`
- URL: `https://api.helloextend.com/stores/{storeId}/products`
- Auth: API key in header `X-Extend-Access-Token`

Upserts by referenceId. Omit batch for a single object. Supply ?batch=true and an array for batch upserts; any non-empty batch value enables batch mode, including false. Use batches of about 100 products. Inspect errors and retryable even when the response is 201. Duplicate referenceIds in one batch return 422. Requires one of `stores:products:create`, `stores:products:full`, for the store account.

## Query parameters

- `batch` string

## Request body

- union
  - object
    - `brand` string: The Product Brand, Manufacturer or Vendor.
    - `category` string: Product category. Can be any value and may be used by Extend to map the product to warranty plans.
    - `subCategories` unknown[]: An array of additional product categories.
      - unknown
    - `description` string: The product description.
    - `modelNumber` string
    - `itemDimensions` object
      - `height` number
      - `width` number
      - `length` number
      - `unit` 'inch' | 'centimeter' | 'millimeter' | 'foot'
    - `itemWeight` object
      - `value` number
      - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram'
    - `condition` 'new' | 'used' | 'refurbished'
    - `imageUrl` string: A url pointing to the primary image for the product.
    - `price` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `title` string, required: Product name.
    - `referenceId` string, required: Unique product identifier, such as a SKU or variant ID. URL-encode it when using an item endpoint.
    - `parentReferenceId` string: Parent product referenceId for a variant.
    - `reimbursementAmount` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `identifiers` object
      - `asin` string
      - `barcode` string
      - `gtin` string
      - `isbn` string
      - `sku` string
      - `upc` string
    - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
      - `labor` number
      - `parts` number
      - `url` string
    - `shippable` boolean: Whether the item is physically shipped. Defaults to true. Digital goods and services are ineligible for shipping protection.
    - `alternateLanguages` object
      - `fr-CA` object
        - `title` string
    - `unitCost` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `enabled` boolean: Accepted for compatibility, but ignored in merchant requests.
    - `plans` string[]: Accepted for compatibility, but ignored in merchant requests.
    - `warrantyStatus` 'pending' | 'warrantable' | 'non-warrantable' | 'review_required': Accepted for compatibility, but ignored in merchant requests.
    - `shipEnabled` boolean: Indicates whether or not the product is enabled for Extend shipping protection coverage. Differs from the shippable property in that it could be a product that is physically shipped but the product type or category is not eligible for Extend shipping protection. Set by Extend.
    - `settings` object: Accepted for compatibility, but ignored in merchant requests.
      - `partialReplacementEligible` boolean
      - `isBundle` boolean
      - `isProductReturn` boolean
      - `servicingLocationId` string, nullable: Null clears the association.
    - `extendProductCategoryId` string: Accepted for compatibility, but ignored in merchant requests.
    - `extendProductCategory` string: Accepted for compatibility, but ignored in merchant requests.
    - `resellable` boolean: Accepted for compatibility, but ignored in merchant requests.
    - `marginPercentage` number: Accepted for compatibility, but ignored in merchant requests.
    - `oemStatus` 'INELIGIBLE' | 'MAPPED' | 'NEEDS_REVIEW': Accepted for compatibility, but ignored in merchant requests.
    - `oemPolicyId` string: Accepted for compatibility, but ignored in merchant requests.
    - `oemCoverageId` string: Accepted for compatibility, but ignored in merchant requests.
    - `oemEnabled` boolean: Accepted for compatibility, but ignored in merchant requests.
  - object[]
    - `brand` string: The Product Brand, Manufacturer or Vendor.
    - `category` string: Product category. Can be any value and may be used by Extend to map the product to warranty plans.
    - `subCategories` unknown[]: An array of additional product categories.
      - unknown
    - `description` string: The product description.
    - `modelNumber` string
    - `itemDimensions` object
      - `height` number
      - `width` number
      - `length` number
      - `unit` 'inch' | 'centimeter' | 'millimeter' | 'foot'
    - `itemWeight` object
      - `value` number
      - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram'
    - `condition` 'new' | 'used' | 'refurbished'
    - `imageUrl` string: A url pointing to the primary image for the product.
    - `price` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `title` string, required: Product name.
    - `referenceId` string, required: Unique product identifier, such as a SKU or variant ID. URL-encode it when using an item endpoint.
    - `parentReferenceId` string: Parent product referenceId for a variant.
    - `reimbursementAmount` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `identifiers` object
      - `asin` string
      - `barcode` string
      - `gtin` string
      - `isbn` string
      - `sku` string
      - `upc` string
    - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
      - `labor` number
      - `parts` number
      - `url` string
    - `shippable` boolean: Whether the item is physically shipped. Defaults to true. Digital goods and services are ineligible for shipping protection.
    - `alternateLanguages` object
      - `fr-CA` object
        - `title` string
    - `unitCost` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `enabled` boolean: Accepted for compatibility, but ignored in merchant requests.
    - `plans` string[]: Accepted for compatibility, but ignored in merchant requests.
    - `warrantyStatus` 'pending' | 'warrantable' | 'non-warrantable' | 'review_required': Accepted for compatibility, but ignored in merchant requests.
    - `shipEnabled` boolean: Indicates whether or not the product is enabled for Extend shipping protection coverage. Differs from the shippable property in that it could be a product that is physically shipped but the product type or category is not eligible for Extend shipping protection. Set by Extend.
    - `settings` object: Accepted for compatibility, but ignored in merchant requests.
      - `partialReplacementEligible` boolean
      - `isBundle` boolean
      - `isProductReturn` boolean
      - `servicingLocationId` string, nullable: Null clears the association.
    - `extendProductCategoryId` string: Accepted for compatibility, but ignored in merchant requests.
    - `extendProductCategory` string: Accepted for compatibility, but ignored in merchant requests.
    - `resellable` boolean: Accepted for compatibility, but ignored in merchant requests.
    - `marginPercentage` number: Accepted for compatibility, but ignored in merchant requests.
    - `oemStatus` 'INELIGIBLE' | 'MAPPED' | 'NEEDS_REVIEW': Accepted for compatibility, but ignored in merchant requests.
    - `oemPolicyId` string: Accepted for compatibility, but ignored in merchant requests.
    - `oemCoverageId` string: Accepted for compatibility, but ignored in merchant requests.
    - `oemEnabled` boolean: Accepted for compatibility, but ignored in merchant requests.

## Response `201`

Success

- union
  - object: Merchant product at wire version 2022-02-01. Optional fields depend on stored data.
    - `brand` string: The Product Brand, Manufacturer or Vendor.
    - `category` string: Product category. Can be any value and may be used by Extend to map the product to warranty plans.
    - `subCategories` unknown[]: An array of additional product categories.
      - unknown
    - `description` string: The product description.
    - `enabled` boolean
    - `modelNumber` string
    - `itemDimensions` object
      - `height` number
      - `width` number
      - `length` number
      - `unit` 'inch' | 'centimeter' | 'millimeter' | 'foot'
    - `itemWeight` object
      - `value` number
      - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram'
    - `condition` 'new' | 'used' | 'refurbished'
    - `imageUrl` string: A url pointing to the primary image for the product.
    - `price` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `title` string, required: Product name.
    - `referenceId` string, required: Unique product identifier, such as a SKU or variant ID. URL-encode it when using an item endpoint.
    - `parentReferenceId` string: Parent product referenceId for a variant.
    - `reimbursementAmount` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `identifiers` object
      - `asin` string
      - `barcode` string
      - `gtin` string
      - `isbn` string
      - `sku` string
      - `upc` string
    - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
      - `labor` number
      - `parts` number
      - `url` string
    - `plans` string[]
    - `warrantyStatus` 'pending' | 'warrantable' | 'non-warrantable' | 'review_required'
    - `shipEnabled` boolean: Indicates whether or not the product is enabled for Extend shipping protection coverage. Differs from the shippable property in that it could be a product that is physically shipped but the product type or category is not eligible for Extend shipping protection. Set by Extend.
    - `shippable` boolean: Whether the item is physically shipped. Defaults to true. Digital goods and services are ineligible for shipping protection.
    - `settings` object
      - `partialReplacementEligible` boolean
      - `isBundle` boolean
      - `isProductReturn` boolean
      - `servicingLocationId` string, nullable: Null clears the association.
    - `alternateLanguages` object
      - `fr-CA` object
        - `title` string
    - `unitCost` object
      - `amount` number, required
      - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
      - `formattedAmount` string: Optional display formatting.
    - `overrides` object
      - `brand` string
      - `condition` 'new' | 'used' | 'refurbished'
      - `mfrWarranty` object
        - `labor` number
        - `parts` number
        - `url` string
      - `reimbursementAmount` object
        - `amount` number, required
        - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
        - `formattedAmount` string: Optional display formatting.
      - `subcategory` string
    - `storeId` string, required
    - `createdAt` number: Unix timestamp in milliseconds.
    - `updatedAt` number: Unix timestamp in milliseconds.
    - `deletedAt` number, nullable
    - `metadata` object
    - `updatedBy` object
      - `actor` string
      - `email` string: On reads, returned only with stores:products:view:sensitive. Write responses may include the actor email.
    - `oemStatus` 'INELIGIBLE' | 'MAPPED' | 'NEEDS_REVIEW'
    - `oemPolicyId` string
    - `oemCoverageId` string
    - `planCategoryId` string
    - `planCategoryName` string
    - `subproducts` object[]: Bundle subproducts with quantity and product details.
      - `referenceId` string
      - `title` string
      - `quantity` number
    - `status` 'new' | 'updated' | 'active' | 'inactive': Optional legacy product status, distinct from warrantyStatus.
  - object
    - `added` object[], required
      - `brand` string: The Product Brand, Manufacturer or Vendor.
      - `category` string: Product category. Can be any value and may be used by Extend to map the product to warranty plans.
      - `subCategories` unknown[]: An array of additional product categories.
        - unknown
      - `description` string: The product description.
      - `enabled` boolean
      - `modelNumber` string
      - `itemDimensions` object
        - `height` number
        - `width` number
        - `length` number
        - `unit` 'inch' | 'centimeter' | 'millimeter' | 'foot'
      - `itemWeight` object
        - `value` number
        - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram'
      - `condition` 'new' | 'used' | 'refurbished'
      - `imageUrl` string: A url pointing to the primary image for the product.
      - `price` object
        - `amount` number, required
        - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
        - `formattedAmount` string: Optional display formatting.
      - `title` string, required: Product name.
      - `referenceId` string, required: Unique product identifier, such as a SKU or variant ID. URL-encode it when using an item endpoint.
      - `parentReferenceId` string: Parent product referenceId for a variant.
      - `reimbursementAmount` object
        - `amount` number, required
        - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
        - `formattedAmount` string: Optional display formatting.
      - `identifiers` object
        - `asin` string
        - `barcode` string
        - `gtin` string
        - `isbn` string
        - `sku` string
        - `upc` string
      - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
        - `labor` number
        - `parts` number
        - `url` string
      - `plans` string[]
      - `warrantyStatus` 'pending' | 'warrantable' | 'non-warrantable' | 'review_required'
      - `shipEnabled` boolean: Indicates whether or not the product is enabled for Extend shipping protection coverage. Differs from the shippable property in that it could be a product that is physically shipped but the product type or category is not eligible for Extend shipping protection. Set by Extend.
      - `shippable` boolean: Whether the item is physically shipped. Defaults to true. Digital goods and services are ineligible for shipping protection.
      - `settings` object
        - `partialReplacementEligible` boolean
        - `isBundle` boolean
        - `isProductReturn` boolean
        - `servicingLocationId` string, nullable: Null clears the association.
      - `alternateLanguages` object
        - `fr-CA` object
          - `title` string
      - `unitCost` object
        - `amount` number, required
        - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
        - `formattedAmount` string: Optional display formatting.
      - `overrides` object
        - `brand` string
        - `condition` 'new' | 'used' | 'refurbished'
        - `mfrWarranty` object
          - `labor` number
          - `parts` number
          - `url` string
        - `reimbursementAmount` object
          - `amount` number, required
          - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
          - `formattedAmount` string: Optional display formatting.
        - `subcategory` string
      - `storeId` string, required
      - `createdAt` number: Unix timestamp in milliseconds.
      - `updatedAt` number: Unix timestamp in milliseconds.
      - `deletedAt` number, nullable
      - `metadata` object
      - `updatedBy` object
        - `actor` string
        - `email` string: On reads, returned only with stores:products:view:sensitive. Write responses may include the actor email.
      - `oemStatus` 'INELIGIBLE' | 'MAPPED' | 'NEEDS_REVIEW'
      - `oemPolicyId` string
      - `oemCoverageId` string
      - `planCategoryId` string
      - `planCategoryName` string
      - `subproducts` object[]: Bundle subproducts with quantity and product details.
        - `referenceId` string
        - `title` string
        - `quantity` number
      - `status` 'new' | 'updated' | 'active' | 'inactive': Optional legacy product status, distinct from warrantyStatus.
    - `updated` object[], required
      - `brand` string: The Product Brand, Manufacturer or Vendor.
      - `category` string: Product category. Can be any value and may be used by Extend to map the product to warranty plans.
      - `subCategories` unknown[]: An array of additional product categories.
        - unknown
      - `description` string: The product description.
      - `enabled` boolean
      - `modelNumber` string
      - `itemDimensions` object
        - `height` number
        - `width` number
        - `length` number
        - `unit` 'inch' | 'centimeter' | 'millimeter' | 'foot'
      - `itemWeight` object
        - `value` number
        - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram'
      - `condition` 'new' | 'used' | 'refurbished'
      - `imageUrl` string: A url pointing to the primary image for the product.
      - `price` object
        - `amount` number, required
        - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
        - `formattedAmount` string: Optional display formatting.
      - `title` string, required: Product name.
      - `referenceId` string, required: Unique product identifier, such as a SKU or variant ID. URL-encode it when using an item endpoint.
      - `parentReferenceId` string: Parent product referenceId for a variant.
      - `reimbursementAmount` object
        - `amount` number, required
        - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
        - `formattedAmount` string: Optional display formatting.
      - `identifiers` object
        - `asin` string
        - `barcode` string
        - `gtin` string
        - `isbn` string
        - `sku` string
        - `upc` string
      - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
        - `labor` number
        - `parts` number
        - `url` string
      - `plans` string[]
      - `warrantyStatus` 'pending' | 'warrantable' | 'non-warrantable' | 'review_required'
      - `shipEnabled` boolean: Indicates whether or not the product is enabled for Extend shipping protection coverage. Differs from the shippable property in that it could be a product that is physically shipped but the product type or category is not eligible for Extend shipping protection. Set by Extend.
      - `shippable` boolean: Whether the item is physically shipped. Defaults to true. Digital goods and services are ineligible for shipping protection.
      - `settings` object
        - `partialReplacementEligible` boolean
        - `isBundle` boolean
        - `isProductReturn` boolean
        - `servicingLocationId` string, nullable: Null clears the association.
      - `alternateLanguages` object
        - `fr-CA` object
          - `title` string
      - `unitCost` object
        - `amount` number, required
        - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
        - `formattedAmount` string: Optional display formatting.
      - `overrides` object
        - `brand` string
        - `condition` 'new' | 'used' | 'refurbished'
        - `mfrWarranty` object
          - `labor` number
          - `parts` number
          - `url` string
        - `reimbursementAmount` object
          - `amount` number, required
          - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
          - `formattedAmount` string: Optional display formatting.
        - `subcategory` string
      - `storeId` string, required
      - `createdAt` number: Unix timestamp in milliseconds.
      - `updatedAt` number: Unix timestamp in milliseconds.
      - `deletedAt` number, nullable
      - `metadata` object
      - `updatedBy` object
        - `actor` string
        - `email` string: On reads, returned only with stores:products:view:sensitive. Write responses may include the actor email.
      - `oemStatus` 'INELIGIBLE' | 'MAPPED' | 'NEEDS_REVIEW'
      - `oemPolicyId` string
      - `oemCoverageId` string
      - `planCategoryId` string
      - `planCategoryName` string
      - `subproducts` object[]: Bundle subproducts with quantity and product details.
        - `referenceId` string
        - `title` string
        - `quantity` number
      - `status` 'new' | 'updated' | 'active' | 'inactive': Optional legacy product status, distinct from warrantyStatus.
    - `conflicts` string[], required
    - `errors` object[], required
      - `product` object, required: Merchant product at wire version 2022-02-01. Optional fields depend on stored data.
        - `brand` string: The Product Brand, Manufacturer or Vendor.
        - `category` string: Product category. Can be any value and may be used by Extend to map the product to warranty plans.
        - `subCategories` unknown[]: An array of additional product categories.
          - unknown
        - `description` string: The product description.
        - `enabled` boolean
        - `modelNumber` string
        - `itemDimensions` object
          - `height` number
          - `width` number
          - `length` number
          - `unit` 'inch' | 'centimeter' | 'millimeter' | 'foot'
        - `itemWeight` object
          - `value` number
          - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram'
        - `condition` 'new' | 'used' | 'refurbished'
        - `imageUrl` string: A url pointing to the primary image for the product.
        - `price` object
          - `amount` number, required
          - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
          - `formattedAmount` string: Optional display formatting.
        - `title` string, required: Product name.
        - `referenceId` string, required: Unique product identifier, such as a SKU or variant ID. URL-encode it when using an item endpoint.
        - `parentReferenceId` string: Parent product referenceId for a variant.
        - `reimbursementAmount` object
          - `amount` number, required
          - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
          - `formattedAmount` string: Optional display formatting.
        - `identifiers` object
          - `asin` string
          - `barcode` string
          - `gtin` string
          - `isbn` string
          - `sku` string
          - `upc` string
        - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
          - `labor` number
          - `parts` number
          - `url` string
        - `plans` string[]
        - `warrantyStatus` 'pending' | 'warrantable' | 'non-warrantable' | 'review_required'
        - `shipEnabled` boolean: Indicates whether or not the product is enabled for Extend shipping protection coverage. Differs from the shippable property in that it could be a product that is physically shipped but the product type or category is not eligible for Extend shipping protection. Set by Extend.
        - `shippable` boolean: Whether the item is physically shipped. Defaults to true. Digital goods and services are ineligible for shipping protection.
        - `settings` object
          - `partialReplacementEligible` boolean
          - `isBundle` boolean
          - `isProductReturn` boolean
          - `servicingLocationId` string, nullable: Null clears the association.
        - `alternateLanguages` object
          - `fr-CA` object
            - `title` string
        - `unitCost` object
          - `amount` number, required
          - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
          - `formattedAmount` string: Optional display formatting.
        - `overrides` object
          - `brand` string
          - `condition` 'new' | 'used' | 'refurbished'
          - `mfrWarranty` object
            - `labor` number
            - `parts` number
            - `url` string
          - `reimbursementAmount` object
            - `amount` number, required
            - `currencyCode` 'AUD' | 'CAD' | 'EUR' | 'GBP' | 'NZD' | 'USD'
            - `formattedAmount` string: Optional display formatting.
          - `subcategory` string
        - `storeId` string, required
        - `createdAt` number: Unix timestamp in milliseconds.
        - `updatedAt` number: Unix timestamp in milliseconds.
        - `deletedAt` number, nullable
        - `metadata` object
        - `updatedBy` object
          - `actor` string
          - `email` string: On reads, returned only with stores:products:view:sensitive. Write responses may include the actor email.
        - `oemStatus` 'INELIGIBLE' | 'MAPPED' | 'NEEDS_REVIEW'
        - `oemPolicyId` string
        - `oemCoverageId` string
        - `planCategoryId` string
        - `planCategoryName` string
        - `subproducts` object[]: Bundle subproducts with quantity and product details.
          - `referenceId` string
          - `title` string
          - `quantity` number
        - `status` 'new' | 'updated' | 'active' | 'inactive': Optional legacy product status, distinct from warrantyStatus.
      - `reason` string, required
    - `retryable` object[], required: Products to retry. Amount fields use numeric model values.
      - `brand` string: The Product Brand, Manufacturer or Vendor.
      - `category` string: Product category. Can be any value and may be used by Extend to map the product to warranty plans.
      - `subCategories` unknown[]: An array of additional product categories.
        - unknown
      - `description` string: The product description.
      - `enabled` boolean
      - `modelNumber` string
      - `itemDimensions` object
        - `height` number
        - `width` number
        - `length` number
        - `unit` 'inch' | 'centimeter' | 'millimeter' | 'foot'
      - `itemWeight` object
        - `value` number
        - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram'
      - `condition` 'new' | 'used' | 'refurbished'
      - `imageUrl` string: A url pointing to the primary image for the product.
      - `price` number: Amount in the store currency minor unit. Retryable items use model amounts, not money objects.
      - `title` string: Product name.
      - `referenceId` string: Unique product identifier, such as a SKU or variant ID. URL-encode it when using an item endpoint.
      - `parentReferenceId` string: Parent product referenceId for a variant.
      - `reimbursementAmount` number: Amount in the store currency minor unit. Retryable items use model amounts, not money objects.
      - `identifiers` object
        - `asin` string
        - `barcode` string
        - `gtin` string
        - `isbn` string
        - `sku` string
        - `upc` string
      - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
        - `labor` number
        - `parts` number
        - `url` string
      - `plans` string[]
      - `warrantyStatus` 'pending' | 'warrantable' | 'non-warrantable' | 'review_required'
      - `shipEnabled` boolean: Indicates whether or not the product is enabled for Extend shipping protection coverage. Differs from the shippable property in that it could be a product that is physically shipped but the product type or category is not eligible for Extend shipping protection. Set by Extend.
      - `shippable` boolean: Whether the item is physically shipped. Defaults to true. Digital goods and services are ineligible for shipping protection.
      - `settings` object
        - `partialReplacementEligible` boolean
        - `isBundle` boolean
        - `isProductReturn` boolean
        - `servicingLocationId` string, nullable: Null clears the association.
      - `alternateLanguages` object
        - `fr-CA` object
          - `title` string
      - `unitCost` number: Amount in the store currency minor unit. Retryable items use model amounts, not money objects.
      - `overrides` object
        - `brand` string
        - `condition` string
        - `mfrWarranty` object: Optional manufacturer warranty details used for warranty matching.
          - `labor` number
          - `parts` number
          - `url` string
        - `reimbursementAmount` number
        - `subcategory` string
      - `storeId` string
      - `createdAt` number: Unix timestamp in milliseconds.
      - `updatedAt` number: Unix timestamp in milliseconds.
      - `deletedAt` number, nullable
      - `metadata` object
      - `updatedBy` object
        - `actor` string
        - `email` string: On reads, returned only with stores:products:view:sensitive. Write responses may include the actor email.
      - `oemStatus` 'INELIGIBLE' | 'MAPPED' | 'NEEDS_REVIEW'
      - `oemPolicyId` string
      - `oemCoverageId` string
      - `planCategoryId` string
      - `planCategoryName` string

## Other responses

- `400`: The request to the endpoint was invalid
- `401`: Unauthorized
- `403`: Forbidden
- `404`: The specified resource was not found
- `422`: Unprocessable entity
- `500`: Internal server error

---

[API](https://skmtc.dev/extend/apis/products-api.md) - [All operations](https://skmtc.dev/extend/apis/products-api/llms.txt) - [OpenAPI document](https://skmtc.dev/extend/apis/products-api/revisions/4f4ddfea2750?raw)
