Update a Product
Endpoint
PUT /products/update
Required parameters
id-VARCHAR(25)- The ID of the product you want to update
Optional parameters
All parameters from the Create a Product endpoint are optional. Only include the fields you want to update.
title-VARCHAR(500)- The title of your producturl-VARCHAR(100)- The vanity URL for your product. Must be unique and contain alphanumeric, underscore, hyphen, or dot characters only.currency-VARCHAR(3)- The lower-cased 3-letter ISO currency code for your productprice-DECIMAL- The base price of your product-
pricing_model-VARCHAR(20)- The pricing model for your product, values can be:one-time- This is for one-time payments.subscription- This is for recurring payments.delayed- This is for delayed payments using credit card pre-authorization.
-
display-VARCHAR(11)- The display for your product, values can be:featured- Product appears as a large splash image/carousel at the top of your storefront.listed- Product appears as a listing in a grid.unlisted- Product does not appear in storefront but is still accessible to anyone with its link.unpublished- Product is not accessible to the public whatsoever.
subtitle-VARCHAR(500)- The subtitle of your product, which appears below the titledescription-TEXT- The description for your product, which should be in HTML format.summary-TEXT- The "What You'll Get" section for your product, which should be in HTML format. This appears on the product page to show buyers what they'll receive.-
interval-VARCHAR(5)- The interval for your subscription product.
Required ifpricing_modelis set tosubscription.
Values can be:day- The subscriber will be charged everyinterval_countday(s).week- The subscriber will be charged everyinterval_countweek(s).month- The subscriber will be charged everyinterval_countmonth(s).year- The subscriber will be charged everyinterval_countyear(s).
-
interval_count-INT- How often to charge the subscriber based oninterval_count.
Required ifpricing_modelis set tosubscription. -
trial_period_days-INT- Number of days of free trial before the subscriber is charged.
Applicable only ifpricing_modelis set tosubscription. collect_address_and_phone-BOOLEAN- Whether to collect buyer's address and phone number at checkout. Defaults toFalse.shipping_fee-DECIMAL- If this is a shipped product, this is the shipping fee for the product.-
shipping_type-VARCHAR(12)- The shipping fee type for your product. Values can be:flat- The shipping fee will be fixed regardless of the quantity of this product added to the cart.per_quantity- The shipping fee will be additive/cumulative and added per quantity of this product added to the cart.
categories-ARRAY- List of categories under which to put this product. If provided, this will replace all existing categories. If a given category doesn't exist, it will be created.tags-ARRAY- List of tags to apply to this product. If provided, this will replace all existing tags. If a given tag doesn't exist, it will be created.productimages-ARRAY- List of URLs of images for this product. If provided, this will replace all existing images. Make sure your URLs are publicly accessible.productfiles-ARRAY- List of URLs of files for this product. If provided, this will replace all existing files. Make sure your URLs are publicly accessible.download_email_subject-VARCHAR(100)- Subject line for the download email sent to buyers when files are included.download_email_body-TEXT- Body content for the download email sent to buyers when files are included. Should be in HTML format. Supports merge fields like. Includeto place download links at a specific location.success_url-VARCHAR(2500)- URL to redirect buyers to after successful payment. Can be a custom thank you page or exclusive link.success_email_subject-VARCHAR(100)- Subject line for the success email sent to buyers after purchase. This is separate from the download email.success_email_body-TEXT- Body content for the success email sent to buyers after purchase. Should be in HTML format. Supports merge fields like,,, etc.gated_page_url-VARCHAR(100)- The URL slug for the gated page that buyers can access after purchase. Must be unique per brand and cannot clash with product URLs, page URLs, or funnel page URLs.gated_page_body-TEXT- The body content for the gated page. Should be in HTML format. This is displayed on the gated page that buyers can access after purchase.is_licensed-BOOLEAN- Whether to generate unique license keys for each purchase. Useful for software products.redemption_instructions-TEXT- Instructions for redeeming license keys. Included in the download email alongside license keys whenis_licensedistrue. Should be in HTML format.exclude_from_automations-BOOLEAN- Whether to exclude this product from workflow automations (e.g., Zapier, Pabbly Connect, webhooks). Email service provider integrations are unaffected.
Example request
curl https://api.zylvie.com/products/update \
-X PUT \
-h "Authorization: Bearer e97f0aafe4884bc380c81fdb2347dc55" \
-h "Content-Type: application/json" \
-d '{
"id": "6v8Obm2M",
"title": "Updated Product Title",
"price": 29.99,
"subtitle": "Updated subtitle for the product",
"display": "featured"
}'
Example response
{
"id": "6v8Obm2M", //Product ID
"created": "2023-08-01T12:00:00Z", //UTC timestamp
"title": "Updated Product Title",
"url": "beautiful-product-a",
"currency": "usd",
"price": 29.99,
"pricing_model": "subscription",
"display": "featured",
"subtitle": "Updated subtitle for the product",
"description": "<p>This is the best product ever.</p><p>Check out more <a href='#'>here</a>!</p>",
"summary": "<p>What you'll get:</p><ol><li>A good product</li><li>A generous refund policy</li><li>The best customer service in the world</li>",
"interval": "month",
"interval_count": 1,
"trial_period_days": null,
"collect_address_and_phone": false,
"shipping_fee": 2,
"shipping_type": "per_quantity",
"download_email_subject": "You received a product!",
"download_email_body": "<p>Hi ,</p><p>Here are your one-time download links:</p><p></p>",
"success_url": null,
"success_email_subject": "Welcome to Updated Product Title!",
"success_email_body": "<p>Hi ,</p><p>Thank you for your purchase!</p>",
"gated_page_url": "members-area",
"gated_page_body": "<p>Welcome to your exclusive members area!</p>",
"is_licensed": false,
"redemption_instructions": null,
"exclude_from_automations": false
}
Notes
- Only include the fields you want to update. Fields not included in the request will remain unchanged.
- If you provide
categories,tags,productimages, orproductfiles, they will completely replace the existing values. To keep existing values, omit these fields from your request. - The product must belong to your authenticated brand. Attempting to update a product that doesn't belong to you will result in a 404 error.
- All validation rules from the Create a Product endpoint apply to updates as well.