Skip to content

Edit Product

Mehrdad Pajuhaan edited this page Oct 23, 2026 · 3 revisions

Edit Product

Update the global details of an existing product: title, pricing, identifiers, inventory limits, shipping profiles and display options. Send only the fields you want to change. Your token needs the backoffice:product:write scope, and the user behind the token needs access to the shop's Products permission region.

Endpoint

PUT https://api.selldone.com/shops/{shop_id}/products/{product_id}/edit

The SDK URL catalog registers this route as PUT (window.API.PUT_EDIT_PRODUCT(shop_id, product_id)). Earlier versions of this page showed POST; use PUT for new integrations.

In a multi-vendor marketplace, vendor-specific price, stock and lead time are not changed by this endpoint. Use the vendor product endpoints instead.

Common body parameters

Parameter Type Description
title string Product title (HTML tags are stripped).
price float Base price of the product.
currency string Currency code (for example USD, RIAL).
type string Product type: PHYSICAL, VIRTUAL, SERVICE, FILE, SUBSCRIPTION.
status string Open or Close (Pending and Rejected are only allowed in marketplace workflows).
condition string Product condition: new, refurbished, used, used_fair, used_good, used_like_new.

Common optional parameters

Parameter Type Description
sku string Stock Keeping Unit.
mpn string Manufacturer Part Number.
gtin string Global Trade Item Number.
hsn string HSN code.
gpc number Google Product Category.
title_en string English subtitle.
category_id integer Product category ID.
brand string Product brand.
warranty string Product warranty text.
original boolean Whether the product is original.
return_warranty boolean Return warranty availability.
lead integer Lead time in hours.
slug string Custom URL slug (auto-generated from the title).
video string Product video URL.
blog string External blog or info link.
message string Message for virtual products.
inputs JSON Virtual product input fields.
outputs JSON Virtual product output fields.

Pricing controls

Parameter Type Description
commission float Commission added on top of the base price.
discount float Discount amount.
dis_start datetime Discount start (UTC, YYYY-MM-DD HH:mm:ss).
dis_end datetime Discount end (UTC, YYYY-MM-DD HH:mm:ss).
price_label string Label displayed near the price.
price_input string Variable price input mode: default, area, volume, custom.
pricing string Pricing model: FIX (fixed price), ESTIMATION or AGREEMENT (service pricing set by the seller), BID.

Enum values on this page come from the Product model in Selldone Core (ProductType, ProductCondition, PriceInputType, ProductPricing, ProductStatus).

To change only the price, use the price endpoint described in Edit Product's Variant.

Inventory and shipping

Parameter Type Description
limit_min int Minimum order quantity.
limit_max int Maximum order quantity.
extra JSON weight, width, height, length.
map_id int Geo-tag (map tag ID).
shipping_id int Shipping profile ID.
warranty_id int Warranty profile ID.
return_policy_id int Return policy profile ID.
guide_id int Shopping guide profile ID.
tax_id int Tax profile ID.

To change only the stock, use POST /shops/{shop_id}/products/{product_id}/quantity with { "quantity": 50 } (window.$backoffice.product.setQuantity() in the SDK).

Additional parameters

Parameter Type Description
style JSON Product display style configuration.
action string Product call to action (for example "Buy Now").
external string External link (needs a Company or Enterprise license).
property_set_id int Associated property set ID.
shortcuts[] array Up to 5 extra category shortcut IDs.
vendor_id int Set the vendor (marketplace only; must follow the marketplace rules).

Restrictions and notes

  • You cannot change the product type after creation.
  • Vendor permissions are strictly enforced.
  • Changing vendor_id requires removing all existing vendors if the product is multi-vendor.
  • Setting external links requires a special shop license.
  • Pending and Rejected statuses are limited to marketplace workflows.
  • Fields you do not send stay unchanged. If a field you did not send is cleared, report it to Selldone Support.

Example request

PUT https://api.selldone.com/shops/12345/products/9876/edit
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{
  "title": "Eco-Friendly Yoga Mat",
  "price": 19.95,
  "currency": "USD",
  "type": "PHYSICAL",
  "status": "Open",
  "condition": "new",
  "sku": "YOGA-2024-ECO",
  "category_id": 12,
  "brand": "ZenMotion",
  "lead": 24,
  "original": true,
  "warranty": "12-month replacement",
  "return_warranty": true,
  "map_id": 7,
  "limit_min": 1,
  "limit_max": 5,
  "price_label": "Limited Offer",
  "discount": 5,
  "dis_start": "2025-06-01 00:00:00",
  "dis_end": "2025-06-10 23:59:59"
}

With the JavaScript SDK

const { data } = await window.axios.put(
  window.API.PUT_EDIT_PRODUCT(12345, 9876),
  { sku: "YOGA-2024-ECO", brand: "ZenMotion" },
);

Related

Clone this wiki locally