Update Product Detail
PUT /products/{product_id}
Update a product and its variants. To set a variant’s weight or dimensions, send the variant in product_variants_attributes with its id, and its dimensions in measurement_attributes with measurement_attributes.id, all three sides and dimensions_unit. Read both ids from the product’s sellables in GET /products/{product_id} or GET /products. A bundle’s own weight and dimensions go in kits_attributes the same way, with the id of the sellables entry whose type is Kit.
The response is the product, with weight_grams in grams and each sellables entry’s dimensions in its measurement_attributes.dimensions_unit, normally the company’s unit. For about half a minute after an update, the response and product reads such as GET /products/{product_id} can still show the previous values, although the new ones are already saved, so do not send the update again because of it.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”ID of the Product
Request Body
Section titled “Request Body ”object
The fields to update for this product.
object
Name of the product.
Customer-facing description of the product.
Number of days this product will take to ship.
Internal notes about this product.
ID of the product brand it belongs to.
The product variants to change. An entry with an id changes that variant. An entry without id is matched to an existing variant by sku_code, then by upc_code, and otherwise adds a new variant to the product.
object
ID of the product variant to change: its id in the product’s sellables, where type is ProductVariant (GET /products/{product_id} or GET /products).
Name of this product variant.
Price of this product variant.
Cost price of this product variant.
SKU code of this product variant.
Weight in grams. Send this, or weight with weight_unit.
Weight in weight_unit. Veeqo converts it to grams and stores it as weight_grams.
Unit of weight, one of g, kg, oz or lb. Defaults to g. It applies only to weight; weight_grams is always in grams.
Width, height and depth. Send all three with measurement_attributes.id and dimensions_unit, so Veeqo updates the stored dimensions in the unit you mean.
object
ID of the stored dimensions: measurement_attributes.id in the product’s sellables (GET /products/{product_id} or GET /products).
Width, in dimensions_unit.
Height, in dimensions_unit.
Depth, in dimensions_unit.
Unit of width, height and depth: mm, cm, in (or inches), yd or m. Send it with the sides. Veeqo converts width, height and depth from this unit into the company’s settings.dimensions_unit (GET /current_company) and stores them in that unit, rounded to 2 decimals. That includes a side the request leaves out: its stored value is converted as if it were in this unit, so send all three sides. Without dimensions_unit, Veeqo reads the sides in the unit the stored dimensions already have (measurement_attributes.dimensions_unit in the product read), which is normally the company’s.
UPC code of this product variant.
EAN, GTIN, UPC, ISBN or ISSN. Detected from the barcode if omitted.
Manufacturer part or model number. Required for EU customs on shipments into the EU from outside it.
This product variant will be considered low on stock once the on-hand stock level decreases below this amount.
The number of units to reorder when the stock level is low.
Tax rate of the product variant.
A bundle’s own weight and dimensions. An entry without id is ignored.
object
ID of the bundle: its id in the product’s sellables, where type is Kit (GET /products/{product_id} or GET /products).
Weight in grams. Send this, or weight with weight_unit.
Weight in weight_unit. Veeqo converts it to grams and stores it as weight_grams.
Unit of weight, one of g, kg, oz or lb. Defaults to g. It applies only to weight; weight_grams is always in grams.
Width, height and depth. Send all three with measurement_attributes.id and dimensions_unit, so Veeqo updates the stored dimensions in the unit you mean.
object
ID of the stored dimensions: measurement_attributes.id in the product’s sellables (GET /products/{product_id} or GET /products).
Width, in dimensions_unit.
Height, in dimensions_unit.
Depth, in dimensions_unit.
Unit of width, height and depth: mm, cm, in (or inches), yd or m. Send it with the sides. Veeqo converts width, height and depth from this unit into the company’s settings.dimensions_unit (GET /current_company) and stores them in that unit, rounded to 2 decimals. That includes a side the request leaves out: its stored value is converted as if it were in this unit, so send all three sides. Without dimensions_unit, Veeqo reads the sides in the unit the stored dimensions already have (measurement_attributes.dimensions_unit in the product read), which is normally the company’s.
Images to add to this product.
object
URL to the image of the product.
The position in which to display this product image.
Examples
{ "product": { "title": "Golden Retriever Dog - TitleUpdate" }}{ "product": { "title": "Golden Retriever Dog - TitleUpdate", "description": "Golden Retriever Dog - DescriptionUpdate", "notes": "Golden Retriever Dog - NotesUpdate", "product_variants_attributes": [ { "id": 14144702, "title": "Dog - ProdVariantTitleUpdate", "sku_code": "g-dog-1u", "cost_price": 100, "price": 150 }, { "id": 14144703, "sku_code": "g-dog-2u", "title": "Puppy - ProdVariantTitleUpdate2" } ] }}Set a variant's weight and dimensions
{ "product": { "product_variants_attributes": [ { "id": 14144702, "weight": 1.2, "weight_unit": "kg", "measurement_attributes": { "id": 12587624, "width": 20, "height": 12, "depth": 8, "dimensions_unit": "cm" } } ] }}Responses
Section titled “ Responses ”OK
object
ID of the product.
The product’s title.
ID of the user who created the product.
The time the product was created.
Two letter country code where this product was manufactured, for customs declarations. Used for international shipments if the product’s variants have no origin country.
The Harmoized System code (tarriff number) of this product. Used for international shipments if the product’s variants have no HS code.
Notes associated with this product.
The tax rate of this product.
The date and time this product was last updated.
ID of the user that last updated the product.
object
Number of days this product will take to ship. This value is overridden by this product’s sellables.
Whether this product contains hazardous goods, required to be declared by certain carriers. This value is overridden by this product’s sellables.
Number of units this product has sold within the past 6 months.
The brand this product is associated with.
object
ID of the product brand.
The name of the product brand.
The position in which this brand is displayed.
The number of products this brand is attached to.
The product variants and/or kits associated with this product.
object
object
object
object
object
The number of incoming units from purchase orders. Stock transfers are reported separately in transit_incoming_stock_level.
The number of incoming units from stock transfers in transit to this warehouse. Includes FBA inbound quantities when FBA inbound stock tracking is enabled for the company.
The number of outgoing units from stock transfers in transit out of this warehouse.
object
object
object
The number of incoming units from purchase orders across all warehouses. Stock transfers are reported separately in transit_incoming_stock_level_at_all_warehouses.
The number of incoming units from stock transfers in transit, summed across all warehouses. Includes FBA inbound quantities when FBA inbound stock tracking is enabled for the company.
The number of outgoing units from stock transfers in transit, summed across all warehouses.
List of linked store listings.
List of channels that this product has a listing linked to it.
Tags on this product.
object
ID of the tag.
Name of the tag.
Color of the tag, in hexadecimal format or a HTML color name.
Customer-facing product description.
The number of units available multiplied by the cost price.
URL of the product’s main image.
The number of units that are committed to open orders across all product variants.
The number of units that are available for sale across all product variants.
The number of units that are ready for sale across all product variants.
object
Whether this product has infinte stock level in any location.
Example
{ "id": 8636420, "title": "Golden Retriever Dog - TitleUpdate", "created_by_id": 23005, "created_at": "2017-10-13T09:08:13.707Z", "weight": 0, "origin_country": null, "deleted_at": null, "deleted_by_id": null, "hs_tariff_number": null, "notes": "Golden Retriever Dog - NotesUpdate", "product_tax_rate_id": null, "tax_rate": 0, "updated_at": "2017-10-13T15:08:19.472Z", "updated_by_id": 23005, "web_meta_description": "", "web_meta_keywords": "", "web_meta_title": "", "web_page_title": "", "web_page_url": "", "main_image": { "id": 11499439, "binary_data": null, "content_type": null, "display_position": 1, "created_by_id": null, "updated_by_id": null, "deleted_at": null, "deleted_by_id": null, "created_at": "2017-10-13T09:08:13.759Z", "updated_at": "2017-10-13T09:08:13.759Z", "src": "http://pluspng.com/img-png/dog-png-dog-png-image-267.png", "product_id": 8636420, "picture_file_name": null, "picture_content_type": null, "picture_file_size": null, "picture_updated_at": null, "picture_order": 9999 }, "estimated_delivery": null, "total_quantity_sold": 0, "brand": null, "sellables": [ { "total_quantity_sold": 0, "allocated_stock_level_at_all_warehouses": 0, "id": 14144703, "type": "ProductVariant", "title": "Puppy - ProdVariantTitleUpdate", "sku_code": "g-dog-2u", "upc_code": "", "model_number": "", "price": 150, "cost_price": 100, "min_reorder_level": 0, "quantity_to_reorder": 0, "created_by_id": 23005, "created_at": "2017-10-13T09:08:13.744Z", "updated_at": "2017-10-13T15:08:19.490Z", "weight_grams": 0, "weight_unit": "g", "product_title": "Golden Retriever Dog - TitleUpdate", "full_title": "Golden Retriever Dog - TitleUpdate Puppy - ProdVariantTitleUpdate", "sellable_title": "Puppy - ProdVariantTitleUpdate", "profit": 50, "margin": 33.33, "tax_rate": 0, "product": { "id": 8636420, "title": "Golden Retriever Dog - TitleUpdate", "weight": 0, "origin_country": null, "hs_tariff_number": null, "tax_rate": 0, "main_image": { "id": 11499439, "binary_data": null, "content_type": null, "display_position": 1, "created_by_id": null, "updated_by_id": null, "deleted_at": null, "deleted_by_id": null, "created_at": "2017-10-13T09:08:13.759Z", "updated_at": "2017-10-13T09:08:13.759Z", "src": "http://pluspng.com/img-png/dog-png-dog-png-image-267.png", "product_id": 8636420, "picture_file_name": null, "picture_content_type": null, "picture_file_size": null, "picture_updated_at": null, "picture_order": 9999 }, "estimated_delivery": null, "deleted_at": null, "deleted_by_id": null, "description": "Golden Retriever Dog - DescriptionUpdate", "main_image_src": "http://pluspng.com/img-png/dog-png-dog-png-image-267.png" }, "stock_entries": [ { "sellable_id": 14144703, "warehouse_id": 22668, "infinite": false, "allocated_stock_level": 0, "warehouse": { "id": 22668, "name": "My Warehouse", "user_id": null, "address_line_1": "", "address_line_2": "", "city": "", "region": "", "country": null, "post_code": "", "inventory_type_code": "wavg", "default_min_reorder": 0, "click_and_collect_enabled": false, "click_and_collect_days": null, "created_by_id": 23005, "updated_by_id": null, "deleted_at": null, "deleted_by_id": null, "created_at": "2017-07-04T09:40:37.539Z", "updated_at": "2017-07-04T09:40:37.539Z", "phone": null, "requested_carrier_account": null }, "location": null, "stock_running_low": true, "updated_at": "2017-10-13T09:13:49.145Z", "incoming_stock_level": 0, "physical_stock_level": 0, "available_stock_level": 0, "sellable_on_hand_value": 0 } ], "variant_option_specifics": [], "variant_property_specifics": [], "measurement_attributes": { "id": 12587623, "width": 0, "height": 0, "depth": 0, "dimensions_unit": "cm" }, "images": [], "active_channels": [], "channel_sellables": [], "available_stock_level_at_all_warehouses": 0, "stock_level_at_all_warehouses": 0, "on_hand_value": 0, "inventory": { "infinite": false, "physical_stock_level_at_all_warehouses": 0, "allocated_stock_level_at_all_warehouses": 0, "available_stock_level_at_all_warehouses": 0, "incoming_stock_level_at_all_warehouses": 0 }, "weight": 0 }, { "total_quantity_sold": 0, "allocated_stock_level_at_all_warehouses": 0, "id": 14144702, "type": "ProductVariant", "title": "Dog - ProdVariantTitleUpdate", "sku_code": "g-dog-1u", "upc_code": "", "model_number": "", "price": 150, "cost_price": 100, "min_reorder_level": 0, "quantity_to_reorder": 0, "created_by_id": 23005, "created_at": "2017-10-13T09:08:13.712Z", "updated_at": "2017-10-13T15:08:19.477Z", "weight_grams": 10, "weight_unit": "g", "product_title": "Golden Retriever Dog - TitleUpdate", "full_title": "Golden Retriever Dog - TitleUpdate Dog - ProdVariantTitleUpdate", "sellable_title": "Dog - ProdVariantTitleUpdate", "profit": 50, "margin": 33.33, "tax_rate": 0, "product": { "id": 8636420, "title": "Golden Retriever Dog - TitleUpdate", "weight": 0, "origin_country": null, "hs_tariff_number": null, "tax_rate": 0, "main_image": { "id": 11499439, "binary_data": null, "content_type": null, "display_position": 1, "created_by_id": null, "updated_by_id": null, "deleted_at": null, "deleted_by_id": null, "created_at": "2017-10-13T09:08:13.759Z", "updated_at": "2017-10-13T09:08:13.759Z", "src": "http://pluspng.com/img-png/dog-png-dog-png-image-267.png", "product_id": 8636420, "picture_file_name": null, "picture_content_type": null, "picture_file_size": null, "picture_updated_at": null, "picture_order": 9999 }, "estimated_delivery": null, "deleted_at": null, "deleted_by_id": null, "description": "Golden Retriever Dog - DescriptionUpdate", "main_image_src": "http://pluspng.com/img-png/dog-png-dog-png-image-267.png" }, "stock_entries": [ { "sellable_id": 14144702, "warehouse_id": 22668, "infinite": false, "allocated_stock_level": 0, "warehouse": { "id": 22668, "name": "My Warehouse", "user_id": null, "address_line_1": "", "address_line_2": "", "city": "", "region": "", "country": null, "post_code": "", "inventory_type_code": "wavg", "default_min_reorder": 0, "click_and_collect_enabled": false, "click_and_collect_days": null, "created_by_id": 23005, "updated_by_id": null, "deleted_at": null, "deleted_by_id": null, "created_at": "2017-07-04T09:40:37.539Z", "updated_at": "2017-07-04T09:40:37.539Z", "phone": null, "requested_carrier_account": null }, "location": null, "stock_running_low": true, "updated_at": "2017-10-13T09:13:49.172Z", "incoming_stock_level": 0, "physical_stock_level": 0, "available_stock_level": 0, "sellable_on_hand_value": 0 } ], "variant_option_specifics": [], "variant_property_specifics": [], "measurement_attributes": { "id": 12587624, "width": 0, "height": 0, "depth": 0, "dimensions_unit": "cm" }, "images": [], "active_channels": [], "channel_sellables": [], "available_stock_level_at_all_warehouses": 0, "stock_level_at_all_warehouses": 0, "on_hand_value": 0, "inventory": { "infinite": false, "physical_stock_level_at_all_warehouses": 0, "allocated_stock_level_at_all_warehouses": 0, "available_stock_level_at_all_warehouses": 0, "incoming_stock_level_at_all_warehouses": 0 }, "weight": 10 } ], "channel_products": [], "active_channels": [], "tags": [], "image": "http://pluspng.com/img-png/dog-png-dog-png-image-267.png", "description": "Golden Retriever Dog - DescriptionUpdate", "on_hand_value": 0, "main_image_src": "http://pluspng.com/img-png/dog-png-dog-png-image-267.png", "total_allocated_stock_level": 0, "total_available_stock_level": 0, "total_stock_level": 0, "inventory": { "infinite": false }}