Product Object


Short description of ProductService

Properties
idstringRead-onlyminLength 1maxLength 36immutable

Product ID.


revisionstringRead-onlyformat int64

Revision number, which increments by 1 each time the product is updated. To prevent conflicting changes, the current revision must be passed when updating the product.

Ignored when creating a product.


createdDatestringRead-onlyformat date-time

Date and time the product was created.


updatedDatestringRead-onlyformat date-time

Date and time the product was updated.


namestringminLength 1maxLength 80

Product name. Translatable.


slugstringformat URL_SLUG

Product slug.

If not provided, the slug is autogenerated based on the product name.


urlUrlRead-only

URL to the site's product page.

Note: Returned only when you pass "URL" to the fields array in Products API requests.


descriptionDescription

Product description using rich content.

Note: Returned only when you pass "DESCRIPTION" to the fields array in Products API requests.

See Ricos document reference

plainDescriptionstringmaxLength 16000

Product description in HTML.

  • When provided on create/update, this string must be valid HTML. It's then converted to rich content.
  • plainDescription is ignored when a value is also passed to the description field.

Note: Returned only when you pass "PLAIN_DESCRIPTION" to the fields array in Products API requests.


visibleboolean

Whether the product is visible to site visitors.

Default: true


visibleInPosboolean

Whether the product is visible in POS (point of sale).

Default: true

Note: Always false for productType: DIGITAL.


mediaMedia

Product media items. For a detailed explanation of product media, see About Product Media.


seoDataSeoData

Product SEO data.


taxGroupIdstringformat GUID

Tax group ID. Used to apply specific tax rates to products.


optionsArray <ConnectedOption>maxItems 6

Product options, such as "Size" or "Color". Options define the ways a product can vary.

When you provide options, you must also provide the corresponding variants. Each variant must have exactly one choice for each option. For more information, see About Product Options and Variants.

Options are stored as reusable customization entities. Pass an existing customization's ID to reuse it, or define options inline and new customization entities are created automatically.


modifiersArray <ConnectedModifier>maxItems 10

Product modifiers. Collect additional information from customers without creating variants.

Unlike options, modifiers don't affect inventory or create additional variants. Use them for things like gift messages or engraving text. For more information, see About Product Options and Variants.

Modifiers are stored as reusable customization entities. Pass an existing customization's ID to reuse it, or define modifiers inline and new customization entities are created automatically.


brandBrand

Product brand.

  • Pass brand.name to add a new brand while creating a product.
  • Pass an existing brand's id to assign that brand to the product.

infoSectionsArray <InfoSection>maxItems 10

Product info section.

  • Pass infoSection.uniqueName, infoSection.title, and infoSection.description to add a new info section while creating a product.
  • Pass an existing info section's id or uniqueName to assign that info section to the product.

ribbonRibbon

Product ribbon.

  • Pass ribbon.name to add a new ribbon while creating a product.
  • Pass an existing ribbon's id or name to assign that ribbon to the product.

directCategoriesInfoDirectCategoriesInfoRead-only

List of categories that directly contain this product.

Updated automatically when a product is added/removed from a category, when an item is moved within a category, or when a category is deleted.

Note: Returned only when you pass "DIRECT_CATEGORIES_INFO" to the fields array in Products API requests.


allCategoriesInfoAllCategoriesInfoRead-only

List of categories that directly contain this product, as well as their parent categories.

Note: Returned only when you pass "ALL_CATEGORIES_INFO" to the fields array in Products API requests.


mainCategoryIdstringformat GUID

The ID of the product's primary direct category, which defines the product’s breadcrumbs path. For example, if the product's main category is "T-Shirts" (which is a subcategory of "Clothing"), the breadcrumbs path will be "Clothing > T-Shirts".


costRangeCostRangeRead-only

Product cost range - minimum and maximum costs of all product variants.

Note: Returned only when the following conditions are met:

  • You pass "MERCHANT_DATA" to the fields array in Products API requests.
  • Your app has the required SCOPE.STORES.PRODUCT_READ_ADMIN permission scope.

inventoryInventoryRead-only

Product inventory info.

Note: This field reflects the aggregated inventory status from the default location only. Use the Inventory Items API to manage inventory for specific locations. Learn more about inventory management.


productTypestringimmutable

Product type: PHYSICAL for tangible goods that require shipping, or DIGITAL for downloadable content.

When passing productType: PHYSICAL, you must also pass physicalProperties. When passing productType: DIGITAL, you can optionally pass digitalProperties in each variant.


handlestringRead-onlyminLength 1maxLength 100

A unique human-friendly identifier for the product.

Unlike the auto-generated id, the handle can be set when creating a product. This is useful when re-importing products from other systems, as it provides a stable identifier across platforms. If not provided during creation, one is automatically generated. Can't be changed after creation.


currencystringRead-onlyformat CURRENCY

Currency used for the pricing of this product, in ISO-4217 format.

Defaults to the currency defined in the site settings, unless specified in the request's x-wix-currency header.

Note: Returned only when you pass "CURRENCY" to the fields array in Products API requests.


breadcrumbsInfoBreadcrumbsInfoRead-only

Breadcrumbs of the mainCategoryId. Used to navigate to parent categories.

Note: Returned only when you pass "BREADCRUMBS_INFO" to the fields array in Products API requests.


actualPriceRangeActualPriceRangeRead-only

Minimum and maximum current selling prices across all product variants.


compareAtPriceRangeCompareAtPriceRangeRead-only

Minimum and maximum compare-at prices (original prices before discounts) across all product variants. Used to show savings to customers.


variantsInfoVariantsInfo

Product variants. Each variant represents a specific purchasable version of a product defined by option choices.

Each variant must reference all product options via its choices array, using optionChoiceNames in requests. You must explicitly provide each variant when creating products with options.

For more information, see About Product Options and Variants.


extendedFieldsExtendedFields

Custom extended fields for the product object.

Extended fields must be configured in the app dashboard before they can be accessed with API calls.


subscriptionDetailsSubscriptionDetails

Product subscriptions.

Subscription discounts are defined at the product level but apply to each variant's actualPrice. This means the final subscription price varies per variant based on the variant's base price.


variantSummaryVariantSummaryRead-only

The total number of variants for the product.


physicalPropertiesPhysicalProperties

Physical properties.

Required when productType: PHYSICAL.

Did this help?