Documentation Index
Fetch the complete documentation index at: https://dev.puppetvendors.com/llms.txt
Use this file to discover all available pages before exploring further.
V2 Preview — This endpoint is part of the V2 API preview. Breaking changes may occur.
Overview
Clone an existing product to create a new draft copy. The duplicated product inherits the original’s description, product type, vendor, tags, options, variants, images, media, and metafields. The following fields are changed automatically:
- Title becomes “Copy of [original title]”
- Status is set to
draft (or pending if the shop requires approval for new products)
- Inventory is zeroed out on all variants
- SKUs are cleared to avoid duplicates
- Handle is regenerated by Shopify
Vendor tokens can only duplicate their own products.
Use Cases
- Quickly create a similar product based on an existing one
- Use a product as a template for seasonal variations
- Speed up catalog expansion by cloning and editing
Required Scope
products:write
Path Parameters
The ID of the product to duplicate (Shopify numeric, GID, or MongoDB ObjectId).
Response
{
"success": true,
"data": {
"_id": "60a7b2c3d4e5f6a7b8c9d0e1",
"shopifyId": "7890123456790",
"graphqlProductId": "gid://shopify/Product/7890123456790",
"title": "Copy of Organic Cotton Tee",
"handle": "copy-of-organic-cotton-tee",
"status": "draft",
"productType": "T-Shirts",
"vendor": "Acme Apparel",
"variants": [
{
"title": "S / White",
"sku": "",
"price": "29.99",
"inventoryQuantity": 0
}
],
"createdAt": "2026-05-19T10:30:00.000Z"
}
}
{
"success": false,
"error": {
"message": "Product creation not allowed",
"code": "FORBIDDEN"
}
}
{
"success": false,
"error": {
"message": "Product not found",
"code": "NOT_FOUND"
}
}
Example
curl -X POST "https://staging-api.puppetvendors.com/products/507f1f77bcf86cd799439013/duplicate" \
-H "x-access-token: YOUR_VENDOR_JWT"