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 summary for your product, which should be in HTML format.-
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.
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"
}
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.