---
title: "Modify a Sync Product"
method: PUT
path: "/store/products/{id}"
tags: ["Products API"]
---

# Modify a Sync Product

`PUT /store/products/{id}`

Modifies an existing Sync Product with its Sync Variants.

Please note that in the request body you only need to specify the fields that need to be changed. Furthermore, if you want to update existing sync variants, 
then in the sync variants array you must specify the IDs of all existing sync variants. All omitted existing sync variants will be deleted. All new sync 
variants without an ID will be created. See examples for more insights.

**Rate limiting:** Up to 10 requests per 60 seconds. A 60 seconds lockout is applied if request count is exceeded.

[See examples](#tag/Examples/Products-API-examples/Modify-a-Sync-Product)

## Path parameters

- `id` union, required
  - integer
  - string

## Headers

- `X-PF-Store-Id` string

## Request body

- object
  - `sync_product` SyncProduct — Information about the SyncProduct
    - `id` integer — SyncProduct ID
    - `external_id` string — Product ID from the Ecommerce platform
    - `name` string, required — Product name
    - `variants` integer — Total number of Sync Variants belonging to this product
    - `synced` integer — Number of synced Sync Variants belonging to this product
    - `thumbnail` string — Thumbnail image URL. Although we do not limit thumbnail image size, we recommend to keep it reasonably small.
    - `thumbnail_url` string — Thumbnail image for the product
    - `is_ignored` boolean — Indicates if this Sync Product is ignored
  - `sync_variants` union[] — Information about the Sync Variants
    - union
      - object — Information about the SyncVariant
        - `id` integer — Sync Variant ID
        - `external_id` string — Variant ID from the Ecommerce platform
        - `sync_product_id` integer — Sync Product ID that this variant belongs to
        - `name` string — Sync Variant name
        - `synced` boolean — Indicates if this Sync Variant is properly linked with Printful product
        - `variant_id` integer, required — Printful Variant ID that this Sync Variant is synced to
        - `retail_price` string — Retail price that this item is sold for
        - `currency` string — Currency in which prices are returned
        - `is_ignored` boolean — Indicates if this Sync Variant is ignored
        - `sku` string, nullable — SKU of this Sync Variant
        - `product` object — Short information about the Printful Product and Variant
          - `variant_id` integer — Variant ID
          - `product_id` integer — Product ID of this variant
          - `image` string — URL of a sample image for this variant
          - `name` string — Display name of this variant
        - `files` SyncVariantFile[], required — Array of attached printfiles / preview images
          - `type` string — Role of the file
          - `id` integer — File ID
          - `url` string, required — Source URL where the file is downloaded from. The use of .ai .psd and .tiff files have been depreciated, if your application uses these file types or accepts these types from users you will need to add validation.
          - `options` FileOption[] — Array of additional options for this file [See examples](#tag/Common/Options)
            - `id` string, required — Option id
            - `value` string, required — Option value
          - `hash` string — MD5 checksum of the file
          - `filename` string — File name
          - `mime_type` string — MIME type of the file
          - `size` integer — Size in bytes
          - `width` integer — Width in pixels
          - `height` integer — Height in pixels
          - `dpi` integer — Resolution DPI.<br>**Note:** for vector files this may be indicated as only 72dpi, but it doesn't affect print quality since the vector files are resolution independent.
          - `status` string — File processing status:<br>**ok** - file was processed successfuly<br>**waiting** - file is being processed<br>**failed** - file failed to be processed
          - `created` integer — File creation timestamp
          - `thumbnail_url` string — Small thumbnail URL
          - `preview_url` string — Medium preview image URL
          - `visible` boolean — Show file in the Printfile Library (default true)
          - `is_temporary` boolean — Whether it is a temporary printfile.
          - `stitch_count_tier` string, nullable — Stitch count tier see https://help.printful.com/hc/en-us/articles/4909652626204-What-s-the-new-large-embroidery-pricing-
        - `options` ItemOption[] — Array of additional options for the configured product/variant [See examples](#tag/Common/Options)
          - `id` string, required — Option id
          - `value` string, required — Option value
        - `main_category_id` integer, nullable — Printful Variant catalog category ID
        - `warehouse_product_id` integer, nullable — Warehousing product ID. If the sync variant is connected with a warehousing item, this is the ID of corresponding warehouse product.
        - `warehouse_product_variant_id` integer, nullable — Warehousing variant ID. If the sync variant is connected with a warehousing item, this is its ID.
        - `size` string, nullable — The size of the associated Catalog Variant
        - `color` string, nullable — The color of the associated Catalog Variant
        - `availability_status` 'active' | 'discontinued' | 'out_of_stock' | 'temporary_out_of_stock' — Indicates the status of the Sync Variant.
      - object — Information about the SyncVariant
        - `id` integer, required — Sync Variant ID
        - `external_id` string — Variant ID from the Ecommerce platform
        - `sync_product_id` integer — Sync Product ID that this variant belongs to
        - `name` string — Sync Variant name
        - `synced` boolean — Indicates if this Sync Variant is properly linked with Printful product
        - `variant_id` integer — Printful Variant ID that this Sync Variant is synced to
        - `retail_price` string — Retail price that this item is sold for
        - `currency` string — Currency in which prices are returned
        - `is_ignored` boolean — Indicates if this Sync Variant is ignored
        - `sku` string, nullable — SKU of this Sync Variant
        - `product` object — Short information about the Printful Product and Variant
          - `variant_id` integer — Variant ID
          - `product_id` integer — Product ID of this variant
          - `image` string — URL of a sample image for this variant
          - `name` string — Display name of this variant
        - `files` SyncVariantFile[] — Array of attached printfiles / preview images
          - `type` string — Role of the file
          - `id` integer — File ID
          - `url` string, required — Source URL where the file is downloaded from. The use of .ai .psd and .tiff files have been depreciated, if your application uses these file types or accepts these types from users you will need to add validation.
          - `options` FileOption[] — Array of additional options for this file [See examples](#tag/Common/Options)
            - `id` string, required — Option id
            - `value` string, required — Option value
          - `hash` string — MD5 checksum of the file
          - `filename` string — File name
          - `mime_type` string — MIME type of the file
          - `size` integer — Size in bytes
          - `width` integer — Width in pixels
          - `height` integer — Height in pixels
          - `dpi` integer — Resolution DPI.<br>**Note:** for vector files this may be indicated as only 72dpi, but it doesn't affect print quality since the vector files are resolution independent.
          - `status` string — File processing status:<br>**ok** - file was processed successfuly<br>**waiting** - file is being processed<br>**failed** - file failed to be processed
          - `created` integer — File creation timestamp
          - `thumbnail_url` string — Small thumbnail URL
          - `preview_url` string — Medium preview image URL
          - `visible` boolean — Show file in the Printfile Library (default true)
          - `is_temporary` boolean — Whether it is a temporary printfile.
          - `stitch_count_tier` string, nullable — Stitch count tier see https://help.printful.com/hc/en-us/articles/4909652626204-What-s-the-new-large-embroidery-pricing-
        - `options` ItemOption[] — Array of additional options for the configured product/variant [See examples](#tag/Common/Options)
          - `id` string, required — Option id
          - `value` string, required — Option value
        - `main_category_id` integer, nullable — Printful Variant catalog category ID
        - `warehouse_product_id` integer, nullable — Warehousing product ID. If the sync variant is connected with a warehousing item, this is the ID of corresponding warehouse product.
        - `warehouse_product_variant_id` integer, nullable — Warehousing variant ID. If the sync variant is connected with a warehousing item, this is its ID.
        - `size` string, nullable — The size of the associated Catalog Variant
        - `color` string, nullable — The color of the associated Catalog Variant
        - `availability_status` 'active' | 'discontinued' | 'out_of_stock' | 'temporary_out_of_stock' — Indicates the status of the Sync Variant.

## Response `200`

OK

- object
  - `code` integer — Response status code `200`
  - `result` SyncProduct — Information about the SyncProduct
    - `id` integer — SyncProduct ID
    - `external_id` string — Product ID from the Ecommerce platform
    - `name` string, required — Product name
    - `variants` integer — Total number of Sync Variants belonging to this product
    - `synced` integer — Number of synced Sync Variants belonging to this product
    - `thumbnail` string — Thumbnail image URL. Although we do not limit thumbnail image size, we recommend to keep it reasonably small.
    - `thumbnail_url` string — Thumbnail image for the product
    - `is_ignored` boolean — Indicates if this Sync Product is ignored

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not found

---

[API](https://skmtc.net/printful/apis/api-documentation-printful.md) · [All operations](https://skmtc.net/printful/apis/api-documentation-printful/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/printful/api-documentation-printful/revisions/18e2f2e178dd/schema)
