Publish and convert a global product to local products in one or multiple shops in supported markets. After publishing, the product is sent for review by TikTok Shop in the respective markets. For sellers in the EU market, the provided information will also be automatically translated into all EU languages supported by TikTok Shop. Note:
- You can only publish in each market once. To change product information, edit the global product by using the Edit Global Product API. The changes will be automatically synchronized to all markets where the product is published
- Use the Get Product API to obtain the converted local product information in the target market’s language.
- Use the Edit Product API or Partial Edit Product API to edit the local product information, if necessary.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The global product id.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Target markets for publishing global products.
object
The new market where you want to publish the global product. Possible values:
- AT: Austria
- BE:Belgium
- CZ:Czech Republic
- DE: Germany
- ES: Spain
- FR: France
- GB: United Kingdom
- GR: Greece
- HU:Hungary
- ID: Indonesia
- IE: Ireland
- IT: Italy
- JP: Japan
- MY: Malaysia
- NL: Netherlands(NL)
- PH: Philippines
- PO: Poland
- PT:Portugal
- SG: Singapore
- TH: Thailand
- US: United States
- VN: Vietnam
- MX: Mexico
A list of responsible person IDs. Retrieve the IDs from the Search Responsible Persons API. Default: The IDs provided when the global product was created. Note: Applicable only for the EU market in certain categories. Use the Get Global Category Rules API to check the requirements.
A list of manufacturer IDs. Retrieve the IDs from the Search Manufacturers API. Default: The IDs provided when the global product was created. Note: Applicable only for the EU market in certain categories. Use the Get Global Category Rules API to check the requirements.
The SKUs to be published in the specified market.
- Max SKUs for EU, JP, UK, US: 300
- Max SKUs for other regions: 100
object
The global SKU ID to be published. After publishing, a corresponding local product SKU will be created and linked to the global SKU.
The SKU’s local pricing information in the specified market.
Note:
- Provide this only if you want to manually override the default local prices, which are automatically calculated from the global uniform price.
- Specify either
amountorsale_price, the other will be auto-filled. If both are provided,sale_pricetakes precedence. - JP and US shops using China warehouses must provide
price.sale_price.
object
Local sellers/Intra-EU sellers The SKU’s local display price shown on the product page before any discounts. Refer to Product Pricing for the allowed price ranges in each market.
The currency. Possible values based on the region:
- BRL: Brazil
- CZK: Czech Republic
- EUR: France, Germany, Ireland, Italy, Spain, Netherlands, Belgium, Austria, Greece, Portugal
- GBP: United Kingdom
- HUF: Hungary
- IDR: Indonesia
- JPY: Japan
- MXN: Mexico
- MYR: Malaysia
- PHP: Philippines
- PLN: Poland
- SGD: Singapore
- THB: Thailand
- USD: United States
- VND: Vietnam
Global sellers The SKU’s local display price shown on the product page before any discounts. Refer to Product Pricing for the allowed price ranges in each market.
Note:
- Applicable for all global sellers.
- Required for JP and US shops using China warehouses. Optional for others.
- This is the definitive final price shown on the product page, all other prices will be ignored.
SKU inventory information per warehouse. Required for sellers without multiple warehouses, optional for others.
Note: If inventory details are not provided, the global SKU quantity will be evenly split among all markets, and any surplus will be added to the last published product SKU.
object
The warehouse ID. Retrieve this value from the Get Warehouse List API.
Default:
- Sellers without multiple warehouses: The available warehouses will be used, prioritizing local warehouses in the specified market over warehouses in the seller’s base country.
- Sellers with multiple warehouses: The global warehouse ID
The SKU quantity available in the warehouse. Valid range: [1, 99,999]
Note: If the local SKU inventory quantity exceeds the global SKU quantity, the global SKU quantity will be updated to be the sum of all local inventories.
The fees required for this product based on TikTok Shop policies. Fees are required only for certain product categories, retrieve the requirements from the Get Category Rules API.
object
The type of fee. Possible values: PFAND
The fee amount. Valid range:
- PFAND: [0.00 - 6300.00]
An optional attribute that provides additional context for the fee. The accepted values may vary by fee type and market.
Possible values for Pfand:
- SINGLE_USE
- REUSABLE
- NOT_APPLICABLE
Example
{ "publish_target": [ { "region": "MY", "responsible_person_ids": [ "67726293bf1eb1e92401a" ], "manufacturer_ids": [ "67726293bf1eb1e92401a" ], "skus": [ { "related_global_sku_id": "1729592969712207400", "price": { "amount": "10.01", "currency": "MYR", "sale_price": "100.00" }, "inventory": { "warehouse_id": "7068517275539719942", "quantity": 999 }, "fees": [ { "type": "PFAND", "amount": "1.01", "additional_attribute": "SINGLE_USE" } ] } ] } ]}Responses
Section titled “Responses”Success
object
Status code; 0 means success.
Success or failure message.
Request log ID.
object
The local products converted from the global product. Match each item to its publication result in publish_result by region. A region can have a publish_result item without a corresponding local product when its status is FAILED.
object
The market of this local product. Possible values:
- AT: Austria
- BE:Belgium
- CZ:Czech Republic
- DE: Germany
- ES: Spain
- FR: France
- GB: United Kingdom
- GR: Greece
- HU:Hungary
- ID: Indonesia
- IE: Ireland
- IT: Italy
- JP: Japan
- MY: Malaysia
- NL: Netherlands(NL)
- PH: Philippines
- PO: Poland
- PT:Portugal
- SG: Singapore
- TH: Thailand
- US: United States
- VN: Vietnam
- MX: Mexico
The ID of the local shop in the specified market. One market can only have one local shop.
The newly created local SKUs in the specified market.
object
The associated global SKU ID.
The newly generated local SKU ID.
An internal code/name for managing SKUs, not visible to buyers.
A list of attributes (e.g. size, color, length) that define each variant of a product.
object
The newly generated local sales attribute ID.
The newly generated local sales attribute value ID.
The newly generated local product ID.
Results of publishing the global product.
object
The market associated with this synchronization result. Possible values:
- AT: Austria
- BE: Belgium
- CZ: Czech Republic
- DE: Germany
- ES: Spain
- FR: France
- GB: United Kingdom
- GR: Greece
- HU: Hungary
- ID: Indonesia
- IE: Ireland
- IT: Italy
- JP: Japan
- MY: Malaysia
- NL: Netherlands (NL)
- PH: Philippines
- PO: Poland
- PT: Portugal
- SG: Singapore
- TH: Thailand
- US: United States
- VN: Vietnam
- MX: Mexico
The status of syncing the product to the market. Possible values:
- SUCCESS: The global product was successfully synchronized to the local shop, submitted for listing, and is now under review. Use the Product Status Change webhook to track the final audit status.
- DRAFT: Synchronization did not complete, and the local product remains in draft.
- FAILED: Synchronization of the global product to the local shop was unsuccessful.
The list of errors that occurred.
object
The error message.
Example
{ "code": 0, "data": { "products": [ { "region": "MY", "shop_id": "7494083603082020484", "skus": [ { "related_global_sku_id": "1729696746528737924", "id": "1729592969712207400", "seller_sku": "XL-COLOR-001", "sale_attributes": [ { "id": "100001", "value_id": "7272008676829824800" } ] } ], "id": "1929592969712207410" } ], "publish_result": [ { "region": "MY", "status": "SUCCESS", "fail_reasons": [ { "message": "The publish region is inactive." } ] } ] }, "message": "Success", "request_id": "202203070749000101890810281E8C70B7"}