Backend API
Updates an existing product using the ID that was returned when created. Updating performs a merge operation. To explicitly override values such as arrays, use the $set operator.
Arguments
Unique identifier for the product.
Configuration of one or more purchase options for the product. Can be standard for one-time purchases or subscription for a subscription plan. Products can support both purchase options simultaneously.
Designates purchase option as a one-time purchase.
ID of the purchase option.
The name of the purchase option.
Indicates whether the purchase option is available for customers to purchase. Inactive products will not be returned on the Frontend.
Whether the purchase option is available for customers to purchase. Inactive products will not be returned on the Frontend.
List price used when sale=false or sale_price is not defined.
Indicates whether the product option is on sale. If true, the sale_price will be used by default when the product is added to a cart.
Sale price used by default when sale=true, overriding price. Overrides product sale price.
Price rules determined by cart quantity or customer account group. Overrides price and sale_price when conditions match.
Price applied when conditions are met.
Customer account group as a condition to apply price.
Maximum quantity as a condition to apply price.
Minimum quantity as a condition to apply price.
Array of account groups that are eligible to access the purchase option within the storefront.
Designates purchase option as a subscription plan.
ID of the subscription plan purchase option.
Name of the subscription plan purchase option.
A long-form description of the purchase option. May contain HTML or other markup languages.
Indicates whether the purchase option is available for customers to purchase. Inactive products will not be returned on the Frontend.
Array of account_group names for which the purchase option is available.
Array defining subscription plans and their respective configurations.
ID of the purchase option subscription plan.
Name of the subscription plan.
A long-form description of the subscription plan. May contain HTML or other markup languages.
Indicates whether the subscription plan is available for customers to purchase. Inactive products will not be returned on the Frontend.
List price used when sale=false or sale_price is not defined.
Price rules determined by cart quantity or customer account group. Overrides price and sale_price when conditions match.
Price applied when conditions are met.
Customer account group as a condition to apply price.
Maximum quantity as a condition to apply price.
Minimum quantity as a condition to apply price.
Determines the billing schedule for the subscription plan.
Subscription plan billing interval. Can be daily, weekly, monthly, or yearly.
Possible enum values:
Multiplier for billing interval. For example, to make the billing cycle once every two weeks, set interval=weekly and interval_count=2.
Specifies a limit to the number of billing cycles for the subscription plan. For example, "limit"=10 would stop billing the customer after the tenth billing cycle.
Set true to make the product visible to customers in a storefront, otherwise it will be hidden.
An object containing custom attribute key/value pairs. See attributes for more details.
Human-friendly name of the product.
List price used when sale=false or sale_price is not defined. This value is intended for use via the frontend. See the purchase_options array to manage a product's price.
Lowercase, hyphenated identifier typically used in URLs. When creating a product, a slug will be generated automatically from the name. Maximum length of 1,000 characters.
Indicates whether the product is a bundle of other products.
List of products sold as a bundle. Applicable only when bundle=true.
The id of the bundled product.
Quantity of the bundled product.
The id of the bundled variant, if applicable.
Primary category, commonly used as a navigation anchor.
Cost of goods (COGS) used to calculate gross margins.
List of products to display as cross-sells on a shopping cart page.
The id of the cross-sell product.
Discount to apply as a fixed amount. Applicable only when discount_type=fixed
Discount to apply as a percentage. Applicable only when discount_type=percent.
Type of discount to apply: fixed or percent.
Set true to enable custom options for this product in the admin panel.
A long form description of the product. May have HTML or other markup.
List of images depicting the bundle.
A brief description of the image, intended for display as a caption or alt text.
An object representing the image's source file.
Set or overwrite file data. Use the following format when writing a file from binary data (for example an image): data[$binary]=<base64 encoded binary daya>.
Optional file name.
Page description used for search engine optimization purposes.
Page keywords used for search engine optimization purposes.
Page title used to override product name in storefronts.
Options that allow for variations of the base product. If the option is part of a variant or required=true, an option value must be set for the product to be added to a cart.
Human-friendly name of the option.
Some brief hint text to help the user understand this option.
Type of user input to display for this option in a storefront. Can be text, textarea, select, multi_select, file or multi_file. select is ideal for dropdown or radio selectors, and multi_select is ideal for checkboxes. A maximum of 10 files can be uploaded by the user, and there are no restrictions on file type.
Specifies another option ID that affects visibility of this option. The option will only appear when one of the parent_value_ids is selected.
The ids of parent option values that will make the option appear if selected.
Extra price for the option, added to the product's price/sale_price. If the option is part of a variant, the variant's price/sale_price will override this value.
Set true to indicate the option's values specify a subscription billing interval. In this case, option values must have a subscription_interval of monthly, yearly, weekly or daily.
List of possible values for this option.
Human-friendly name of the option value.
A brief description of the option value, intended for displaying to customers.
One or more images depicting the option value.
A brief description of the image, intended for display as a caption or alt text.
An object representing the image's source file.
Set or overwrite file data. Use the following format when writing a file from binary data (for example an image): data[$binary]=<base64 encoded binary daya>.
Optional file name.
Extra price added to the product's price/sale_price if the option value is selected. Overrides option price.
Extra weight added to the product's shipment_weight if the option value is selected. The unit should match the store's default as configured in general settings.
When product type=subscription, this is the billing interval used when this option value is selected. Can be monthly, yearly, weekly or daily.
When product type=subscription, this number multiplies subscription_interval to determine the billing frequency when this option is selected. For example, to make a subscription bill every 2 weeks, set subscription_interval=weekly and subscription_interval_count=2.
When product type=subscription, refers to a number of days offered as a trial before an invoice is issued.
Set true to generate variants including this option.
Set price rules to use when conditions match the customer's account group or product quantity in a cart.
Set price to apply when conditions are met.
Customer account group as a condition to apply price.
Maximum quantity as a condition to apply price.
Minimum quantity as a condition to apply price.
Specifies a quantity multiple the product must be sold in.
Minimum quantity of the product that can be sold at once.
Set true to mark the product "on sale" and to use sale_price when the product is added to a cart.
Sale price used to override list price when sale=true.
Product dimensions when packed for shipping. Typically used by 3rd party carriers in box packing algorithms to optimize shipping costs.
Height of the product in unit.
Length of the product in unit.
Either in (inches) or cm (centimeters).
Width of the product in unit.
ID of location from /settings/shipping/locations. If specified, shipping is calculated from this origin. Otherwise, the store default location will be used.
If specified, shipping is calculated using this as the maximum number of items per package. Otherwise, Swell assumes any quantity fits into a single package.
Product shipping price rules to override default shipping rules.
Shipping service required for this rule to apply.
Customer group required for this rule to apply.
Shipping country required for this rule to apply.
Fixed amount to add when rule is applied. Only applicable when fee_type=fixed.
Percentage of the shipping price to add when rule is applied. Only applicable when fee_type=percent.
Type of fee to apply in addition to price, either fixed or percent.
Maximum package quantity when rule is applied.
Shipping price when rule is applied.
Shipping state required for this rule to apply.
Maximum order subtotal for this rule to apply.
Minimum order subtotal for this rule to apply.
Maximum order item weight for this rule to apply.
Minimum order item weight for this rule to apply.
Shipping zip/postal code required for this rule to apply.
If specified, shipping is calculated using this weight. Otherwise, Swell assumes 1 lb/oz/kg — depending on store's default weight unit.
Stock keeping unit (SKU) used to track inventory in a warehouse.
Set true to enable stock tracking this product.
The default billing interval when this product is used as a subscription plan. Can be monthly, yearly, weekly or daily.
Multiplier when combined with subscription_interval. For example, to make a subscription bill every 2 weeks, set subscription_interval=weekly and subscription_interval_count=2.
Number of days offered as a free trial before the customer is billed. If a subscription is canceled by the last day of the trial period, an invoice won't be issued.
List of arbitrary tags typically used as metadata to improve search results or associate custom behavior with a product.
Implies the ordering and fulfillment options available for the product. Can be standard, subscription, bundle, or giftcard. A standard product is a physical item that will be shipped to a customer.
List of products to display as up-sells on a product detail page.
The id of the up-sell product.
Set true to generate variants for this product in the admin panel.
const { swell } = require('swell-node');
swell.init('store-id', 'secret-key');
await swell.put('/products/{id}', {
id: '5ca24abb9c077817e5fe2b36',
price: 19.98,
// use $set to override values
$set: {
options: [
...
],
},
});
Response
{
"id": "5ca24abb9c077817e5fe2b36",
"active": true,
"attributes": {},
"currency": "USD",
"date_created": "2019-04-01T00:00:00.000Z",
"date_updated": "2019-04-01T00:00:00.000Z",
"delivery": "shipment",
"description": null,
"images": [
{
"id": "5ca24abb9c077817e5fe2b37",
"file": {
"id": "5ca24abb9c077817e5fe2b38",
"date_uploaded": "2019-04-02T00:26:23.399Z",
"length": 66764,
"md5": "99194f53bfdea832553e7fa8ae8fd80f",
"content_type": "image/png",
"url": "http://cdn.swell.store/test/5ca24abb9c077817e5fe2b36/99194f53bfdea832553e7fa8ae8fd80f",
"width": 940,
"height": 600
}
}
],
"meta_description": null,
"meta_title": null,
"name": "T-Shirt",
"options": [
{
"id": "5ca24ab32599d4179c24a624",
"name": "Size",
"variant": true,
"required": true,
"values": [
{
"id": "5ca24ad59c077817e5fe2ba3",
"name": "Small"
},
{
"id": "5ca24ad59c077817e5fe2ba4",
"name": "Medium"
},
{
"id": "5ca24ad59c077817e5fe2ba5",
"name": "Large"
}
]
}
],
"price": 9.99,
"slug": "swell-t-shirt",
"stock_level": 0,
"stock_status": "available",
"stock_tracking": true,
"tags": [],
"type": "standard"
}