| description: Subscriptions.
- ONE-OF:
- name: autoRenewal | type: boolean | description: Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`.
- name: billingCycles | type: integer | description: Number of billing cycles before subscription ends.
- name: id | type: string | description: Subscription GUID.
- name: title | type: string | description: Subscription title.
- name: description | type: string | description: Subscription description.
- name: visible | type: boolean | description: Whether the subscription is visible to site visitors. Default: `true`
- name: frequency | type: SubscriptionFrequency | description: Frequency of recurring payment. For example, if `frequency: MONTH` and `billingCycles: 6`; payment will be made monthly for 6 months.
- enum: UNDEFINED, DAY, WEEK, MONTH, YEAR
- name: interval | type: integer | description: Interval of recurring payment. Default: `1`. For example, if `frequency: MONTH`, `billingCycles: 3` and `interval: 2`; payment will be made every 2 months for a total of 6 months.
- name: discount | type: SubscriptionDiscount | description: Discount info (optional). For example, a $20 discount would be `amount: 20`, `type: AMOUNT`.
- ONE-OF:
- name: amountOff | type: string | description: Amount to discount from the variant discounted_price.
- name: percentOff | type: number | description: Percentage to discount from variant discounted_price.
- name: type | type: DiscountType | description: Discount type.
- enum:
- AMOUNT: Discount by a specific amount.
- PERCENT: Discount by a percentage.
- name: allowOneTimePurchases | type: boolean | description: Whether to allow one-time purchases in addition to subscription-based purchases. Default: `false`
- name: variantSummary | type: VariantSummary | description: The total number of variants for the product.
- name: variantCount | type: integer | description: The total number of variants for the product.
```
### Examples
```curl
{
"id": "4ae86daa-0f77-463c-a0ad-9f25fb50929e",
"entityFqdn": "wix.stores.catalog.v3.product",
"slug": "created",
"entityId": "d17bb5c4-e10f-4b83-ae97-f27f2edc18f1",
"createdEvent": {
"entityAsJson": {
"id": "d17bb5c4-e10f-4b83-ae97-f27f2edc18f1",
"revision": "1",
"createdDate": "2024-07-22T13:22:47.771Z",
"updatedDate": "2024-07-22T13:22:47.771Z",
"name": "Coffee",
"slug": "coffee",
"url": {
"relativePath": "/product-page/coffee",
"url": "https://my.wixsite.com/food-store/product-page/coffee"
},
"description": {
"nodes": [
{
"type": "PARAGRAPH",
"id": "foo",
"nodes": [
{
"type": "TEXT",
"id": "",
"nodes": [],
"textData": {
"text": "Tasty and eco friendly, in a beautiful gift box.",
"decorations": []
}
}
],
"paragraphData": {
"textStyle": {
"textAlignment": "AUTO"
}
}
}
],
"metadata": {
"version": 1,
"id": "fb97b2c1-a3ff-4319-be5f-bbb7fdf0776c"
}
},
"plainDescription": "Tasty and eco friendly, in a beautiful gift box.
",
"visible": true,
"visibleInPos": true,
"media": {
"main": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"image": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"url": "https://static.wixstatic.com/media/370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"height": 1200,
"width": 1200,
"filename": "food.jpeg",
"sizeInBytes": "116752"
},
"uploadId": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg"
},
"itemsInfo": {
"items": [
{
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"image": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"url": "https://static.wixstatic.com/media/370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"height": 1200,
"width": 1200,
"filename": "food.jpeg",
"sizeInBytes": "116752"
},
"uploadId": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg"
},
{
"url": "https://example.jpeg",
"uploadId": "44682905-395a-4c18-8fab-e050725ba3f6"
}
]
}
},
"options": [
{
"id": "85bb0544-63c7-431b-9659-f81b18a7dd9f",
"name": "Size",
"optionRenderType": "TEXT_CHOICES",
"choicesSettings": {
"choices": [
{
"choiceId": "4498b805-2aed-43fb-b478-989c906c19cd",
"linkedMedia": [],
"choiceType": "CHOICE_TEXT",
"key": "S",
"name": "S",
"inStock": true
},
{
"choiceId": "26394ab0-d81a-422f-a8c9-562f49a6b595",
"linkedMedia": [],
"choiceType": "CHOICE_TEXT",
"key": "L",
"name": "L",
"inStock": false
}
]
},
"key": "Size"
},
{
"id": "1938d364-126d-4304-b706-9e9e9f6d376f",
"name": "Box color",
"optionRenderType": "SWATCH_CHOICES",
"choicesSettings": {
"choices": [
{
"choiceId": "2e98f13b-ae65-4d30-96c5-ac3a6cf99d60",
"linkedMedia": [],
"choiceType": "ONE_COLOR",
"key": "red",
"name": "red",
"colorCode": "#FF0000",
"inStock": true
},
{
"choiceId": "4876dcc7-817e-4c10-a6b2-4a4cc2e241e6",
"linkedMedia": [],
"choiceType": "ONE_COLOR",
"key": "blue",
"name": "blue",
"colorCode": "#0000FF",
"inStock": false
}
]
},
"key": "Box color"
}
],
"modifiers": [
{
"id": "1d628610-6963-43c0-862a-f823142b00a0",
"name": "Engraving",
"modifierRenderType": "FREE_TEXT",
"mandatory": false,
"freeTextSettings": {
"minCharCount": 0,
"maxCharCount": 499,
"title": "Would you like to engrave something on the box?",
"key": "Would you like to engrave something on the box?"
},
"key": "Engraving"
},
{
"id": "a3d249f0-a8da-425d-9ec1-3c51c795d927",
"name": "Remove price tag",
"modifierRenderType": "TEXT_CHOICES",
"mandatory": false,
"choicesSettings": {
"choices": [
{
"choiceId": "3050481e-e177-4031-bbe9-be9b00af14b5",
"linkedMedia": [],
"choiceType": "CHOICE_TEXT",
"key": "yes",
"name": "yes"
},
{
"choiceId": "ee729b74-d500-4594-aae5-b5a2e75bf5e7",
"linkedMedia": [],
"choiceType": "CHOICE_TEXT",
"key": "no",
"name": "no"
}
]
},
"key": "Remove price tag"
}
],
"brand": {
"id": "4a16d28d-1736-41f0-87d8-995f6d9a5bdd",
"name": "EcoCoffee"
},
"infoSections": [
{
"id": "59954f23-fbcd-42e5-ba61-7c8cf9d8b409",
"uniqueName": "Coffee refund",
"title": "Refund policy",
"description": {
"nodes": [
{
"type": "PARAGRAPH",
"id": "xjkk51429",
"nodes": [
{
"type": "TEXT",
"id": "",
"nodes": [],
"textData": {
"text": "2 weeks full refund unless you asked for engraving ",
"decorations": []
}
}
],
"paragraphData": {}
}
],
"metadata": {
"version": 1
},
"documentStyle": {}
},
"plainDescription": "2 weeks full refund unless you asked for engraving
"
}
],
"ribbon": {
"id": "826aec2a-771b-45a6-9f72-392da18fd3bf",
"name": "best seller"
},
"directCategoriesInfo": {
"categories": []
},
"allCategoriesInfo": {
"categories": []
},
"compareAtPriceRange": {
"minValue": {
"amount": "10",
"formattedAmount": "$10.00"
},
"maxValue": {
"amount": "15",
"formattedAmount": "$15.00"
}
},
"actualPriceRange": {
"minValue": {
"amount": "9",
"formattedAmount": "$9.00"
},
"maxValue": {
"amount": "15",
"formattedAmount": "$15.00"
}
},
"costRange": {
"minValue": {
"amount": "0.0",
"formattedAmount": "$0.00"
},
"maxValue": {
"amount": "10",
"formattedAmount": "$10.00"
}
},
"inventory": {
"availabilityStatus": "OUT_OF_STOCK",
"preorderAvailability": "NO_VARIANTS",
"preorderStatus": "DISABLED"
},
"productType": "PHYSICAL",
"physicalProperties": {
"pricePerUnit": {
"quantity": 1.0,
"measurementUnit": "KG"
},
"shippingWeightRange": {
"minValue": 0.2,
"maxValue": 0.4
},
"weightMeasurementUnitInfo": {
"weightMeasurementUnit": "KG"
}
},
"currency": "USD",
"variantsInfo": {
"variants": [
{
"id": "0a186a72-d289-446a-aa51-adf125d30dc6",
"visible": true,
"sku": "c-s-r-1111",
"barcode": "111111111",
"choices": [
{
"optionChoiceIds": {
"optionId": "85bb0544-63c7-431b-9659-f81b18a7dd9f",
"choiceId": "4498b805-2aed-43fb-b478-989c906c19cd"
},
"optionChoiceNames": {
"optionName": "Size",
"choiceName": "S",
"renderType": "TEXT_CHOICES"
}
},
{
"optionChoiceIds": {
"optionId": "1938d364-126d-4304-b706-9e9e9f6d376f",
"choiceId": "2e98f13b-ae65-4d30-96c5-ac3a6cf99d60"
},
"optionChoiceNames": {
"optionName": "Box color",
"choiceName": "red",
"renderType": "SWATCH_CHOICES"
}
}
],
"price": {
"compareAtPrice": {
"amount": "10",
"formattedAmount": "$10.00"
},
"actualPrice": {
"amount": "9",
"formattedAmount": "$9.00"
}
},
"revenueDetails": {
"cost": {
"amount": "8",
"formattedAmount": "$8.00"
},
"profit": {
"amount": "1",
"formattedAmount": "$1.00"
},
"profitMargin": 0.1111
},
"media": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"image": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"url": "https://static.wixstatic.com/media/370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"height": 1200,
"width": 1200,
"filename": "food.jpeg",
"sizeInBytes": "116752"
},
"uploadId": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg"
},
"physicalProperties": {
"weight": 0.2,
"pricePerUnit": {
"settings": {
"quantity": 150.0,
"measurementUnit": "G"
},
"value": "60.00",
"description": "$60.00/1 kg"
}
},
"subscriptionPricesInfo": {
"subscriptionPrices": []
}
},
{
"id": "5aace0e6-4bab-4d0e-a595-1bcaa01d2377",
"visible": true,
"barcode": "111111112",
"choices": [
{
"optionChoiceIds": {
"optionId": "85bb0544-63c7-431b-9659-f81b18a7dd9f",
"choiceId": "4498b805-2aed-43fb-b478-989c906c19cd"
},
"optionChoiceNames": {
"optionName": "Size",
"choiceName": "S",
"renderType": "TEXT_CHOICES"
}
},
{
"optionChoiceIds": {
"optionId": "1938d364-126d-4304-b706-9e9e9f6d376f",
"choiceId": "4876dcc7-817e-4c10-a6b2-4a4cc2e241e6"
},
"optionChoiceNames": {
"optionName": "Box color",
"choiceName": "blue",
"renderType": "SWATCH_CHOICES"
}
}
],
"price": {
"compareAtPrice": {
"amount": "10",
"formattedAmount": "$10.00"
},
"actualPrice": {
"amount": "9.5",
"formattedAmount": "$9.50"
}
},
"revenueDetails": {
"cost": {
"amount": "8",
"formattedAmount": "$8.00"
},
"profit": {
"amount": "1.5",
"formattedAmount": "$1.50"
},
"profitMargin": 0.1579
},
"media": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"image": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"url": "https://static.wixstatic.com/media/370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"height": 1200,
"width": 1200,
"filename": "food.jpeg",
"sizeInBytes": "116752"
},
"uploadId": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg"
},
"physicalProperties": {
"weight": 0.2,
"pricePerUnit": {
"settings": {
"quantity": 150.0,
"measurementUnit": "G"
},
"value": "63.33",
"description": "$63.33/1 kg"
}
},
"subscriptionPricesInfo": {
"subscriptionPrices": []
}
},
{
"id": "1d2acec3-5294-4521-a648-6f2ed5f58c43",
"visible": false,
"barcode": "111111113",
"choices": [
{
"optionChoiceIds": {
"optionId": "85bb0544-63c7-431b-9659-f81b18a7dd9f",
"choiceId": "26394ab0-d81a-422f-a8c9-562f49a6b595"
},
"optionChoiceNames": {
"optionName": "Size",
"choiceName": "L",
"renderType": "TEXT_CHOICES"
}
},
{
"optionChoiceIds": {
"optionId": "1938d364-126d-4304-b706-9e9e9f6d376f",
"choiceId": "2e98f13b-ae65-4d30-96c5-ac3a6cf99d60"
},
"optionChoiceNames": {
"optionName": "Box color",
"choiceName": "red",
"renderType": "SWATCH_CHOICES"
}
}
],
"price": {
"compareAtPrice": {
"amount": "15",
"formattedAmount": "$15.00"
},
"actualPrice": {
"amount": "14",
"formattedAmount": "$14.00"
}
},
"revenueDetails": {
"cost": {
"amount": "10",
"formattedAmount": "$10.00"
},
"profit": {
"amount": "4",
"formattedAmount": "$4.00"
},
"profitMargin": 0.2857
},
"media": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"image": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"url": "https://static.wixstatic.com/media/370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"height": 1200,
"width": 1200,
"filename": "food.jpeg",
"sizeInBytes": "116752"
},
"uploadId": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg"
},
"physicalProperties": {
"weight": 0.4,
"pricePerUnit": {
"settings": {
"quantity": 300.0,
"measurementUnit": "G"
},
"value": "46.67",
"description": "$46.67/1 kg"
}
},
"subscriptionPricesInfo": {
"subscriptionPrices": []
}
},
{
"id": "5c390d11-8d35-48e3-8037-428812e0426c",
"visible": true,
"barcode": "111111114",
"choices": [
{
"optionChoiceIds": {
"optionId": "85bb0544-63c7-431b-9659-f81b18a7dd9f",
"choiceId": "26394ab0-d81a-422f-a8c9-562f49a6b595"
},
"optionChoiceNames": {
"optionName": "Size",
"choiceName": "L",
"renderType": "TEXT_CHOICES"
}
},
{
"optionChoiceIds": {
"optionId": "1938d364-126d-4304-b706-9e9e9f6d376f",
"choiceId": "4876dcc7-817e-4c10-a6b2-4a4cc2e241e6"
},
"optionChoiceNames": {
"optionName": "Box color",
"choiceName": "blue",
"renderType": "SWATCH_CHOICES"
}
}
],
"price": {
"compareAtPrice": null,
"actualPrice": {
"amount": "15",
"formattedAmount": "$15.00"
}
},
"media": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"image": {
"id": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"url": "https://static.wixstatic.com/media/370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg",
"height": 1200,
"width": 1200,
"filename": "food.jpeg",
"sizeInBytes": "116752"
},
"uploadId": "370e1a_c65292a0c0584c26aa32d9d921302af9~mv2.jpeg"
},
"physicalProperties": {
"weight": 0.4,
"pricePerUnit": {
"settings": {
"quantity": 300.0,
"measurementUnit": "G"
},
"value": "50.00",
"description": "$50.00/1 kg"
}
},
"subscriptionPricesInfo": {
"subscriptionPrices": []
}
}
]
}
}
},
"eventTime": "2024-07-22T13:22:47.923240503Z",
"triggeredByAnonymizeRequest": false,
"entityEventSequence": "1"
}
```
---
## JavaScript SDK
### Schema
```
Webhook: onProductCreated
Description:
Payload: ProductCreatedEnvelope
- name: entity | type: Product | description: none
- ONE-OF:
- name: physicalProperties | type: PhysicalProperties | description: Physical properties. Required when `productType: PHYSICAL`.
- name: pricePerUnit | type: PricePerUnitSettings | description: Price per unit settings. > **Note:** Use this field only when relevant. For example, for products that are sold by weight, volume, or length.
- name: quantity | type: number | description: Quantity. For example, to define price per per 100 grams, set this field to `100`.
- name: measurementUnit | type: MeasurementUnit | description: Measurement unit. For example, to define price per 100 grams, set this field to "G".
- enum: UNSPECIFIED, ML, CL, L, CBM, MG, G, KG, MM, CM, M, SQM, OZ, LB, FLOZ, PT, QT, GAL, IN, FT, YD, SQFT
- name: fulfillerId | type: string | description: Fulfiller GUID.
- name: shippingWeightRange | type: WeightRange | description: Product shipping weight range - Calculated from the lightest and heaviest variant shipping weights.
- name: minValue | type: number | description: Minimum weight across all variants associated with this product.
- name: maxValue | type: number | description: Maximum weight across all variants associated with this product.
- name: pricePerUnitRange | type: PricePerUnitRange | description: Product price per unit range. The minimum and maximum price per unit of all the variants.
- name: minValue | type: PricePerUnit | description: Minimum price per unit across all variants.
- name: value | type: string | description: Calculated value of price per unit. Takes into account pricePerUnit settings of product and variants and price of variants. For example if discounted price is 2$, product's price per unit setting is 1 Kg, variant price per unit setting is 0.5 Kg then this value is 4$ (means variant weight is 0.5 Kg and it costs 2$ but we want to show price per 1 Kg so we show 4$).
- name: description | type: string | description: Price per unit info in the format of variant specific data / product setting, for example €4.00 / 1 Kg. > **Note:** This field is returned by the API only when you pass `fields: "CURRENCY"` in a request.
- name: maxValue | type: PricePerUnit | description: Maximum price per unit across all variants.
- name: weightMeasurementUnitInfo | type: WeightMeasurementUnitInfo | description: Weight measurement unit. > **Note:** Returned only when you pass `"WEIGHT_MEASUREMENT_UNIT_INFO"` to the `fields` array in Products API requests.
- name: weightMeasurementUnit | type: WeightUnit | description: Weight measurement unit.
- enum:
- UNSPECIFIED_WEIGHT_UNIT: Weight unit can't be classified due to an error.
- KG: Kilograms.
- LB: Pounds.
- name: deliveryProfileId | type: string | description: Delivery profile GUID.
- name: _id | type: string | description: Product GUID.
- name: revision | type: string | description: 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.
- name: _createdDate | type: Date | description: Date and time the product was created.
- name: _updatedDate | type: Date | description: Date and time the product was updated.
- name: name | type: string | description: Product name. Translatable.
- name: slug | type: string | description: Product slug. If not provided, the slug is autogenerated based on the product name.
- name: url | type: string | description: URL to the site's product page. > **Note:** Returned only when you pass `"URL"` to the `fields` array in Products API requests.
- name: description | type: RichContent | description: Product description using rich content. > **Note:** Returned only when you pass `"DESCRIPTION"` to the `fields` array in Products API requests. See.md Ricos document reference
- name: nodes | type: array | description: Node objects representing a rich content document.
- ONE-OF:
- name: buttonData | type: ButtonData | description: Data for a button node.
- name: containerData | type: PluginContainerData | description: Styling for the button's container.
- name: width | type: Width | description: The width of the node when it's displayed.
- ONE-OF:
- name: size | type: Type | description: One of the following predefined width options: `CONTENT`: The width of the container matches the content width. `SMALL`: A small width. `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width. `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.
- enum:
- CONTENT: Width matches the content width
- SMALL: Small Width
- ORIGINAL: Width will match the original asset width
- FULL_WIDTH: coast-to-coast display
- name: custom | type: string | description: A custom width value in pixels.
- name: alignment | type: Alignment | description: The node's alignment within its container.
- enum:
- CENTER: Center Alignment
- LEFT: Left Alignment
- RIGHT: Right Alignment
- name: spoiler | type: Spoiler | description: Spoiler cover settings for the node.
- name: enabled | type: boolean | description: Sets whether the spoiler cover is enabled for this node. Defaults to `false`.
- name: description | type: string | description: The description displayed on top of the spoiler cover.
- name: buttonText | type: string | description: The text for the button used to remove the spoiler cover.
- name: height | type: Height | description: The height of the node when it's displayed.
- name: custom | type: string | description: A custom height value in pixels.
- name: textWrap | type: boolean | description: Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`.
- name: type | type: Type | description: The button type.
- enum:
- LINK: Regular link button
- ACTION: Triggers custom action that is defined in plugin configuration by the consumer
- name: styles | type: Styles | description: Styling for the button.
- name: borderWidth | type: integer | description: Border width in pixels.
- name: borderRadius | type: integer | description: Border radius in pixels.
- name: borderColor | type: string | description: Border color as a hexadecimal value.
- name: borderColorHover | type: string | description: Border color as a hexadecimal value (hover state).
- name: textColor | type: string | description: Text color as a hexadecimal value.
- name: textColorHover | type: string | description: Text color as a hexadecimal value (hover state).
- name: buttonSize | type: string | description: Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`.
- name: background | type: Background | description: Background styling (color or gradient).
- name: type | type: Type | description: Background type.
- enum:
- COLOR: Solid color background
- GRADIENT: Gradient background
- name: color | type: string | description: Background color as a hexadecimal value.
- name: gradient | type: Gradient | description: Gradient configuration.
- name: type | type: Type | description: Gradient type.
- enum:
- LINEAR: Linear gradient.
- RADIAL: Radial gradient.
- name: stops | type: array | description: Color stops for the gradient.
- name: color | type: string | description: Stop color as hex value.
- name: position | type: number | description: Stop position (0-1).
- name: angle | type: integer | description: Angle in degrees for linear gradient (0-360).
- name: centerX | type: number | description: Horizontal center position for radial gradient (0-100).
- name: centerY | type: number | description: Vertical center position for radial gradient (0-100).
- name: backgroundHover | type: Background | description: Background styling for hover state (color or gradient).
- name: text | type: string | description: The text to display on the button.
- name: link | type: Link | description: Button link details.
- ONE-OF:
- name: url | type: string | description: The absolute URL for the linked document.
- name: anchor | type: string | description: The target node's GUID. Used for linking to another node in this object.
- name: target | type: Target | description: he HTML `target` attribute value for the link. This property defines where the linked document opens as follows: `SELF` - Default. Opens the linked document in the same frame as the link. `BLANK` - Opens the linked document in a new browser tab or window. `PARENT` - Opens the linked document in the link's parent frame. `TOP` - Opens the linked document in the full body of the link's browser tab or window.
- enum:
- SELF: Opens the linked document in the same frame as it was clicked (this is default)
- BLANK: Opens the linked document in a new window or tab
- PARENT: Opens the linked document in the parent frame
- TOP: Opens the linked document in the full body of the window
- name: rel | type: Rel | description: The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document.
- name: nofollow | type: boolean | description: Indicates to search engine crawlers not to follow the link. Defaults to `false`.
- name: sponsored | type: boolean | description: Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`.
- name: ugc | type: boolean | description: Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`.
- name: noreferrer | type: boolean | description: Indicates that this link protect referral information from being passed to the target website.
- name: customData | type: string | description: A serialized object used for a custom or external link panel.
- name: codeBlockData | type: CodeBlockData | description: Data for a code block node.
- name: textStyle | type: TextStyle | description: Styling for the code block's text.
- name: textAlignment | type: TextAlignment | description: Text alignment. Defaults to `AUTO`.
- enum:
- AUTO: browser default, eqivalent to `initial`
- LEFT: Left align
- RIGHT: Right align
- CENTER: Center align
- JUSTIFY: Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line
- name: lineHeight | type: string | description: A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px.
- name: dividerData | type: DividerData | description: Data for a divider node.
- name: containerData | type: PluginContainerData | description: Styling for the divider's container.
- name: lineStyle | type: LineStyle | description: Divider line style.
- enum:
- SINGLE: Single Line
- DOUBLE: Double Line
- DASHED: Dashed Line
- DOTTED: Dotted Line
- name: width | type: Width | description: Divider width.
- enum:
- LARGE: Large line
- MEDIUM: Medium line
- SMALL: Small line
- name: alignment | type: Alignment | description: Divider alignment.
- enum:
- CENTER: Center alignment
- LEFT: Left alignment
- RIGHT: Right alignment
- name: fileData | type: FileData | description: Data for a file node.
- name: containerData | type: PluginContainerData | description: Styling for the file's container.
- name: src | type: FileSource | description: The source for the file's data.
- ONE-OF:
- name: url | type: string | description: The absolute URL for the file's source.
- name: _id | type: string | description: An GUID that's resolved to a URL by a resolver function.
- name: private | type: boolean | description: Indicates whether the file's source is private. Defaults to `false`.
- name: name | type: string | description: File name.
- name: type | type: string | description: File type.
- name: pdfSettings | type: PDFSettings | description: Settings for PDF files.
- name: viewMode | type: ViewMode | description: PDF view mode. One of the following: `NONE` : The PDF isn't displayed. `FULL` : A full page view of the PDF is displayed. `MINI` : A mini view of the PDF is displayed.
- enum:
- NONE: No PDF view
- FULL: Full PDF view
- MINI: Mini PDF view
- name: disableDownload | type: boolean | description: Sets whether the PDF download button is disabled. Defaults to `false`.
- name: disablePrint | type: boolean | description: Sets whether the PDF print button is disabled. Defaults to `false`.
- name: mimeType | type: string | description: File MIME type.
- name: path | type: string | description: File path.
- name: sizeInKb | type: string | description: File size in KB.
- name: galleryData | type: GalleryData | description: Data for a gallery node.
- name: containerData | type: PluginContainerData | description: Styling for the gallery's container.
- name: items | type: array- | description: The items in the gallery.
- ONE-OF:
- name: image | type: Image | description: An image item.
- name: media | type: Media | description: Image file details.
- name: src | type: FileSource | description: The source for the media's data.
- name: width | type: integer | description: Media width in pixels.
- name: height | type: integer | description: Media height in pixels.
- name: duration | type: number | description: Media duration in seconds. Only relevant for audio and video files.
- name: link | type: Link | description: Link details for images that are links.
- name: video | type: Video | description: A video item.
- name: media | type: Media | description: Video file details.
- name: thumbnail | type: Media | description: Video thumbnail file details.
- name: title | type: string | description: Item title.
- name: altText | type: string | description: Item's alternative text.
- name: options | type: GalleryOptions | description: Options for defining the gallery's appearance.
- name: layout | type: Layout | description: Gallery layout.
- name: type | type: Type | description: Gallery layout type.
- enum:
- COLLAGE: Collage type
- MASONRY: Masonry type
- GRID: Grid type
- THUMBNAIL: Thumbnail type
- SLIDER: Slider type
- SLIDESHOW: Slideshow type
- PANORAMA: Panorama type
- COLUMN: Column type
- MAGIC: Magic type
- FULLSIZE: Fullsize images type
- name: horizontalScroll | type: boolean | description: Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`.
- name: orientation | type: Orientation | description: Gallery orientation.
- enum:
- ROWS: Rows Orientation
- COLUMNS: Columns Orientation
- name: numberOfColumns | type: integer | description: The number of columns to display on full size screens.
- name: mobileNumberOfColumns | type: integer | description: The number of columns to display on mobile screens.
- name: item | type: ItemStyle | description: Styling for gallery items.
- name: targetSize | type: integer | description: Desirable dimension for each item in pixels (behvaior changes according to gallery type)
- name: ratio | type: number | description: Item ratio
- name: crop | type: Crop | description: Sets how item images are cropped.
- enum:
- FILL: Crop to fill
- FIT: Crop to fit
- name: spacing | type: integer | description: The spacing between items in pixels.
- name: thumbnails | type: Thumbnails | description: Styling for gallery thumbnail images.
- name: placement | type: Alignment | description: Thumbnail alignment.
- enum:
- TOP: Top alignment
- RIGHT: Right alignment
- BOTTOM: Bottom alignment
- LEFT: Left alignment
- NONE: No thumbnail
- name: spacing | type: integer | description: Spacing between thumbnails in pixels.
- name: disableExpand | type: boolean | description: Sets whether the gallery's expand button is disabled. Defaults to `false`.
- name: disableDownload | type: boolean | description: Sets whether the gallery's download button is disabled. Defaults to `false`.
- name: gifData | type: GIFData | description: Data for a GIF node.
- name: containerData | type: PluginContainerData | description: Styling for the GIF's container.
- name: original | type: GIF | description: The source of the full size GIF.
- name: gif | type: string | description: GIF format URL.
- name: mp4 | type: string | description: MP4 format URL.
- name: still | type: string | description: Thumbnail URL.
- name: downsized | type: GIF | description: The source of the downsized GIF.
- name: height | type: integer | description: Height in pixels.
- name: width | type: integer | description: Width in pixels.
- name: gifType | type: GIFType | description: Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`.
- enum: NORMAL, STICKER
- name: headingData | type: HeadingData | description: Data for a heading node.
- name: level | type: integer | description: Heading level from 1-6.
- name: textStyle | type: TextStyle | description: Styling for the heading text.
- name: indentation | type: integer | description: Indentation level from 1-4.
- name: renderedLevel | type: integer | description: Rendered heading level for SEO/accessibility, overrides the HTML tag when set.
- name: htmlData | type: HTMLData | description: Data for an embedded HTML node.
- ONE-OF:
- name: url | type: string | description: The URL for the HTML code for the node.
- name: html | type: string | description: The HTML code for the node.
- name: widgetId | type: string | description: The WixelWidget GUID for AI_WIDGET source nodes.
- name: containerData | type: PluginContainerData | description: Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`.
- name: source | type: Source | description: The type of HTML code.
- enum: HTML, ADSENSE, AI, AI_WIDGET
- name: autoHeight | type: boolean | description: If container height is aligned with its content height. Defaults to `true`.
- name: imageData | type: ImageData | description: Data for an image node.
- name: containerData | type: PluginContainerData | description: Styling for the image's container.
- name: image | type: Media | description: Image file details.
- name: link | type: Link | description: Link details for images that are links.
- name: disableExpand | type: boolean | description: Sets whether the image expands to full screen when clicked. Defaults to `false`.
- name: altText | type: string | description: Image's alternative text.
- name: disableDownload | type: boolean | description: Sets whether the image's download button is disabled. Defaults to `false`.
- name: decorative | type: boolean | description: Sets whether the image is decorative and does not need an explanation. Defaults to `false`.
- name: styles | type: Styles | description: Styling for the image.
- name: border | type: Border | description: Border attributes.
- name: width | type: integer | description: Border width in pixels.
- name: color | type: string | description: Border color as a hexadecimal value.
- name: radius | type: integer | description: Border radius in pixels.
- name: linkPreviewData | type: LinkPreviewData | description: Data for a link preview node.
- name: containerData | type: PluginContainerData | description: Styling for the link preview's container.
- name: link | type: Link | description: Link details.
- name: title | type: string | description: Preview title.
- name: thumbnailUrl | type: string | description: Preview thumbnail URL.
- name: description | type: string | description: Preview description.
- name: html | type: string | description: The preview content as HTML.
- name: styles | type: Styles | description: Styling for the link preview.
- name: backgroundColor | type: string | description: Background color as a hexadecimal value.
- name: titleColor | type: string | description: Title color as a hexadecimal value.
- name: subtitleColor | type: string | description: Subtitle color as a hexadecimal value.
- name: linkColor | type: string | description: Link color as a hexadecimal value.
- name: borderWidth | type: integer | description: Border width in pixels.
- name: borderRadius | type: integer | description: Border radius in pixels.
- name: borderColor | type: string | description: Border color as a hexadecimal value.
- name: thumbnailPosition | type: Position | description: Position of thumbnail. Defaults to `START`.
- enum:
- START: Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts)
- END: Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts)
- TOP: Thumbnail positioned at the top
- HIDDEN: Thumbnail hidden and not displayed
- name: paragraphData | type: ParagraphData | description: Data for a paragraph node.
- name: textStyle | type: TextStyle | description: Styling for the paragraph text.
- name: indentation | type: integer | description: Indentation level from 1-4.
- name: level | type: integer | description: Paragraph level
- name: pollData | type: PollData | description: Data for a poll node.
- name: containerData | type: PluginContainerData | description: Styling for the poll's container.
- name: poll | type: Poll | description: Poll data.
- name: _id | type: string | description: Poll GUID.
- name: title | type: string | description: Poll title.
- name: creatorId | type: string | description: Poll creator GUID.
- name: image | type: Media | description: Main poll image.
- name: options | type: array
| description: Voting options.
- name: _id | type: string | description: Option GUID.
- name: title | type: string | description: Option title.
- name: image | type: Media | description: The image displayed with the option.
- name: settings | type: Settings | description: The poll's permissions and display settings.
- name: permissions | type: Permissions | description: Permissions settings for voting.
- name: view | type: ViewRole | description: Sets who can view the poll results.
- enum:
- CREATOR: Only Poll creator can view the results
- VOTERS: Anyone who voted can see the results
- EVERYONE: Anyone can see the results, even if one didn't vote
- name: vote | type: VoteRole | description: Sets who can vote.
- enum:
- SITE_MEMBERS: Logged in member
- ALL: Anyone
- name: allowMultipleVotes | type: boolean | description: Sets whether one voter can vote multiple times. Defaults to `false`.
- name: showVoters | type: boolean | description: Sets whether voters are displayed in the vote results. Defaults to `true`.
- name: showVotesCount | type: boolean | description: Sets whether the vote count is displayed. Defaults to `true`.
- name: layout | type: Layout | description: Layout settings for the poll and voting options.
- name: poll | type: PollLayout | description: Poll layout settings.
- name: type | type: Type | description: The layout for displaying the voting options.
- enum:
- LIST: List
- GRID: Grid
- name: direction | type: Direction | description: The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right.
- enum:
- LTR: Left-to-right
- RTL: Right-to-left
- name: enableImage | type: boolean | description: Sets whether to display the main poll image. Defaults to `false`.
- name: options | type: OptionLayout | description: Voting otpions layout settings.
- name: enableImage | type: boolean | description: Sets whether to display option images. Defaults to `false`.
- name: design | type: Design | description: Styling for the poll and voting options.
- name: poll | type: PollDesign | description: Styling for the poll.
- name: background | type: Background | description: Background styling.
- ONE-OF:
- name: color | type: string | description: The background color as a hexademical value.
- name: image | type: Media | description: An image to use for the background.
- name: gradient | type: Gradient | description: Details for a gradient background.
- name: angle | type: integer | description: The gradient angle in degrees.
- name: startColor | type: string | description: The start color as a hexademical value.
- name: lastColor | type: string | description: The end color as a hexademical value.
- name: type | type: Type | description: Background type. For each option, include the relevant details.
- enum:
- COLOR: Color background type
- IMAGE: Image background type
- GRADIENT: Gradiant background type
- name: borderRadius | type: integer | description: Border radius in pixels.
- name: options | type: OptionDesign | description: Styling for voting options.
- name: borderRadius | type: integer | description: Border radius in pixels.
- name: textData | type: TextData | description: Data for a text node. Used to apply decorations to text.
- name: text | type: string | description: The text to apply decorations to.
- name: decorations | type: array | description: The decorations to apply.
- ONE-OF:
- name: anchorData | type: AnchorData | description: Data for an anchor link decoration.
- name: anchor | type: string | description: The target node's GUID.
- name: colorData | type: ColorData | description: Data for a color decoration.
- name: background | type: string | description: The text's background color as a hexadecimal value.
- name: foreground | type: string | description: The text's foreground color as a hexadecimal value.
- name: linkData | type: LinkData | description: Data for an external link decoration.
- name: link | type: Link | description: Link details.
- name: mentionData | type: MentionData | description: Data for a mention decoration.
- name: name | type: string | description: The mentioned user's name.
- name: slug | type: string | description: The version of the user's name that appears after the `@` character in the mention.
- name: _id | type: string | description: Mentioned user's GUID.
- name: fontSizeData | type: FontSizeData | description: Data for a font size decoration.
- name: unit | type: fontType | description: The units used for the font size.
- enum: PX, EM
- name: value | type: integer | description: Font size value.
- name: fontWeightValue | type: integer | description: Font weight for a bold decoration.
- name: italicData | type: boolean | description: Data for an italic decoration. Defaults to `true`.
- name: underlineData | type: boolean | description: Data for an underline decoration. Defaults to `true`.
- name: spoilerData | type: SpoilerData | description: Data for a spoiler decoration.
- name: _id | type: string | description: Spoiler GUID.
- name: strikethroughData | type: boolean | description: Data for a strikethrough decoration. Defaults to `true`.
- name: superscriptData | type: boolean | description: Data for a superscript decoration. Defaults to `true`.
- name: subscriptData | type: boolean | description: Data for a subscript decoration. Defaults to `true`.
- name: fontFamilyData | type: FontFamilyData | description: Data for a font family decoration.
- name: value | type: string | description:
- name: type | type: Type | description: The type of decoration to apply.
- enum: BOLD, ITALIC, UNDERLINE, SPOILER, ANCHOR, MENTION, LINK, COLOR, FONT_SIZE, EXTERNAL, STRIKETHROUGH, SUPERSCRIPT, SUBSCRIPT, FONT_FAMILY
- name: appEmbedData | type: AppEmbedData | description: Data for an app embed node.
- ONE-OF:
- name: bookingData | type: BookingData | description: Data for embedded Wix Bookings content.
- name: durations | type: string | description: Booking duration in minutes.
- name: eventData | type: EventData | description: Data for embedded Wix Events content.
- name: scheduling | type: string | description: Event schedule.
- name: location | type: string | description: Event location.
- name: type | type: AppType | description: The type of Wix App content being embedded.
- enum: PRODUCT, EVENT, BOOKING
- name: itemId | type: string | description: The GUID of the embedded content.
- name: name | type: string | description: The name of the embedded content.
- name: url | type: string | description: The URL for the embedded content.
- name: image | type: Media | description: An image for the embedded content.
- name: hideImage | type: boolean | description: Whether to hide the image.
- name: hideTitle | type: boolean | description: Whether to hide the title.
- name: hidePrice | type: boolean | description: Whether to hide the price.
- name: hideDescription | type: boolean | description: Whether to hide the description (Event and Booking).
- name: hideDateTime | type: boolean | description: Whether to hide the date and time (Event).
- name: hideLocation | type: boolean | description: Whether to hide the location (Event).
- name: hideDuration | type: boolean | description: Whether to hide the duration (Booking).
- name: hideButton | type: boolean | description: Whether to hide the button.
- name: hideRibbon | type: boolean | description: Whether to hide the ribbon.
- name: buttonStyles | type: ButtonStyles | description: Button styling options.
- name: buttonText | type: string | description: Text to display on the button.
- name: borderWidth | type: integer | description: Border width in pixels.
- name: borderRadius | type: integer | description: Border radius in pixels.
- name: borderColor | type: string | description: Border color as a hexadecimal value.
- name: textColor | type: string | description: Text color as a hexadecimal value.
- name: backgroundColor | type: string | description: Background color as a hexadecimal value.
- name: borderColorHover | type: string | description: Border color as a hexadecimal value (hover state).
- name: textColorHover | type: string | description: Text color as a hexadecimal value (hover state).
- name: backgroundColorHover | type: string | description: Background color as a hexadecimal value (hover state).
- name: buttonSize | type: string | description: Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`.
- name: imageStyles | type: ImageStyles | description: Image styling options.
- name: hideImage | type: boolean | description: Whether to hide the image.
- name: imagePosition | type: Position | description: Position of image. Defaults to `START`.
- enum:
- START: Image positioned at the start (left in LTR layouts, right in RTL layouts)
- END: Image positioned at the end (right in LTR layouts, left in RTL layouts)
- TOP: Image positioned at the top
- name: aspectRatio | type: AspectRatio | description: Aspect ratio for the image. Defaults to `SQUARE`.
- enum:
- SQUARE: 1:1 aspect ratio
- RECTANGLE: 16:9 aspect ratio
- name: resizing | type: Resizing | description: How the image should be resized. Defaults to `FILL`.
- enum:
- FILL: Fill the container, may crop the image
- FIT: Fit the image within the container
- name: borderColor | type: string | description: Image border color as a hexadecimal value.
- name: borderWidth | type: integer | description: Image border width in pixels.
- name: borderRadius | type: integer | description: Image border radius in pixels.
- name: ribbonStyles | type: RibbonStyles | description: Ribbon styling options.
- name: ribbonText | type: string | description: Text to display on the ribbon.
- name: backgroundColor | type: string | description: Ribbon background color as a hexadecimal value.
- name: textColor | type: string | description: Ribbon text color as a hexadecimal value.
- name: borderColor | type: string | description: Ribbon border color as a hexadecimal value.
- name: borderWidth | type: integer | description: Ribbon border width in pixels.
- name: borderRadius | type: integer | description: Ribbon border radius in pixels.
- name: ribbonPlacement | type: Placement | description: Placement of the ribbon. Defaults to `IMAGE`.
- enum:
- IMAGE: Ribbon placed on the image
- PRODUCT_INFO: Ribbon placed on the product information
- name: cardStyles | type: CardStyles | description: Card styling options.
- name: backgroundColor | type: string | description: Card background color as a hexadecimal value.
- name: borderColor | type: string | description: Card border color as a hexadecimal value.
- name: borderWidth | type: integer | description: Card border width in pixels.
- name: borderRadius | type: integer | description: Card border radius in pixels.
- name: type | type: Type | description: Card type. Defaults to `CONTAINED`.
- enum:
- CONTAINED: Card with visible border and background
- FRAMELESS: Card without visible border
- name: alignment | type: Alignment | description: Content alignment. Defaults to `START`.
- enum:
- START: Content aligned to start (left in LTR layouts, right in RTL layouts)
- CENTER: Content centered
- END: Content aligned to end (right in LTR layouts, left in RTL layouts)
- name: titlePriceLayout | type: Layout | description: Layout for title and price. Defaults to `STACKED`.
- enum:
- STACKED: Elements stacked vertically
- SIDE_BY_SIDE: Elements arranged horizontally
- name: titleColor | type: string | description: Title text color as a hexadecimal value.
- name: textColor | type: string | description: Text color as a hexadecimal value.
- name: containerData | type: PluginContainerData | description: Styling for the app embed's container.
- name: pricingData | type: PricingData | description: Pricing data for embedded Wix App content.
- name: valueFrom | type: string | description: Minimum numeric price value as string (e.g., "10.99").
- name: valueTo | type: string | description: Maximum numeric price value as string (e.g., "19.99").
- name: discountedValue | type: string | description: Numeric price value as string after discount application (e.g., "15.99").
- name: currency | type: string | description: Currency of the value in ISO 4217 format (e.g., "USD", "EUR").
- name: pricingPlanId | type: string | description: Pricing plan GUID.
- name: videoData | type: VideoData | description: Data for a video node.
- name: containerData | type: PluginContainerData | description: Styling for the video's container.
- name: video | type: Media | description: Video details.
- name: thumbnail | type: Media | description: Video thumbnail details.
- name: disableDownload | type: boolean | description: Sets whether the video's download button is disabled. Defaults to `false`.
- name: title | type: string | description: Video title.
- name: options | type: PlaybackOptions | description: Video options.
- name: autoPlay | type: boolean | description: Sets whether the media will automatically start playing.
- name: playInLoop | type: boolean | description: Sets whether media's will be looped.
- name: showControls | type: boolean | description: Sets whether media's controls will be shown.
- name: embedData | type: EmbedData | description: Data for an oEmbed node.
- name: containerData | type: PluginContainerData | description: Styling for the oEmbed node's container.
- name: oembed | type: Oembed | description: An [oEmbed](https://www.oembed.com) object.
- name: type | type: string | description: The resource type.
- name: width | type: integer | description: The width of the resource specified in the `url` property in pixels.
- name: height | type: integer | description: The height of the resource specified in the `url` property in pixels.
- name: title | type: string | description: Resource title.
- name: url | type: string | description: The source URL for the resource.
- name: html | type: string | description: HTML for embedding a video player. The HTML should have no padding or margins.
- name: authorName | type: string | description: The name of the author or owner of the resource.
- name: authorUrl | type: string | description: The URL for the author or owner of the resource.
- name: providerName | type: string | description: The name of the resource provider.
- name: providerUrl | type: string | description: The URL for the resource provider.
- name: thumbnailUrl | type: string | description: The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined.
- name: thumbnailWidth | type: string | description: The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined.
- name: thumbnailHeight | type: string | description: The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined.
- name: videoUrl | type: string | description: The URL for an embedded viedo.
- name: version | type: string | description: The oEmbed version number. This value must be `1.0`.
- name: src | type: string | description: Origin asset source.
- name: collapsibleListData | type: CollapsibleListData | description: Data for a collapsible list node.
- name: containerData | type: PluginContainerData | description: Styling for the collapsible list's container.
- name: expandOnlyOne | type: boolean | description: If `true`, only one item can be expanded at a time. Defaults to `false`.
- name: initialExpandedItems | type: InitialExpandedItems | description: Sets which items are expanded when the page loads.
- enum:
- FIRST: First item will be expended initally
- ALL: All items will expended initally
- NONE: All items collapsed initally
- name: direction | type: Direction | description: The direction of the text in the list. Either left-to-right or right-to-left.
- enum:
- LTR: Left-to-right
- RTL: Right-to-left
- name: isQapageData | type: boolean | description: If `true`, The collapsible item will appear in search results as an FAQ.
- name: tableData | type: TableData | description: Data for a table node.
- name: containerData | type: PluginContainerData | description: Styling for the table's container.
- name: dimensions | type: Dimensions | description: The table's dimensions.
- name: colsWidthRatio | type: array | description: An array representing relative width of each column in relation to the other columns.
- name: rowsHeight | type: array | description: An array representing the height of each row in pixels.
- name: colsMinWidth | type: array | description: An array representing the minimum width of each column in pixels.
- name: rowHeader | type: boolean | description: Sets whether the table's first row is a header. Defaults to `false`.
- name: columnHeader | type: boolean | description: Sets whether the table's first column is a header. Defaults to `false`.
- name: cellSpacing | type: integer | description: The spacing between cells in pixels. Defaults to `0`.
- name: cellPadding | type: array | description: Padding in pixels for cells. Follows CSS order: top, right, bottom, left.
- name: altText | type: string | description: Table's alternative text.
- name: tableCellData | type: TableCellData | description: Data for a table cell node.
- name: cellStyle | type: CellStyle | description: Styling for the cell's background color and text alignment.
- name: verticalAlignment | type: VerticalAlignment | description: Vertical alignment for the cell's text.
- enum:
- TOP: Top alignment
- MIDDLE: Middle alignment
- BOTTOM: Bottom alignment
- name: backgroundColor | type: string | description: Cell background color as a hexadecimal value.
- name: borderColors | type: BorderColors | description: The cell's border colors.
- name: left | type: string | description: Left border color as a hexadecimal value.
- name: right | type: string | description: Right border color as a hexadecimal value.
- name: top | type: string | description: Top border color as a hexadecimal value.
- name: bottom | type: string | description: Bottom border color as a hexadecimal value.
- name: colspan | type: integer | description: Defines how many columns the cell spans. Default: 1.
- name: rowspan | type: integer | description: Defines how many rows the cell spans. Default: 1.
- name: borderWidths | type: BorderWidths | description: The cell's border widths.
- name: left | type: integer | description: Left border width in pixels.
- name: right | type: integer | description: Right border width in pixels.
- name: top | type: integer | description: Top border width in pixels.
- name: bottom | type: integer | description: Bottom border width in pixels.
- name: externalData | type: Struct | description: Data for a custom external node.
- name: fields | type: Map | description: An unordered map of dynamically typed values.
- ONE-OF:
- name: nullValue | type: NullValue | description: A null value.
- enum:
- NULL_VALUE: Null value.
- name: numberValue | type: number | description: A double value.
- name: stringValue | type: string | description: A string value.
- name: boolValue | type: boolean | description: A boolean value.
- name: structValue | type: Struct | description: A structured value.
- name: listValue | type: ListValue | description: An array of `value` objects.
- name: values | type: array | description: Repeated field of dynamically typed values.
- name: audioData | type: AudioData | description: Data for an audio node.
- name: containerData | type: PluginContainerData | description: Styling for the audio node's container.
- name: audio | type: Media | description: Audio file details.
- name: disableDownload | type: boolean | description: Sets whether the audio node's download button is disabled. Defaults to `false`.
- name: coverImage | type: Media | description: Cover image.
- name: name | type: string | description: Track name.
- name: authorName | type: string | description: Author name.
- name: html | type: string | description: An HTML version of the audio node.
- name: orderedListData | type: OrderedListData | description: Data for an ordered list node.
- name: indentation | type: integer | description: Indentation level from 0-4.
- name: offset | type: integer | description: Offset level from 0-4.
- name: start | type: integer | description: List start number.
- name: bulletedListData | type: BulletedListData | description: Data for a bulleted list node.
- name: indentation | type: integer | description: Indentation level from 0-4.
- name: offset | type: integer | description: Offset level from 0-4.
- name: blockquoteData | type: BlockquoteData | description: Data for a block quote node.
- name: indentation | type: integer | description: Indentation level from 1-4.
- name: captionData | type: CaptionData | description: Data for a caption node.
- name: textStyle | type: TextStyle | description:
- name: layoutData | type: LayoutData | description: Data for a layout node. Reserved for future use.
- name: backgroundImage | type: BackgroundImage | description: Background image.
- name: media | type: Media | description: Background image.
- name: opacity | type: integer | description: Background image opacity.
- name: scaling | type: Scaling | description: Background image scaling.
- enum:
- AUTO: Auto image scaling
- CONTAIN: Contain image scaling
- COVER: Cover image scaling
- name: position | type: ImagePosition | description: Position of background. Defaults to `CENTER`.
- enum:
- CENTER: Image positioned at the center
- CENTER_LEFT: Image positioned on the left
- CENTER_RIGHT: Image positioned on the right
- TOP: Image positioned at the center top
- TOP_LEFT: Image positioned at the top left
- TOP_RIGHT: Image positioned at the top right
- BOTTOM: Image positioned at the center bottom
- BOTTOM_LEFT: Image positioned at the bottom left
- BOTTOM_RIGHT: Image positioned at the bottom right
- name: borderColor | type: string | description: Border color as a hexadecimal value.
- name: borderWidth | type: integer | description: Border width in pixels.
- name: borderRadius | type: integer | description: Border radius in pixels.
- name: backdropImage | type: BackgroundImage | description: Backdrop image.
- name: backdropPaddingTop | type: integer | description: Backdrop top padding.
- name: backdropPaddingBottom | type: integer | description: Backdrop bottom padding
- name: gap | type: integer | description: Horizontal and vertical gap between columns
- name: cellPadding | type: array | description: Padding in pixels for cells. Follows CSS order: top, right, bottom, left
- name: cellVerticalAlignment | type: Alignment | description: Vertical alignment for the cell's items.
- enum:
- TOP: Top alignment
- MIDDLE: Middle alignment
- BOTTOM: Bottom alignment
- name: responsivenessBehaviour | type: ResponsivenessBehaviour | description: Responsiveness behaviour of columns when responsiveness applies. Either stacks or wrappers.
- enum:
- STACK: Stacking of columns
- WRAP: Wrapping of columns
- name: responsivenessBreakpoint | type: integer | description: Size in pixels when responsiveness_behaviour applies
- name: containerData | type: PluginContainerData | description: Styling for the layout's container.
- name: designTarget | type: DesignTarget | description: Defines where selected design propertied applies to
- enum:
- LAYOUT: Design applied to layout
- CELL: Design applied to cells
- name: banner | type: Banner | description: Banner configuration. When present, this layout is attached to a document edge (top or bottom).
- name: origin | type: Origin | description: Origin of the banner
- enum:
- IMAGE: Banner originated from an image
- LAYOUT: Banner originated from a layout
- name: position | type: Position | description: Position of the banner
- enum:
- TOP: Attached to the top edge (banner)
- BOTTOM: Attached to the bottom edge (footer)
- name: background | type: Background | description: Background styling (color or gradient).
- name: type | type: Type | description: Background type.
- enum:
- COLOR: Solid color background
- GRADIENT: Gradient background
- name: color | type: string | description: Background color as a hexadecimal value.
- name: gradient | type: Gradient | description: Gradient configuration.
- name: backdrop | type: Backdrop | description: Backdrop styling (color or gradient).
- name: type | type: Type | description: Backdrop type.
- enum:
- COLOR: Solid color backdrop
- GRADIENT: Gradient backdrop
- name: color | type: string | description: Backdrop color as a hexadecimal value.
- name: gradient | type: Gradient | description: Gradient configuration.
- name: layoutCellData | type: LayoutCellData | description: Data for a cell node.
- name: colSpan | type: integer | description: Size of the cell in 12 columns grid.
- name: shapeData | type: ShapeData | description: Data for a shape node.
- name: containerData | type: PluginContainerData | description: Styling for the shape's container.
- name: shape | type: Media | description: Shape file details.
- name: styles | type: Styles | description: Styling for the shape.
- name: color | type: string | description: Shape fill color as a hexadecimal value.
- name: colors | type: object | description: Map of original color keys to their new color values.
- name: cardData | type: CardData | description: Data for a card node.
- name: background | type: Background | description: Background styling (color or gradient).
- name: type | type: Type | description: Background type.
- enum:
- COLOR: Solid color background
- GRADIENT: Gradient background
- name: color | type: string | description: Background color as a hexadecimal value.
- name: gradient | type: Gradient | description: Gradient configuration.
- name: backgroundImage | type: BackgroundImage | description: Background image.
- name: media | type: Media | description: Background image.
- name: opacity | type: integer | description: Background image opacity.
- name: scaling | type: Scaling | description: Background image scaling.
- enum:
- AUTO: Auto image scaling
- CONTAIN: Contain image scaling
- COVER: Cover image scaling
- name: position | type: Position | description: Position of background. Defaults to `CENTER`.
- enum:
- CENTER: Image positioned at the center
- CENTER_LEFT: Image positioned on the left
- CENTER_RIGHT: Image positioned on the right
- TOP: Image positioned at the center top
- TOP_LEFT: Image positioned at the top left
- TOP_RIGHT: Image positioned at the top right
- BOTTOM: Image positioned at the center bottom
- BOTTOM_LEFT: Image positioned at the bottom left
- BOTTOM_RIGHT: Image positioned at the bottom right
- name: tocData | type: TocData | description: Data for a table of contents node.
- name: includedHeadings | type: array | description: Heading levels included in the table of contents. Default: [1, 2, 3, 4, 5, 6].
- name: listStyle | type: ListStyle | description: List style. Default: PLAIN.
- enum:
- PLAIN: No markers (default)
- NUMBERED: Numbered list
- LETTERS: Alphabetic letters
- ROMAN: Roman numerals
- BULLETED: Bulleted list
- ALPHABETICAL_INDEX: Alphabetical index
- ALPHABETICAL_INDEX_COMPACT: Alphabetical index (compact top-row only)
- name: fontSize | type: number | description: Optional override for the font size in pixels.
- name: itemSpacing | type: number | description: Optional override for the vertical spacing between items in pixels.
- name: color | type: string | description: Optional override for the text color.
- name: indentation | type: Indentation | description: Indentation style. Default: NESTED.
- enum:
- NESTED: Sub-headings indented under parents (default)
- FLAT: All items at the same level
- name: smartBlockData | type: SmartBlockData | description: Data for a smart block node.
- name: type | type: Type | description: The type of the smart block.
- enum:
- SOLID_BOXES: Grid-based layouts with solid box items containing title, body, and icon/image.
- NUMBERED_BOXES: Numbered boxes.
- STATS: Statistics display with large numbers/values.
- CIRCLE_STATS: Statistics with circular visual elements.
- SOLID_BOXES_ALTERNATING: Staggered/zigzag grid layout with alternating box positions.
- SOLID_JOINED_BOXES: Grid layout with boxes visually joined (no gaps, shared container border).
- SIDE_LINE_TEXT: Transparent cells with only a left side line.
- TOP_LINE_TEXT: Transparent cells with only a top line.
- OUTLINE_BOXES_WITH_TOP_CIRCLE: Outlined boxes with a numbered/icon circle at the top.
- BIG_BULLETS: Large icon bullets with text content.
- SMALL_BULLETS: Small dot bullets with text content.
- ARROW_BULLETS: Arrow icon bullets with text content.
- PROCESS_STEPS: Process steps with numbered/icon labels above a horizontal line.
- BAR_STATS: Statistics with bar visual elements.
- TIMELINE: Timeline layout with numbered chips on a connecting line; cells alternate around the line.
- MINIMAL_TIMELINE: Timeline layout with plain dot indicators; no numbers or shapes; cells alternate around the line.
- PILLS: Numbered pill-shaped labels (stadium chips) with text content; supports HORIZONTAL (pill on top) and VERTICAL (pill on left) orientations.
- STAR_RATING: Star rating display with stars and a numeric value per cell.
- QUOTE_BOXES: Outlined boxes with decorative quote glyphs at the top-left and bottom-right corners.
- name: orientation | type: string | description: Layout orientation. HORIZONTAL or VERTICAL. Optional for variants with fixed orientation.
- name: columnSize | type: ColumnSize | description: Column size controlling cells per row.
- enum:
- SMALL: Up to 4 cells in a row.
- MEDIUM: Up to 3 cells in a row (default).
- LARGE: Up to 2 cells in a row.
- EXTRA_LARGE: 1 cell in a row.
- name: borderColor | type: string | description: Border color (for SOLID_JOINED_BOXES variant).
- name: borderWidth | type: integer | description: Border width in pixels (for SOLID_JOINED_BOXES variant).
- name: borderRadius | type: integer | description: Border radius in pixels (for SOLID_JOINED_BOXES variant).
- name: smartBlockCellData | type: SmartBlockCellData | description: Data for a smart block cell node.
- name: label | type: string | description: Optional label text for the cell (e.g., for stats variants).
- name: shape | type: Media | description: Shape file details.
- name: borderColor | type: string | description: Border color of the cell.
- name: borderWidth | type: integer | description: Border width in pixels.
- name: borderRadius | type: integer | description: Border radius in pixels.
- name: type | type: Type | description: The type of the parent smart block (must match parent).
- enum:
- SOLID_BOXES: Grid-based layouts with solid box items containing title, body, and icon/image.
- NUMBERED_BOXES: Numbered boxes.
- STATS: Statistics display with large numbers/values.
- CIRCLE_STATS: Statistics with circular visual elements.
- SOLID_BOXES_ALTERNATING: Staggered/zigzag grid layout with alternating box positions.
- SOLID_JOINED_BOXES: Grid layout with boxes visually joined (no gaps, shared container border).
- SIDE_LINE_TEXT: Transparent cells with only a left side line.
- TOP_LINE_TEXT: Transparent cells with only a top line.
- OUTLINE_BOXES_WITH_TOP_CIRCLE: Outlined boxes with a numbered/icon circle at the top.
- BIG_BULLETS: Large icon bullets with text content.
- SMALL_BULLETS: Small dot bullets with text content.
- ARROW_BULLETS: Arrow icon bullets with text content.
- PROCESS_STEPS: Process steps with numbered/icon labels above a horizontal line.
- BAR_STATS: Statistics with bar visual elements.
- TIMELINE: Timeline layout with numbered chips on a connecting line; cells alternate around the line.
- MINIMAL_TIMELINE: Timeline layout with plain dot indicators; no numbers or shapes; cells alternate around the line.
- PILLS: Numbered pill-shaped labels (stadium chips) with text content; supports HORIZONTAL (pill on top) and VERTICAL (pill on left) orientations.
- STAR_RATING: Star rating display with stars and a numeric value per cell.
- QUOTE_BOXES: Outlined boxes with decorative quote glyphs at the top-left and bottom-right corners.
- name: accentColor | type: string | description: Accent color for non-background variants (e.g., line, bullet, label color).
- name: backgroundColor | type: string | description: Background color for background-based variants (SOLID_BOXES, SOLID_BOXES_ALTERNATING, SOLID_JOINED_BOXES).
- name: shapeColor | type: string | description: Shape fill color as a hexadecimal value.
- name: type | type: Type | description: Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format.
- enum: PARAGRAPH, TEXT, HEADING, BULLETED_LIST, ORDERED_LIST, LIST_ITEM, BLOCKQUOTE, CODE_BLOCK, VIDEO, DIVIDER, FILE, GALLERY, GIF, HTML, IMAGE, LINK_PREVIEW, MAP, POLL, APP_EMBED, BUTTON, COLLAPSIBLE_LIST, TABLE, EMBED, COLLAPSIBLE_ITEM, COLLAPSIBLE_ITEM_TITLE, COLLAPSIBLE_ITEM_BODY, TABLE_CELL, TABLE_ROW, EXTERNAL, AUDIO, CAPTION, LAYOUT, LAYOUT_CELL, SHAPE, CARD, TOC, SMART_BLOCK, SMART_BLOCK_CELL
- name: _id | type: string | description: Node GUID.
- name: nodes | type: array | description: A list of child nodes.
- name: style | type: NodeStyle | description: Padding and background color styling for the node.
- name: paddingTop | type: string | description: The top padding value in pixels.
- name: paddingBottom | type: string | description: The bottom padding value in pixels.
- name: backgroundColor | type: string | description: The background color as a hexadecimal value.
- name: metadata | type: Metadata | description: Object metadata.
- name: version | type: integer | description: Schema version.
- name: _id | type: string | description: Object GUID.
- name: documentStyle | type: DocumentStyle | description: Global styling for header, paragraph, block quote, and code block nodes in the object.
- name: headerOne | type: TextNodeStyle | description: Styling for H1 nodes.
- name: decorations | type: array | description: The decorations to apply to the node.
- name: nodeStyle | type: NodeStyle | description: Padding and background color for the node.
- name: lineHeight | type: string | description: Line height for text in the node.
- name: headerTwo | type: TextNodeStyle | description: Styling for H2 nodes.
- name: headerThree | type: TextNodeStyle | description: Styling for H3 nodes.
- name: headerFour | type: TextNodeStyle | description: Styling for H4 nodes.
- name: headerFive | type: TextNodeStyle | description: Styling for H5 nodes.
- name: headerSix | type: TextNodeStyle | description: Styling for H6 nodes.
- name: paragraph | type: TextNodeStyle | description: Styling for paragraph nodes.
- name: blockquote | type: TextNodeStyle | description: Styling for block quote nodes.
- name: codeBlock | type: TextNodeStyle | description: Styling for code block nodes.
- name: plainDescription | type: string | description: 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.
- name: visible | type: boolean | description: Whether the product is visible to site visitors. Default: `true` > **Note:** For products without options, updating this field automatically > updates the default variant's visibility to match. > For products with options, the product and variant visibility values are independent.
- name: visibleInPos | type: boolean | description: Whether the product is visible in POS (point of sale). Default: `true` > **Note:** Always `false` for `productType: DIGITAL`.
- name: media | type: Media | description: Product media items. For a detailed explanation of product media, see [About Product Media](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/about-product-media.md).
- name: main | type: ProductMedia | description: Main media (image, video, etc.) associated with this product. Automatically set to the first item in the media list.
- ONE-OF:
- name: _id | type: string | description: Set media by GUID of an existing file in Wix Media Manager.
- name: url | type: string | description: Set media using an external media URL.
- name: altText | type: string | description: Image alt text.
- name: displayName | type: string | description: Media display name. Overrides the default media name. Can be passed only when the media is set by a URL in this item's `url` field.
- name: mediaType | type: MediaType | description: Media type.
- enum:
- IMAGE: Image media type.
- VIDEO: Video media type.
- name: thumbnail | type: Thumbnail | description: Media thumbnail. > **Note:** Returned only when you pass `"THUMBNAIL"` to the `fields` array in Products API requests.
- name: url | type: string | description: Thumbnail url.
- name: height | type: integer | description: Thumbnail height.
- name: width | type: integer | description: Thumbnail width.
- name: altText | type: string | description: Thumbnail alt text.
- name: uploadId | type: string | description: GUID used to upload media to Wix Media Manager.
- name: itemsInfo | type: MediaItemsInfo | description: All media items. > **Note:** Returned only when you pass `"MEDIA_ITEMS_INFO"` to the `fields` array in Products API requests.
- name: items | type: array | description: All media items associated with this product. The first item in the array is automatically set as the product's main media.
- name: seoData | type: SeoSchema | description: Product SEO data.
- name: tags | type: array | description: SEO tag information.
- name: type | type: string | description: SEO tag type. Supported values: `title`, `meta`, `script`, `link`.
- name: props | type: object | description: A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value. For example: `{"name": "description", "content": "the description itself"}`.
- name: meta | type: object | description: SEO tag metadata. For example, `{"height": 300, "width": 240}`.
- name: children | type: string | description: SEO tag inner content. For example, ` inner content `.
- name: custom | type: boolean | description: Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages).
- name: disabled | type: boolean | description: Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.
- name: settings | type: Settings | description: SEO general settings.
- name: preventAutoRedirect | type: boolean | description: Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled. Default: `false` (automatical redirect is enabled).
- name: keywords | type: array | description: User-selected keyword terms for a specific page.
- name: term | type: string | description: Keyword value.
- name: isMain | type: boolean | description: Whether the keyword is the main focus keyword.
- name: origin | type: string | description: The source that added the keyword terms to the SEO settings.
- name: taxGroupId | type: string | description: [Tax group GUID](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/tax/tax-groups/introduction.md). Used to apply specific tax rates to products.
- name: options | type: array | description: 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](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/about-product-options-and-variants.md). Options are stored as reusable [customization](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/introduction.md) entities. Pass an existing customization's GUID to reuse it, or define options inline and new customization entities are created automatically.
- ONE-OF:
- name: choicesSettings | type: ChoicesSettings | description: Choices settings.
- name: choices | type: array | description: List of available choices for the option.
- ONE-OF:
- name: colorCode | type: string | description: Single color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color). For example, `#FF0000` for red.
- name: choiceId | type: string | description: Choice GUID.
- name: choiceType | type: ChoiceType | description: Choice type.
- enum:
- CHOICE_TEXT: Text choice.
- ONE_COLOR: Single color choice.
- name: key | type: string | description: A read-only identifier generated from the choice name. Use `key` in the `catalogReference.options` object when [integrating Catalog V3 with eCommerce APIs](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration.md).
- name: name | type: string | description: Choice name. For text choices, this field also contains the choice value.
- name: inStock | type: boolean | description: Whether at least one variant with this choice is in stock in the default location of the store. For example, a product with Color and Size options has these variants: [Blue, Small] which is out of stock and [Red, Large] which is in stock. For choice Blue, this field is `false`. For choice Red, this field is `true`.
- name: visible | type: boolean | description: Whether at least one variant with this choice is visible. Default: `false`
- name: displayImage | type: string | description: Image to display alongside the choice.
- name: _id | type: string | description: GUID of a customization with `customizationType: PRODUCT_OPTION`.
- name: name | type: string | description: Option name.
- name: optionRenderType | type: ProductOptionRenderType | description: Option render type.
- enum:
- TEXT_CHOICES: Text choices.
- SWATCH_CHOICES: Swatch choices.
- name: key | type: string | description: A read-only identifier generated from the option name. Use `key` in the `catalogReference.options` object when [integrating Catalog V3 with eCommerce APIs](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration.md).
- name: modifiers | type: array | description: 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](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/about-product-options-and-variants.md). Modifiers are stored as reusable [customization](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/introduction.md) entities. Pass an existing customization's GUID to reuse it, or define modifiers inline and new customization entities are created automatically.
- ONE-OF:
- name: freeTextSettings | type: FreeTextSettings | description: Free text modifier settings.
- name: minCharCount | type: integer | description: Minimum number of characters.
- name: maxCharCount | type: integer | description: Maximum number of characters.
- name: defaultAddedPrice | type: string | description: Default amount to be added to the product's price.
- name: title | type: string | description: Title of the text to be input by the customer.
- name: key | type: string | description: A read-only identifier generated from the title. Use `key` in the `catalogReference.options` object when [integrating Catalog V3 with eCommerce APIs](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration.md).
- name: choicesSettings | type: ModifierChoicesSettings | description: Choice settings.
- name: choices | type: array | description: List of modifier choices.
- ONE-OF:
- name: colorCode | type: string | description: Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).
- name: choiceId | type: string | description: Choice GUID.
- name: choiceType | type: ChoiceType | description: Choice type.
- enum:
- CHOICE_TEXT: Text choice.
- ONE_COLOR: Single color choice.
- name: key | type: string | description: A read-only identifier generated from the choice name. Use `key` in the `catalogReference.options` object when [integrating Catalog V3 with eCommerce APIs](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration.md).
- name: name | type: string | description: Choice name.
- name: addedPrice | type: string | description: Added price.
- name: displayImage | type: string | description: Image to display alongside the choice.
- name: _id | type: string | description: GUID of a customization with `customizationType: MODIFIER`.
- name: name | type: string | description: Modifier title.
- name: modifierRenderType | type: ModifierRenderType | description: Modifier render type.
- enum:
- FREE_TEXT: Free text.
- TEXT_CHOICES: Text choices.
- SWATCH_CHOICES: Swatch choices.
- name: mandatory | type: boolean | description: Whether customer input is required for this modifier.
- name: key | type: string | description: A read-only identifier generated from the modifier name. Use `key` in the `catalogReference.options` object when [integrating Catalog V3 with eCommerce APIs](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration.md).
- name: brand | type: Brand | description: Product [brand](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/brands-v3/introduction.md). + 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.
- name: _id | type: string | description: Brand GUID.
- name: name | type: string | description: Brand name.
- name: infoSections | type: array | description: Product [info section](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/info-sections-v3/introduction.md). + 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.
- name: _id | type: string | description: Info section GUID.
- name: uniqueName | type: string | description: Info section unique name. > **Note:** Returned only when you pass `"INFO_SECTION"` to the `fields` array in Products API requests.
- name: title | type: string | description: Info section title. > **Note:** Returned only when you pass `"INFO_SECTION"` to the `fields` array in Products API requests.
- name: description | type: RichContent | description: Info section description using rich content. > **Note:** Returned only when you pass `"INFO_SECTION_DESCRIPTION"` to the `fields` array in Products API requests. See.md Ricos document reference
- name: plainDescription | type: string | description: Info section description in HTML. When provided on create/update, this string must be a valid HTML. It will then be converted to rich content. `plainDescription` is ignored when value is also passed to the `description` field. > **Note:** Returned only when you pass `"INFO_SECTION_PLAIN_DESCRIPTION"` to the `fields` array in Products API requests.
- name: ribbon | type: Ribbon | description: Primary [ribbon](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/ribbons-v3/introduction.md) displayed on the product. Use `additionalRibbons` to assign further ribbons beyond the primary one. + 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.
- name: _id | type: string | description: Ribbon GUID.
- name: name | type: string | description: Ribbon name.
- name: directCategoriesInfo | type: ProductCategoriesInfo | description: List of [categories](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction.md) 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.
- name: categories | type: array | description: A list of categories related to the product.
- name: _id | type: string | description: Category GUID.
- name: index | type: integer | description: Index location of the product within the category, used for sorting products in a specific category. You can manually arrange up to 100 products per category. For detailed instructions, refer to the [Add and arrange products in a category](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/sample-use-cases-and-flows.md#add-and-arrange-products-in-a-category) sample flow.
- name: allCategoriesInfo | type: ProductCategoriesInfo | description: List of [categories](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction.md) 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.
- name: mainCategoryId | type: string | description: The GUID of the product's primary direct [category](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction.md), 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".
- name: costRange | type: PriceRange | description: 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.
- name: minValue | type: FixedMonetaryAmount | description: Minimum value.
- name: amount | type: string | description: Monetary amount. For example, `"3.99"`, or `"-4.99"` for a negative amount.
- name: formattedAmount | type: string | description: Formatted monetary amount. For example, `"$3.99"`. > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
- name: maxValue | type: FixedMonetaryAmount | description: Maximum value.
- name: inventory | type: Inventory | description: Product inventory info. > **Note:** This field reflects the aggregated inventory status from the default location only. Use the [Inventory Items API](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/inventory-items-v3/introduction.md) to manage inventory for specific locations. Learn more about [inventory management](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/about-inventory-management.md).
- name: availabilityStatus | type: AvailabilityStatus | description: Current availability status.
- enum:
- IN_STOCK: All variants are in stock and available for purchase.
- OUT_OF_STOCK: All variants are out of stock.
- PARTIALLY_OUT_OF_STOCK: Some variants are out of stock and some are in stock and available for purchase.
- name: preorderStatus | type: PreorderStatus | description: Current preorder status.
- enum:
- ENABLED: All variants are enabled for preorder.
- DISABLED: All variants are disabled for preorder.
- PARTIALLY_ENABLED: Some variants are disabled and some are enabled for preorder.
- name: preorderAvailability | type: ProductPreorderAvailability | description: Preorder availability status.
- enum:
- ALL_VARIANTS: All the product variants are available for preorder.
- NO_VARIANTS: None of the product variants are available for preorder.
- SOME_VARIANTS: Some of the product variants are available for preorder.
- name: productType | type: ProductType | description: 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.
- enum:
- PHYSICAL: Physical product.
- DIGITAL: Digital product.
- name: handle | type: string | description: 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.
- name: currency | type: string | description: Currency used for the pricing of this product, in [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) 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.
- name: breadcrumbsInfo | type: BreadcrumbsInfo | description: Breadcrumbs of the `mainCategoryId`. Used to navigate to parent [categories](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction.md). Useful for building navigation UI and for SEO purposes. > **Note:** Returned only when you pass `"BREADCRUMBS_INFO"` to the `fields` array in Products API requests.
- name: breadcrumbs | type: array | description: Breadcrumbs.
- name: categoryId | type: string | description: Category GUID.
- name: categoryName | type: string | description: Category name.
- name: categorySlug | type: string | description: Category slug.
- name: actualPriceRange | type: PriceRange | description: Minimum and maximum current selling prices across all product variants.
- name: compareAtPriceRange | type: PriceRange | description: Minimum and maximum compare-at prices (original prices before discounts) across all product variants. Used to show savings to customers.
- name: variantsInfo | type: VariantsInfo | description: 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](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/about-product-options-and-variants.md).
- name: variants | type: array | description: List of related variants.
- ONE-OF:
- name: physicalProperties | type: VariantPhysicalProperties | description: Physical properties. Must be passed when `productType: PHYSICAL`
- name: weight | type: number | description: Variant shipping weight. product.physicalProperties.shipping_weight_range values are taken from here.
- name: pricePerUnit | type: PricePerUnit | description: Price per unit info, in order to show price per unit on the product page. For example if one sells cheese and defines 100g here then we know that buying this variant buyer receives 100g of cheese. But on product page price will be displayed for units defined on product level. See `pricePerUnit.value` to understand how it's calculated.
- name: settings | type: PricePerUnitSettings | description: Price per unit data for this variant. `measurementUnit` value must correspond to the measurement unit set on the product.
- name: value | type: string | description: Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, of this variant, and discounted price of variant. For example if discounted price is 2$, product's price per unit setting is 1 Kg, variant price per unit setting is 0.5 Kg then this value is 4$ (means variant weight is 0.5 Kg and it costs 2$ but we want to show price per 1 Kg so we show 4$).
- name: description | type: string | description: Price per unit description. > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
- name: productDimensions | type: Dimensions | description: Product dimensions (length, width, height of the physical product).
- name: length | type: string | description: Length. Measurement unit is handled at the system level (metric/imperial).
- name: width | type: string | description: Width. Measurement unit is handled at the system level (metric/imperial).
- name: height | type: string | description: Height. Measurement unit is handled at the system level (metric/imperial).
- name: unit | type: DimensionsUnit | description: Unit of measurement for dimensions (length, width, height).
- enum:
- UNKNOWN_DIMENSIONS_UNIT:
- MM: Millimeters.
- CM: Centimeters.
- M: Meters.
- IN: Inches.
- FT: Feet.
- YD: Yards.
- name: packageDimensions | type: Dimensions | description: Package dimensions (length, width, height of the shipping package).
- name: digitalProperties | type: VariantDigitalProperties | description: Digital properties. Must be passed when `productType: DIGITAL`
- name: digitalFile | type: SecuredMedia | description: Digital file which will be downloaded by the buyer after successful purchase. Each variant can have a different digital file, allowing you to offer different content per variant.
- name: _id | type: string | description: Media GUID in media manager.
- name: fileName | type: string | description: Original file name.
- name: fileSize | type: string | description: Original file size.
- name: fileType | type: FileType | description: File type.
- enum:
- UNSPECIFIED: Unspecified file type.
- SECURE_PICTURE: Secure picture file.
- SECURE_VIDEO: Secure video file.
- SECURE_DOCUMENT: Secure document file.
- SECURE_MUSIC: Secure music file.
- SECURE_ARCHIVE: Secure archive file.
- SECURE_RAW: Secure raw file.
- name: _id | type: string | description: Variant GUID.
- name: visible | type: boolean | description: Whether the variant is visible to site visitors. Default: `true` > **Note:** For products without options, updating this field automatically > updates the product's visibility to match. > For products with options, the product and variant visibility values are independent.
- name: sku | type: string | description: Variant SKU (stock keeping unit).
- name: barcode | type: string | description: Variant barcode.
- name: choices | type: array | description: List of choices that define this variant. Each variant must have exactly one choice for each product option. Use `optionChoiceNames` in all requests where this field is required. For products without options, this array is empty, representing a single "default variant". For more information, see [About Product Options and Variants](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/about-product-options-and-variants.md).
- name: optionChoiceIds | type: OptionChoiceIds | description: Option and choice GUIDs. These match the GUIDs of the option and choice from the product's options field.
- name: optionId | type: string | description: Option GUID.
- name: choiceId | type: string | description: Choice GUID.
- name: optionChoiceNames | type: OptionChoiceNames | description: Option and choice names. > **Note:** Returned only when you pass `"VARIANT_OPTION_CHOICE_NAMES"` to the `fields` array in Products API requests.
- name: optionName | type: string | description: Option name.
- name: choiceName | type: string | description: Choice name.
- name: renderType | type: ProductOptionRenderType | description: Render type of the option. Required when using `optionChoiceNames`. Must match the `optionRenderType` of the referenced option.
- enum:
- TEXT_CHOICES: Text choices.
- SWATCH_CHOICES: Swatch choices.
- name: price | type: PriceInfo | description: Variant price.
- name: actualPrice | type: FixedMonetaryAmount | description: Variant's current selling price. Must be greater than or equal to 0.
- name: compareAtPrice | type: FixedMonetaryAmount | description: Original price before any discount, shown with a strikethrough in the UI of Wix sites. Only set this if a discount applies. When set, it should be higher than `actualPrice` to reflect savings.
- name: revenueDetails | type: RevenueDetails | description: Variant revenue details. > **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.
- name: cost | type: FixedMonetaryAmount | description: Item cost.
- name: profit | type: FixedMonetaryAmount | description: Profit. Calculated by reducing `cost` from `discountedPrice`.
- name: profitMargin | type: number | description: Profit Margin. Calculated by dividing `profit` by `discountedPrice`. The result is rounded to 4 decimal places.
- name: media | type: ProductMedia | description: Variant media.
- name: subscriptionPricesInfo | type: SubscriptionPricesInfo | description: Subscription prices calculated by applying subscription discount to the variant `price.actual_price`. > **Note:** Returned only when you pass `"SUBSCRIPTION_PRICES_INFO"` to the `fields` array in Products API requests.
- name: subscriptionPrices | type: array | description: Subscription prices.
- name: subscriptionId | type: string | description: Subscription GUID.
- name: price | type: FixedMonetaryAmount | description: Subscription price calculated by applying subscription discount to the variant `price.actual_price`
- name: pricePerUnit | type: SubscriptionPricePerUnit | description: Price per unit info.
- name: value | type: string | description: Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.
- name: description | type: string | description: Price per unit description. > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
- name: inventoryStatus | type: InventoryStatus | description: Variant inventory status.
- name: inStock | type: boolean | description: Whether the variant is in stock.
- name: preorderEnabled | type: boolean | description: Whether preorder is enabled for this variant.
- name: purchaseEligibility | type: PurchaseEligibility | description: Purchase eligibility settings for the product.
- name: userCriteria | type: UserCriteria | description:
- enum:
- MEMBERS_ONLY: Product is available only to members.
- name: additionalRibbons | type: array | description: Additional [ribbons](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/ribbons-v3/introduction.md) displayed on the product, beyond the primary `ribbon`. Use this field to highlight multiple product attributes at once, for example combining a "New" ribbon with a "Sale" ribbon. Both the primary and additional ribbons are rendered on product cards and on the product page. Each entry follows the same assignment rules as `ribbon`: + Pass `additionalRibbons.name` to add a new ribbon while creating or updating the product. + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product. A ribbon can be assigned to a product at most once: the same ribbon can't appear more than once in `additionalRibbons`, and a ribbon set as `ribbon` can't also appear in `additionalRibbons`. Supports up to 4 additional ribbons per product.
- name: extendedFields | type: ExtendedFields | description: Custom extended fields for the product object. [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions.md) must be configured in the app dashboard before they can be accessed with API calls.
- name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).
- name: tags | type: Tags | description: Tags
- name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, normally not given to site members or visitors.
- name: tagIds | type: array | description: List of tag GUIDs.
- name: publicTags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors.
- name: subscriptionDetails | type: SubscriptionDetails | description: 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.
- name: subscriptions | type: array | description: Subscriptions.
- ONE-OF:
- name: autoRenewal | type: boolean | description: Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`.
- name: billingCycles | type: integer | description: Number of billing cycles before subscription ends.
- name: _id | type: string | description: Subscription GUID.
- name: title | type: string | description: Subscription title.
- name: description | type: string | description: Subscription description.
- name: visible | type: boolean | description: Whether the subscription is visible to site visitors. Default: `true`
- name: frequency | type: SubscriptionFrequency | description: Frequency of recurring payment. For example, if `frequency: MONTH` and `billingCycles: 6`; payment will be made monthly for 6 months.
- enum: UNDEFINED, DAY, WEEK, MONTH, YEAR
- name: interval | type: integer | description: Interval of recurring payment. Default: `1`. For example, if `frequency: MONTH`, `billingCycles: 3` and `interval: 2`; payment will be made every 2 months for a total of 6 months.
- name: discount | type: SubscriptionDiscount | description: Discount info (optional). For example, a $20 discount would be `amount: 20`, `type: AMOUNT`.
- ONE-OF:
- name: amountOff | type: string | description: Amount to discount from the variant discounted_price.
- name: percentOff | type: number | description: Percentage to discount from variant discounted_price.
- name: type | type: DiscountType | description: Discount type.
- enum:
- AMOUNT: Discount by a specific amount.
- PERCENT: Discount by a percentage.
- name: allowOneTimePurchases | type: boolean | description: Whether to allow one-time purchases in addition to subscription-based purchases. Default: `false`
- name: variantSummary | type: VariantSummary | description: The total number of variants for the product.
- name: variantCount | type: integer | description: The total number of variants for the product.
- name: metadata | type: EventMetadata | description: none
- name: instanceId | type: string | description: App instance GUID.
- name: eventType | type: string | description: Event type.
- name: identity | type: IdentificationData | description: The identification type and identity data.
- ONE-OF:
- name: anonymousVisitorId | type: string | description: GUID of a site visitor that has not logged in to the site.
- name: memberId | type: string | description: GUID of a site visitor that has logged in to the site.
- name: wixUserId | type: string | description: GUID of a Wix user (site owner, contributor, etc.).
- name: appId | type: string | description: GUID of an app.
- name: identityType | type: WebhookIdentityType | description:
- enum: UNKNOWN, ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP
- name: accountInfo | type: AccountInfo | description: Details related to the account
- name: accountId | type: string | description: GUID of the Wix account associated with the event.
- name: parentAccountId | type: string | description: GUID of the parent Wix account. Only included when accountId belongs to a child account.
- name: siteId | type: string | description: GUID of the Wix site associated with the event. Only included when the event is tied to a specific site.
- name: _id | type: string | description: Event GUID. With this GUID you can easily spot duplicated events and ignore them.
- name: entityFqdn | type: string | description: Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.
- name: slug | type: string | description: Event action name, placed at the top level to make it easier for users to dispatch messages. For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.
- name: entityId | type: string | description: GUID of the entity associated with the event.
- name: eventTime | type: Date | description: Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`.
- name: triggeredByAnonymizeRequest | type: boolean | description: Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).
- name: originatedFrom | type: string | description: If present, indicates the action that triggered the event.
- name: entityEventSequence | type: string | description: A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number. You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.
```
### Examples
```javascript
import { productsV3 } from '@wix/stores';
productsV3.onProductCreated((event) => {
// handle your event here
});
```
```javascript
import { createClient, AppStrategy } from '@wix/sdk';
import { productsV3 } from '@wix/stores';
const wixClient = createClient({
auth: AppStrategy({
appId: 'MY-APP-ID',
publicKey: 'YOUR_APP_PUBLIC_KEY',
}),
modules: {
productsV3,
},
});
wixClient.productsV3.onProductCreated((event) => {
// handle your event here
});
```
---