import { id as CreateProductRequest$1, ie as CreateProductResponse$1, ik as CreateProductWithInventoryRequest$1, d as CreateProductWithInventoryResponse$1, iz as UpdateProductRequest$1, iA as UpdateProductResponse$1, iB as UpdateProductWithInventoryRequest$1, l as UpdateProductWithInventoryResponse$1, iC as BulkCreateProductsRequest$1, o as BulkCreateProductsResponse$1, iG as BulkCreateProductsWithInventoryRequest$1, s as BulkCreateProductsWithInventoryResponse$1, iI as BulkUpdateProductsRequest$1, x as BulkUpdateProductsResponse$1, iJ as BulkUpdateProductsWithInventoryRequest$1, D as BulkUpdateProductsWithInventoryResponse$1, iK as V3BulkUpdateProductsByFilterRequest$1, H as V3BulkUpdateProductsByFilterResponse$1, iM as V3DeleteProductRequest$1, iN as V3DeleteProductResponse$1, iO as V3BulkDeleteProductsRequest$1, K as V3BulkDeleteProductsResponse$1, iQ as V3BulkDeleteProductsByFilterRequest$1, O as V3BulkDeleteProductsByFilterResponse$1, iR as V3GetProductRequest$1, iS as V3GetProductResponse$1, iT as V3GetProductBySlugRequest$1, T as V3GetProductBySlugResponse$1, iU as V3SearchProductsRequest$1, Z as V3SearchProductsResponse$1, jw as V3QueryProductsRequest$1, jz as V3QueryProductsResponse$1, jA as V3CountProductsRequest$1, a0 as V3CountProductsResponse$1, jB as BulkUpdateProductVariantsByFilterRequest$1, a3 as BulkUpdateProductVariantsByFilterResponse$1, jC as V3BulkAdjustProductVariantsByFilterRequest$1, a7 as V3BulkAdjustProductVariantsByFilterResponse$1, jH as V3BulkAddInfoSectionsToProductsByFilterRequest$1, ab as V3BulkAddInfoSectionsToProductsByFilterResponse$1, jI as V3BulkAddInfoSectionsToProductsRequest$1, af as V3BulkAddInfoSectionsToProductsResponse$1, jJ as V3BulkRemoveInfoSectionsFromProductsByFilterRequest$1, ai as V3BulkRemoveInfoSectionsFromProductsByFilterResponse$1, jK as V3BulkRemoveInfoSectionsFromProductsRequest$1, ak as V3BulkRemoveInfoSectionsFromProductsResponse$1, jW as BulkAddProductsToCategoriesByFilterRequest$1, am as BulkAddProductsToCategoriesByFilterResponse$1, jX as BulkRemoveProductsFromCategoriesByFilterRequest$1, ao as BulkRemoveProductsFromCategoriesByFilterResponse$1, jY as GetAllProductsCategoryRequest$1, ap as GetAllProductsCategoryResponse$1, j_ as V3BulkUpdateProductTagsRequest$1, ar as V3BulkUpdateProductTagsResponse$1, k0 as V3BulkUpdateProductTagsByFilterRequest$1, au as V3BulkUpdateProductTagsByFilterResponse$1 } from './stores-catalog-v3-product-products-v-3.universal-jfVfzDYl.js';
import '@wix/sdk-types';
/**
* A product in a Wix Stores catalog.
*
* Products can be physical goods that require shipping, or digital content that customers download. Each product has at least one variant, which represents a specific purchasable version with its own pricing, SKU, and inventory. Products with options (like size or color) have multiple variants.
*
* Products can be associated with brands and ribbons, enhanced with info sections and extended fields, and organized into categories.
*/
interface V3Product extends V3ProductTypedPropertiesOneOf {
/**
* Physical properties.
*
* Required when `productType: PHYSICAL`.
*/
physicalProperties?: PhysicalProperties;
/**
* Product ID.
* @minLength 1
* @maxLength 36
* @immutable
* @readonly
*/
id?: string | null;
/**
* 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.
* @readonly
*/
revision?: string | null;
/**
* Date and time the product was created.
* @readonly
*/
createdDate?: Date | null;
/**
* Date and time the product was updated.
* @readonly
*/
updatedDate?: Date | null;
/**
* Product name. Translatable.
* @minLength 1
* @maxLength 80
*/
name?: string | null;
/**
* Product slug. A URL-friendly identifier used in the product page address.
*
* If not provided, the slug is autogenerated based on the product name.
* @minLength 1
* @maxLength 300
*/
slug?: string | null;
/**
* URL to the site's product page.
*
* > **Note:** Returned only when you pass `"URL"` to the `fields` array in Products API requests.
* @readonly
*/
url?: PageUrlV2;
/**
* Product description using rich content.
* > **Note:** Returned only when you pass `"DESCRIPTION"` to the `fields` array in Products API requests.
*
*
* See Ricos document reference
*
*/
description?: RichContent;
/**
* 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.
* @maxLength 16000
*/
plainDescription?: string | null;
/**
* 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.
*/
visible?: boolean | null;
/**
* Whether the product is visible in POS (point of sale).
*
* Default: `true`
* > **Note:** Always `false` for `productType: DIGITAL`.
*/
visibleInPos?: boolean | null;
/** 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). */
media?: Media;
/** Product SEO data. */
seoData?: SeoSchema;
/**
* [Tax group ID](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/tax/tax-groups/introduction). Used to apply specific tax rates to products.
* @format GUID
*/
taxGroupId?: string | null;
/**
* 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).
*
* Options are stored as reusable [customization](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/introduction) entities. Pass an existing customization's ID to reuse it, or define options inline and new customization entities are created automatically.
* @maxSize 6
*/
options?: ConnectedOption[];
/**
* 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).
*
* Modifiers are stored as reusable [customization](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/introduction) entities. Pass an existing customization's ID to reuse it, or define modifiers inline and new customization entities are created automatically.
* @maxSize 10
*/
modifiers?: ConnectedModifier[];
/**
* Product [brand](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/brands-v3/introduction).
*
* + 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.
*/
brand?: V3Brand;
/**
* Product [info section](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/info-sections-v3/introduction).
*
* + 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.
* @maxSize 10
*/
infoSections?: InfoSection[];
/**
* Primary [ribbon](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/ribbons-v3/introduction) 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.
*/
ribbon?: Ribbon;
/**
* List of [categories](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction) 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.
* @readonly
*/
directCategoriesInfo?: ProductCategoriesInfo;
/**
* List of [categories](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction) 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.
* @readonly
*/
allCategoriesInfo?: ProductCategoriesInfo;
/**
* The ID of the product's primary direct [category](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction), 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".
* @format GUID
*/
mainCategoryId?: string | null;
/**
* 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.
* @readonly
*/
costRange?: PriceRange;
/**
* 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) 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).
* @readonly
*/
inventory?: Inventory;
/**
* 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.
* @immutable
*/
productType?: ProductTypeWithLiterals;
/**
* 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.
* @minLength 1
* @maxLength 100
* @readonly
*/
handle?: string | null;
/**
* 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.
* @format CURRENCY
* @readonly
*/
currency?: string | null;
/**
* Breadcrumbs of the `mainCategoryId`. Used to navigate to parent [categories](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/categories/introduction). 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.
* @readonly
*/
breadcrumbsInfo?: BreadcrumbsInfo;
/**
* Minimum and maximum current selling prices across all product variants.
* @readonly
*/
actualPriceRange?: PriceRange;
/**
* Minimum and maximum compare-at prices (original prices before discounts) across all product variants. Used to show savings to customers.
* @readonly
*/
compareAtPriceRange?: PriceRange;
/**
* 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).
*/
variantsInfo?: VariantsInfo;
/** Purchase eligibility settings for the product. */
purchaseEligibility?: PurchaseEligibility;
/**
* Additional [ribbons](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/ribbons-v3/introduction) 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.
* @maxSize 4
*/
additionalRibbons?: Ribbon[];
/**
* 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) must be configured in the app dashboard before they can be accessed with API calls.
*/
extendedFields?: ExtendedFields;
/** Tags */
tags?: Tags;
/**
* 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.
*/
subscriptionDetails?: SubscriptionDetails;
/**
* The total number of variants for the product.
* @readonly
*/
variantSummary?: VariantSummary;
}
/** @oneof */
interface V3ProductTypedPropertiesOneOf {
/**
* Physical properties.
*
* Required when `productType: PHYSICAL`.
*/
physicalProperties?: PhysicalProperties;
}
interface PageUrlV2 {
/** The relative path for the page within the site. For example, `/product-page/a-product`. */
relativePath?: string;
/** The page's full URL. For example, `https://mysite.com/product-page/a-product`. */
url?: string | null;
}
interface RichContent {
/** Node objects representing a rich content document. */
nodes?: Node[];
/** Object metadata. */
metadata?: Metadata;
/** Global styling for header, paragraph, block quote, and code block nodes in the object. */
documentStyle?: DocumentStyle;
}
interface Node extends NodeDataOneOf {
/** Data for a button node. */
buttonData?: ButtonData;
/** Data for a code block node. */
codeBlockData?: CodeBlockData;
/** Data for a divider node. */
dividerData?: DividerData;
/** Data for a file node. */
fileData?: FileData;
/** Data for a gallery node. */
galleryData?: GalleryData;
/** Data for a GIF node. */
gifData?: GIFData;
/** Data for a heading node. */
headingData?: HeadingData;
/** Data for an embedded HTML node. */
htmlData?: HTMLData;
/** Data for an image node. */
imageData?: ImageData;
/** Data for a link preview node. */
linkPreviewData?: LinkPreviewData;
/** @deprecated */
mapData?: MapData;
/** Data for a paragraph node. */
paragraphData?: ParagraphData;
/** Data for a poll node. */
pollData?: PollData;
/** Data for a text node. Used to apply decorations to text. */
textData?: TextData;
/** Data for an app embed node. */
appEmbedData?: AppEmbedData;
/** Data for a video node. */
videoData?: VideoData;
/** Data for an oEmbed node. */
embedData?: EmbedData;
/** Data for a collapsible list node. */
collapsibleListData?: CollapsibleListData;
/** Data for a table node. */
tableData?: TableData;
/** Data for a table cell node. */
tableCellData?: TableCellData;
/** Data for a custom external node. */
externalData?: Record | null;
/** Data for an audio node. */
audioData?: AudioData;
/** Data for an ordered list node. */
orderedListData?: OrderedListData;
/** Data for a bulleted list node. */
bulletedListData?: BulletedListData;
/** Data for a block quote node. */
blockquoteData?: BlockquoteData;
/** Data for a caption node. */
captionData?: CaptionData;
/** Data for a layout node. Reserved for future use. */
layoutData?: LayoutData;
/** Data for a cell node. */
layoutCellData?: LayoutCellData;
/** Data for a shape node. */
shapeData?: ShapeData;
/** Data for a card node. */
cardData?: CardData;
/** Data for a table of contents node. */
tocData?: TocData;
/** Data for a smart block node. */
smartBlockData?: SmartBlockData;
/** Data for a smart block cell node. */
smartBlockCellData?: SmartBlockCellData;
/** Data for a checkbox list node. */
checkboxListData?: CheckboxListData;
/** Data for a list item node. */
listItemData?: ListItemNodeData;
/** 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. */
type?: NodeTypeWithLiterals;
/** Node ID. */
id?: string;
/** A list of child nodes. */
nodes?: Node[];
/** Padding and background color styling for the node. */
style?: NodeStyle;
}
/** @oneof */
interface NodeDataOneOf {
/** Data for a button node. */
buttonData?: ButtonData;
/** Data for a code block node. */
codeBlockData?: CodeBlockData;
/** Data for a divider node. */
dividerData?: DividerData;
/** Data for a file node. */
fileData?: FileData;
/** Data for a gallery node. */
galleryData?: GalleryData;
/** Data for a GIF node. */
gifData?: GIFData;
/** Data for a heading node. */
headingData?: HeadingData;
/** Data for an embedded HTML node. */
htmlData?: HTMLData;
/** Data for an image node. */
imageData?: ImageData;
/** Data for a link preview node. */
linkPreviewData?: LinkPreviewData;
/** @deprecated */
mapData?: MapData;
/** Data for a paragraph node. */
paragraphData?: ParagraphData;
/** Data for a poll node. */
pollData?: PollData;
/** Data for a text node. Used to apply decorations to text. */
textData?: TextData;
/** Data for an app embed node. */
appEmbedData?: AppEmbedData;
/** Data for a video node. */
videoData?: VideoData;
/** Data for an oEmbed node. */
embedData?: EmbedData;
/** Data for a collapsible list node. */
collapsibleListData?: CollapsibleListData;
/** Data for a table node. */
tableData?: TableData;
/** Data for a table cell node. */
tableCellData?: TableCellData;
/** Data for a custom external node. */
externalData?: Record | null;
/** Data for an audio node. */
audioData?: AudioData;
/** Data for an ordered list node. */
orderedListData?: OrderedListData;
/** Data for a bulleted list node. */
bulletedListData?: BulletedListData;
/** Data for a block quote node. */
blockquoteData?: BlockquoteData;
/** Data for a caption node. */
captionData?: CaptionData;
/** Data for a layout node. Reserved for future use. */
layoutData?: LayoutData;
/** Data for a cell node. */
layoutCellData?: LayoutCellData;
/** Data for a shape node. */
shapeData?: ShapeData;
/** Data for a card node. */
cardData?: CardData;
/** Data for a table of contents node. */
tocData?: TocData;
/** Data for a smart block node. */
smartBlockData?: SmartBlockData;
/** Data for a smart block cell node. */
smartBlockCellData?: SmartBlockCellData;
/** Data for a checkbox list node. */
checkboxListData?: CheckboxListData;
/** Data for a list item node. */
listItemData?: ListItemNodeData;
}
declare enum NodeType {
PARAGRAPH = "PARAGRAPH",
TEXT = "TEXT",
HEADING = "HEADING",
BULLETED_LIST = "BULLETED_LIST",
ORDERED_LIST = "ORDERED_LIST",
LIST_ITEM = "LIST_ITEM",
BLOCKQUOTE = "BLOCKQUOTE",
CODE_BLOCK = "CODE_BLOCK",
VIDEO = "VIDEO",
DIVIDER = "DIVIDER",
FILE = "FILE",
GALLERY = "GALLERY",
GIF = "GIF",
HTML = "HTML",
IMAGE = "IMAGE",
LINK_PREVIEW = "LINK_PREVIEW",
/** @deprecated */
MAP = "MAP",
POLL = "POLL",
APP_EMBED = "APP_EMBED",
BUTTON = "BUTTON",
COLLAPSIBLE_LIST = "COLLAPSIBLE_LIST",
TABLE = "TABLE",
EMBED = "EMBED",
COLLAPSIBLE_ITEM = "COLLAPSIBLE_ITEM",
COLLAPSIBLE_ITEM_TITLE = "COLLAPSIBLE_ITEM_TITLE",
COLLAPSIBLE_ITEM_BODY = "COLLAPSIBLE_ITEM_BODY",
TABLE_CELL = "TABLE_CELL",
TABLE_ROW = "TABLE_ROW",
EXTERNAL = "EXTERNAL",
AUDIO = "AUDIO",
CAPTION = "CAPTION",
LAYOUT = "LAYOUT",
LAYOUT_CELL = "LAYOUT_CELL",
SHAPE = "SHAPE",
CARD = "CARD",
TOC = "TOC",
SMART_BLOCK = "SMART_BLOCK",
SMART_BLOCK_CELL = "SMART_BLOCK_CELL",
CHECKBOX_LIST = "CHECKBOX_LIST"
}
/** @enumType */
type NodeTypeWithLiterals = NodeType | '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' | 'CHECKBOX_LIST';
interface NodeStyle {
/** The top padding value in pixels. */
paddingTop?: string | null;
/** The bottom padding value in pixels. */
paddingBottom?: string | null;
/** The background color as a hexadecimal value. */
backgroundColor?: string | null;
}
interface ButtonData {
/** Styling for the button's container. */
containerData?: PluginContainerData;
/** The button type. */
type?: ButtonDataTypeWithLiterals;
/** Styling for the button. */
styles?: Styles;
/** The text to display on the button. */
text?: string | null;
/** Button link details. */
link?: Link;
}
interface Border {
/**
* Deprecated: Use `borderWidth` in `styles` instead.
* @deprecated
*/
width?: number | null;
/**
* Deprecated: Use `borderRadius` in `styles` instead.
* @deprecated
*/
radius?: number | null;
}
interface Colors {
/**
* Deprecated: Use `textColor` in `styles` instead.
* @deprecated
*/
text?: string | null;
/**
* Deprecated: Use `borderColor` in `styles` instead.
* @deprecated
*/
border?: string | null;
/**
* Deprecated: Use `backgroundColor` in `styles` instead.
* @deprecated
*/
background?: string | null;
}
interface PluginContainerData {
/** The width of the node when it's displayed. */
width?: PluginContainerDataWidth;
/** The node's alignment within its container. */
alignment?: PluginContainerDataAlignmentWithLiterals;
/** Spoiler cover settings for the node. */
spoiler?: Spoiler;
/** The height of the node when it's displayed. */
height?: Height;
/** 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`. */
textWrap?: boolean | null;
}
declare enum WidthType {
/** Width matches the content width */
CONTENT = "CONTENT",
/** Small Width */
SMALL = "SMALL",
/** Width will match the original asset width */
ORIGINAL = "ORIGINAL",
/** coast-to-coast display */
FULL_WIDTH = "FULL_WIDTH"
}
/** @enumType */
type WidthTypeWithLiterals = WidthType | 'CONTENT' | 'SMALL' | 'ORIGINAL' | 'FULL_WIDTH';
interface PluginContainerDataWidth extends PluginContainerDataWidthDataOneOf {
/**
* 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.
*/
size?: WidthTypeWithLiterals;
/** A custom width value in pixels. */
custom?: string | null;
}
/** @oneof */
interface PluginContainerDataWidthDataOneOf {
/**
* 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.
*/
size?: WidthTypeWithLiterals;
/** A custom width value in pixels. */
custom?: string | null;
}
declare enum PluginContainerDataAlignment {
/** Center Alignment */
CENTER = "CENTER",
/** Left Alignment */
LEFT = "LEFT",
/** Right Alignment */
RIGHT = "RIGHT"
}
/** @enumType */
type PluginContainerDataAlignmentWithLiterals = PluginContainerDataAlignment | 'CENTER' | 'LEFT' | 'RIGHT';
interface Spoiler {
/** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */
enabled?: boolean | null;
/** The description displayed on top of the spoiler cover. */
description?: string | null;
/** The text for the button used to remove the spoiler cover. */
buttonText?: string | null;
}
interface Height {
/** A custom height value in pixels. */
custom?: string | null;
}
declare enum ButtonDataType {
/** Regular link button */
LINK = "LINK",
/** Triggers custom action that is defined in plugin configuration by the consumer */
ACTION = "ACTION"
}
/** @enumType */
type ButtonDataTypeWithLiterals = ButtonDataType | 'LINK' | 'ACTION';
interface Styles {
/**
* Deprecated: Use `borderWidth` and `borderRadius` instead.
* @deprecated
*/
border?: Border;
/**
* Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead.
* @deprecated
*/
colors?: Colors;
/** Border width in pixels. */
borderWidth?: number | null;
/**
* Deprecated: Use `borderWidth` for normal/hover states instead.
* @deprecated
*/
borderWidthHover?: number | null;
/** Border radius in pixels. */
borderRadius?: number | null;
/**
* Border color as a hexadecimal value.
* @maxLength 19
*/
borderColor?: string | null;
/**
* Border color as a hexadecimal value (hover state).
* @maxLength 19
*/
borderColorHover?: string | null;
/**
* Text color as a hexadecimal value.
* @maxLength 19
*/
textColor?: string | null;
/**
* Text color as a hexadecimal value (hover state).
* @maxLength 19
*/
textColorHover?: string | null;
/**
* Deprecated: Use `background` instead.
* @maxLength 19
* @deprecated
*/
backgroundColor?: string | null;
/**
* Deprecated: Use `backgroundHover` instead.
* @maxLength 19
* @deprecated
*/
backgroundColorHover?: string | null;
/** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */
buttonSize?: string | null;
/** Background styling (color or gradient). */
background?: Background;
/** Background styling for hover state (color or gradient). */
backgroundHover?: Background;
}
interface Link extends LinkDataOneOf {
/** The absolute URL for the linked document. */
url?: string;
/** The target node's ID. Used for linking to another node in this object. */
anchor?: string;
/**
* 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.
*/
target?: TargetWithLiterals;
/** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */
rel?: Rel;
/** A serialized object used for a custom or external link panel. */
customData?: string | null;
}
/** @oneof */
interface LinkDataOneOf {
/** The absolute URL for the linked document. */
url?: string;
/** The target node's ID. Used for linking to another node in this object. */
anchor?: string;
}
declare enum Target {
/** Opens the linked document in the same frame as it was clicked (this is default) */
SELF = "SELF",
/** Opens the linked document in a new window or tab */
BLANK = "BLANK",
/** Opens the linked document in the parent frame */
PARENT = "PARENT",
/** Opens the linked document in the full body of the window */
TOP = "TOP"
}
/** @enumType */
type TargetWithLiterals = Target | 'SELF' | 'BLANK' | 'PARENT' | 'TOP';
interface Rel {
/** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */
nofollow?: boolean | null;
/** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */
sponsored?: boolean | null;
/** 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`. */
ugc?: boolean | null;
/** Indicates that this link protect referral information from being passed to the target website. */
noreferrer?: boolean | null;
}
interface CodeBlockData {
/** Styling for the code block's text. */
textStyle?: TextStyle;
}
interface TextStyle {
/** Text alignment. Defaults to `AUTO`. */
textAlignment?: TextAlignmentWithLiterals;
/** 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. */
lineHeight?: string | null;
}
declare enum TextAlignment {
/** browser default, eqivalent to `initial` */
AUTO = "AUTO",
/** Left align */
LEFT = "LEFT",
/** Right align */
RIGHT = "RIGHT",
/** Center align */
CENTER = "CENTER",
/** 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 */
JUSTIFY = "JUSTIFY"
}
/** @enumType */
type TextAlignmentWithLiterals = TextAlignment | 'AUTO' | 'LEFT' | 'RIGHT' | 'CENTER' | 'JUSTIFY';
interface DividerData {
/** Styling for the divider's container. */
containerData?: PluginContainerData;
/** Divider line style. */
lineStyle?: LineStyleWithLiterals;
/** Divider width. */
width?: WidthWithLiterals;
/** Divider alignment. */
alignment?: DividerDataAlignmentWithLiterals;
}
declare enum LineStyle {
/** Single Line */
SINGLE = "SINGLE",
/** Double Line */
DOUBLE = "DOUBLE",
/** Dashed Line */
DASHED = "DASHED",
/** Dotted Line */
DOTTED = "DOTTED"
}
/** @enumType */
type LineStyleWithLiterals = LineStyle | 'SINGLE' | 'DOUBLE' | 'DASHED' | 'DOTTED';
declare enum Width {
/** Large line */
LARGE = "LARGE",
/** Medium line */
MEDIUM = "MEDIUM",
/** Small line */
SMALL = "SMALL"
}
/** @enumType */
type WidthWithLiterals = Width | 'LARGE' | 'MEDIUM' | 'SMALL';
declare enum DividerDataAlignment {
/** Center alignment */
CENTER = "CENTER",
/** Left alignment */
LEFT = "LEFT",
/** Right alignment */
RIGHT = "RIGHT"
}
/** @enumType */
type DividerDataAlignmentWithLiterals = DividerDataAlignment | 'CENTER' | 'LEFT' | 'RIGHT';
interface FileData {
/** Styling for the file's container. */
containerData?: PluginContainerData;
/** The source for the file's data. */
src?: FileSource;
/** File name. */
name?: string | null;
/** File type. */
type?: string | null;
/**
* Use `sizeInKb` instead.
* @deprecated
*/
size?: number | null;
/** Settings for PDF files. */
pdfSettings?: PDFSettings;
/** File MIME type. */
mimeType?: string | null;
/** File path. */
path?: string | null;
/** File size in KB. */
sizeInKb?: string | null;
}
declare enum ViewMode {
/** No PDF view */
NONE = "NONE",
/** Full PDF view */
FULL = "FULL",
/** Mini PDF view */
MINI = "MINI"
}
/** @enumType */
type ViewModeWithLiterals = ViewMode | 'NONE' | 'FULL' | 'MINI';
interface FileSource extends FileSourceDataOneOf {
/** The absolute URL for the file's source. */
url?: string | null;
/**
* Custom ID. Use `id` instead.
* @deprecated
*/
custom?: string | null;
/** An ID that's resolved to a URL by a resolver function. */
id?: string | null;
/** Indicates whether the file's source is private. Defaults to `false`. */
private?: boolean | null;
}
/** @oneof */
interface FileSourceDataOneOf {
/** The absolute URL for the file's source. */
url?: string | null;
/**
* Custom ID. Use `id` instead.
* @deprecated
*/
custom?: string | null;
/** An ID that's resolved to a URL by a resolver function. */
id?: string | null;
}
interface PDFSettings {
/**
* 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.
*/
viewMode?: ViewModeWithLiterals;
/** Sets whether the PDF download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
/** Sets whether the PDF print button is disabled. Defaults to `false`. */
disablePrint?: boolean | null;
}
interface GalleryData {
/** Styling for the gallery's container. */
containerData?: PluginContainerData;
/** The items in the gallery. */
items?: Item[];
/** Options for defining the gallery's appearance. */
options?: GalleryOptions;
/** Sets whether the gallery's expand button is disabled. Defaults to `false`. */
disableExpand?: boolean | null;
/** Sets whether the gallery's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
}
interface V1Media {
/** The source for the media's data. */
src?: FileSource;
/** Media width in pixels. */
width?: number | null;
/** Media height in pixels. */
height?: number | null;
/** Media duration in seconds. Only relevant for audio and video files. */
duration?: number | null;
}
interface ItemImage {
/** Image file details. */
media?: V1Media;
/** Link details for images that are links. */
link?: Link;
}
interface Video {
/** Video file details. */
media?: V1Media;
/** Video thumbnail file details. */
thumbnail?: V1Media;
}
interface Item extends ItemDataOneOf {
/** An image item. */
image?: ItemImage;
/** A video item. */
video?: Video;
/** Item title. */
title?: string | null;
/** Item's alternative text. */
altText?: string | null;
}
/** @oneof */
interface ItemDataOneOf {
/** An image item. */
image?: ItemImage;
/** A video item. */
video?: Video;
}
interface GalleryOptions {
/** Gallery layout. */
layout?: GalleryOptionsLayout;
/** Styling for gallery items. */
item?: ItemStyle;
/** Styling for gallery thumbnail images. */
thumbnails?: Thumbnails;
}
declare enum LayoutType {
/** Collage type */
COLLAGE = "COLLAGE",
/** Masonry type */
MASONRY = "MASONRY",
/** Grid type */
GRID = "GRID",
/** Thumbnail type */
THUMBNAIL = "THUMBNAIL",
/** Slider type */
SLIDER = "SLIDER",
/** Slideshow type */
SLIDESHOW = "SLIDESHOW",
/** Panorama type */
PANORAMA = "PANORAMA",
/** Column type */
COLUMN = "COLUMN",
/** Magic type */
MAGIC = "MAGIC",
/** Fullsize images type */
FULLSIZE = "FULLSIZE"
}
/** @enumType */
type LayoutTypeWithLiterals = LayoutType | 'COLLAGE' | 'MASONRY' | 'GRID' | 'THUMBNAIL' | 'SLIDER' | 'SLIDESHOW' | 'PANORAMA' | 'COLUMN' | 'MAGIC' | 'FULLSIZE';
declare enum Orientation {
/** Rows Orientation */
ROWS = "ROWS",
/** Columns Orientation */
COLUMNS = "COLUMNS"
}
/** @enumType */
type OrientationWithLiterals = Orientation | 'ROWS' | 'COLUMNS';
declare enum Crop {
/** Crop to fill */
FILL = "FILL",
/** Crop to fit */
FIT = "FIT"
}
/** @enumType */
type CropWithLiterals = Crop | 'FILL' | 'FIT';
declare enum ThumbnailsAlignment {
/** Top alignment */
TOP = "TOP",
/** Right alignment */
RIGHT = "RIGHT",
/** Bottom alignment */
BOTTOM = "BOTTOM",
/** Left alignment */
LEFT = "LEFT",
/** No thumbnail */
NONE = "NONE"
}
/** @enumType */
type ThumbnailsAlignmentWithLiterals = ThumbnailsAlignment | 'TOP' | 'RIGHT' | 'BOTTOM' | 'LEFT' | 'NONE';
interface GalleryOptionsLayout {
/** Gallery layout type. */
type?: LayoutTypeWithLiterals;
/** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */
horizontalScroll?: boolean | null;
/** Gallery orientation. */
orientation?: OrientationWithLiterals;
/** The number of columns to display on full size screens. */
numberOfColumns?: number | null;
/** The number of columns to display on mobile screens. */
mobileNumberOfColumns?: number | null;
}
interface ItemStyle {
/** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */
targetSize?: number | null;
/** Item ratio */
ratio?: number | null;
/** Sets how item images are cropped. */
crop?: CropWithLiterals;
/** The spacing between items in pixels. */
spacing?: number | null;
}
interface Thumbnails {
/** Thumbnail alignment. */
placement?: ThumbnailsAlignmentWithLiterals;
/** Spacing between thumbnails in pixels. */
spacing?: number | null;
}
interface GIFData {
/** Styling for the GIF's container. */
containerData?: PluginContainerData;
/** The source of the full size GIF. */
original?: GIF;
/** The source of the downsized GIF. */
downsized?: GIF;
/** Height in pixels. */
height?: number;
/** Width in pixels. */
width?: number;
/** Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. */
gifType?: GIFTypeWithLiterals;
}
interface GIF {
/**
* GIF format URL.
* @format WEB_URL
*/
gif?: string | null;
/**
* MP4 format URL.
* @format WEB_URL
*/
mp4?: string | null;
/**
* Thumbnail URL.
* @format WEB_URL
*/
still?: string | null;
}
declare enum GIFType {
NORMAL = "NORMAL",
STICKER = "STICKER"
}
/** @enumType */
type GIFTypeWithLiterals = GIFType | 'NORMAL' | 'STICKER';
interface HeadingData {
/** Heading level from 1-6. */
level?: number;
/** Styling for the heading text. */
textStyle?: TextStyle;
/** Indentation level from 1-4. */
indentation?: number | null;
/** Rendered heading level for SEO/accessibility, overrides the HTML tag when set. */
renderedLevel?: number | null;
}
interface HTMLData extends HTMLDataDataOneOf {
/** The URL for the HTML code for the node. */
url?: string;
/** The HTML code for the node. */
html?: string;
/**
* Whether this is an AdSense element. Use `source` instead.
* @deprecated
*/
isAdsense?: boolean | null;
/** The WixelWidget ID for AI_WIDGET source nodes. */
widgetId?: string;
/** Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. */
containerData?: PluginContainerData;
/** The type of HTML code. */
source?: SourceWithLiterals;
/** If container height is aligned with its content height. Defaults to `true`. */
autoHeight?: boolean | null;
}
/** @oneof */
interface HTMLDataDataOneOf {
/** The URL for the HTML code for the node. */
url?: string;
/** The HTML code for the node. */
html?: string;
/**
* Whether this is an AdSense element. Use `source` instead.
* @deprecated
*/
isAdsense?: boolean | null;
/** The WixelWidget ID for AI_WIDGET source nodes. */
widgetId?: string;
}
declare enum Source {
HTML = "HTML",
ADSENSE = "ADSENSE",
AI = "AI",
AI_WIDGET = "AI_WIDGET"
}
/** @enumType */
type SourceWithLiterals = Source | 'HTML' | 'ADSENSE' | 'AI' | 'AI_WIDGET';
interface ImageData {
/** Styling for the image's container. */
containerData?: PluginContainerData;
/** Image file details. */
image?: V1Media;
/** Link details for images that are links. */
link?: Link;
/** Sets whether the image expands to full screen when clicked. Defaults to `false`. */
disableExpand?: boolean | null;
/** Image's alternative text. */
altText?: string | null;
/**
* Deprecated: use Caption node instead.
* @deprecated
*/
caption?: string | null;
/** Sets whether the image's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
/** Sets whether the image is decorative and does not need an explanation. Defaults to `false`. */
decorative?: boolean | null;
/** Styling for the image. */
styles?: ImageDataStyles;
/** Non-destructive crop rectangle, expressed as fractions (0-1) of the original image. When omitted, the full image is shown. */
crop?: ImageDataCrop;
}
interface StylesBorder {
/** Border width in pixels. */
width?: number | null;
/**
* Border color as a hexadecimal value.
* @maxLength 19
*/
color?: string | null;
/** Border radius in pixels. */
radius?: number | null;
}
interface ImageDataStyles {
/** Border attributes. */
border?: StylesBorder;
}
interface LinkPreviewData {
/** Styling for the link preview's container. */
containerData?: PluginContainerData;
/** Link details. */
link?: Link;
/** Preview title. */
title?: string | null;
/** Preview thumbnail URL. */
thumbnailUrl?: string | null;
/** Preview description. */
description?: string | null;
/** The preview content as HTML. */
html?: string | null;
/** Styling for the link preview. */
styles?: LinkPreviewDataStyles;
}
declare enum StylesPosition {
/** Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) */
START = "START",
/** Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) */
END = "END",
/** Thumbnail positioned at the top */
TOP = "TOP",
/** Thumbnail hidden and not displayed */
HIDDEN = "HIDDEN"
}
/** @enumType */
type StylesPositionWithLiterals = StylesPosition | 'START' | 'END' | 'TOP' | 'HIDDEN';
interface LinkPreviewDataStyles {
/**
* Background color as a hexadecimal value.
* @maxLength 19
*/
backgroundColor?: string | null;
/**
* Title color as a hexadecimal value.
* @maxLength 19
*/
titleColor?: string | null;
/**
* Subtitle color as a hexadecimal value.
* @maxLength 19
*/
subtitleColor?: string | null;
/**
* Link color as a hexadecimal value.
* @maxLength 19
*/
linkColor?: string | null;
/** Border width in pixels. */
borderWidth?: number | null;
/** Border radius in pixels. */
borderRadius?: number | null;
/**
* Border color as a hexadecimal value.
* @maxLength 19
*/
borderColor?: string | null;
/** Position of thumbnail. Defaults to `START`. */
thumbnailPosition?: StylesPositionWithLiterals;
}
interface MapData {
/** Styling for the map's container. */
containerData?: PluginContainerData;
/** Map settings. */
mapSettings?: MapSettings;
}
interface MapSettings {
/** The address to display on the map. */
address?: string | null;
/** Sets whether the map is draggable. */
draggable?: boolean | null;
/** Sets whether the location marker is visible. */
marker?: boolean | null;
/** Sets whether street view control is enabled. */
streetViewControl?: boolean | null;
/** Sets whether zoom control is enabled. */
zoomControl?: boolean | null;
/** Location latitude. */
lat?: number | null;
/** Location longitude. */
lng?: number | null;
/** Location name. */
locationName?: string | null;
/** Sets whether view mode control is enabled. */
viewModeControl?: boolean | null;
/** Initial zoom value. */
initialZoom?: number | null;
/** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */
mapType?: MapTypeWithLiterals;
}
declare enum MapType {
/** Roadmap map type */
ROADMAP = "ROADMAP",
/** Satellite map type */
SATELITE = "SATELITE",
/** Hybrid map type */
HYBRID = "HYBRID",
/** Terrain map type */
TERRAIN = "TERRAIN"
}
/** @enumType */
type MapTypeWithLiterals = MapType | 'ROADMAP' | 'SATELITE' | 'HYBRID' | 'TERRAIN';
interface ParagraphData {
/** Styling for the paragraph text. */
textStyle?: TextStyle;
/** Indentation level from 1-4. */
indentation?: number | null;
/** Paragraph level */
level?: number | null;
}
interface PollData {
/** Styling for the poll's container. */
containerData?: PluginContainerData;
/** Poll data. */
poll?: Poll;
/** Layout settings for the poll and voting options. */
layout?: PollDataLayout;
/** Styling for the poll and voting options. */
design?: Design;
}
declare enum ViewRole {
/** Only Poll creator can view the results */
CREATOR = "CREATOR",
/** Anyone who voted can see the results */
VOTERS = "VOTERS",
/** Anyone can see the results, even if one didn't vote */
EVERYONE = "EVERYONE"
}
/** @enumType */
type ViewRoleWithLiterals = ViewRole | 'CREATOR' | 'VOTERS' | 'EVERYONE';
declare enum VoteRole {
/** Logged in member */
SITE_MEMBERS = "SITE_MEMBERS",
/** Anyone */
ALL = "ALL"
}
/** @enumType */
type VoteRoleWithLiterals = VoteRole | 'SITE_MEMBERS' | 'ALL';
interface Permissions {
/** Sets who can view the poll results. */
view?: ViewRoleWithLiterals;
/** Sets who can vote. */
vote?: VoteRoleWithLiterals;
/** Sets whether one voter can vote multiple times. Defaults to `false`. */
allowMultipleVotes?: boolean | null;
}
interface Option {
/** Option ID. */
id?: string | null;
/** Option title. */
title?: string | null;
/** The image displayed with the option. */
image?: V1Media;
}
interface PollSettings {
/** Permissions settings for voting. */
permissions?: Permissions;
/** Sets whether voters are displayed in the vote results. Defaults to `true`. */
showVoters?: boolean | null;
/** Sets whether the vote count is displayed. Defaults to `true`. */
showVotesCount?: boolean | null;
}
declare enum PollLayoutType {
/** List */
LIST = "LIST",
/** Grid */
GRID = "GRID"
}
/** @enumType */
type PollLayoutTypeWithLiterals = PollLayoutType | 'LIST' | 'GRID';
declare enum PollLayoutDirection {
/** Left-to-right */
LTR = "LTR",
/** Right-to-left */
RTL = "RTL"
}
/** @enumType */
type PollLayoutDirectionWithLiterals = PollLayoutDirection | 'LTR' | 'RTL';
interface PollLayout {
/** The layout for displaying the voting options. */
type?: PollLayoutTypeWithLiterals;
/** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */
direction?: PollLayoutDirectionWithLiterals;
/** Sets whether to display the main poll image. Defaults to `false`. */
enableImage?: boolean | null;
}
interface OptionLayout {
/** Sets whether to display option images. Defaults to `false`. */
enableImage?: boolean | null;
}
declare enum PollDesignBackgroundType {
/** Color background type */
COLOR = "COLOR",
/** Image background type */
IMAGE = "IMAGE",
/** Gradiant background type */
GRADIENT = "GRADIENT"
}
/** @enumType */
type PollDesignBackgroundTypeWithLiterals = PollDesignBackgroundType | 'COLOR' | 'IMAGE' | 'GRADIENT';
interface BackgroundGradient {
/** The gradient angle in degrees. */
angle?: number | null;
/**
* The start color as a hexademical value.
* @maxLength 19
*/
startColor?: string | null;
/**
* The end color as a hexademical value.
* @maxLength 19
*/
lastColor?: string | null;
}
interface PollDesignBackground extends PollDesignBackgroundBackgroundOneOf {
/**
* The background color as a hexademical value.
* @maxLength 19
*/
color?: string | null;
/** An image to use for the background. */
image?: V1Media;
/** Details for a gradient background. */
gradient?: BackgroundGradient;
/** Background type. For each option, include the relevant details. */
type?: PollDesignBackgroundTypeWithLiterals;
}
/** @oneof */
interface PollDesignBackgroundBackgroundOneOf {
/**
* The background color as a hexademical value.
* @maxLength 19
*/
color?: string | null;
/** An image to use for the background. */
image?: V1Media;
/** Details for a gradient background. */
gradient?: BackgroundGradient;
}
interface PollDesign {
/** Background styling. */
background?: PollDesignBackground;
/** Border radius in pixels. */
borderRadius?: number | null;
}
interface OptionDesign {
/** Border radius in pixels. */
borderRadius?: number | null;
}
interface Poll {
/** Poll ID. */
id?: string | null;
/** Poll title. */
title?: string | null;
/** Poll creator ID. */
creatorId?: string | null;
/** Main poll image. */
image?: V1Media;
/** Voting options. */
options?: Option[];
/** The poll's permissions and display settings. */
settings?: PollSettings;
}
interface PollDataLayout {
/** Poll layout settings. */
poll?: PollLayout;
/** Voting otpions layout settings. */
options?: OptionLayout;
}
interface Design {
/** Styling for the poll. */
poll?: PollDesign;
/** Styling for voting options. */
options?: OptionDesign;
}
interface TextData {
/** The text to apply decorations to. */
text?: string;
/** The decorations to apply. */
decorations?: Decoration[];
}
/** Adds appearence changes to text */
interface Decoration extends DecorationDataOneOf {
/** Data for an anchor link decoration. */
anchorData?: AnchorData;
/** Data for a color decoration. */
colorData?: ColorData;
/** Data for an external link decoration. */
linkData?: LinkData;
/** Data for a mention decoration. */
mentionData?: MentionData;
/** Data for a font size decoration. */
fontSizeData?: FontSizeData;
/** Font weight for a bold decoration. */
fontWeightValue?: number | null;
/** Data for an italic decoration. Defaults to `true`. */
italicData?: boolean | null;
/** Data for an underline decoration. Defaults to `true`. */
underlineData?: boolean | null;
/** Data for a spoiler decoration. */
spoilerData?: SpoilerData;
/** Data for a strikethrough decoration. Defaults to `true`. */
strikethroughData?: boolean | null;
/** Data for a superscript decoration. Defaults to `true`. */
superscriptData?: boolean | null;
/** Data for a subscript decoration. Defaults to `true`. */
subscriptData?: boolean | null;
/** Data for a font family decoration. */
fontFamilyData?: FontFamilyData;
/** Data for a hand-drawn sketch annotation decoration. */
sketchData?: SketchData;
/** The type of decoration to apply. */
type?: DecorationTypeWithLiterals;
}
/** @oneof */
interface DecorationDataOneOf {
/** Data for an anchor link decoration. */
anchorData?: AnchorData;
/** Data for a color decoration. */
colorData?: ColorData;
/** Data for an external link decoration. */
linkData?: LinkData;
/** Data for a mention decoration. */
mentionData?: MentionData;
/** Data for a font size decoration. */
fontSizeData?: FontSizeData;
/** Font weight for a bold decoration. */
fontWeightValue?: number | null;
/** Data for an italic decoration. Defaults to `true`. */
italicData?: boolean | null;
/** Data for an underline decoration. Defaults to `true`. */
underlineData?: boolean | null;
/** Data for a spoiler decoration. */
spoilerData?: SpoilerData;
/** Data for a strikethrough decoration. Defaults to `true`. */
strikethroughData?: boolean | null;
/** Data for a superscript decoration. Defaults to `true`. */
superscriptData?: boolean | null;
/** Data for a subscript decoration. Defaults to `true`. */
subscriptData?: boolean | null;
/** Data for a font family decoration. */
fontFamilyData?: FontFamilyData;
/** Data for a hand-drawn sketch annotation decoration. */
sketchData?: SketchData;
}
declare enum DecorationType {
BOLD = "BOLD",
ITALIC = "ITALIC",
UNDERLINE = "UNDERLINE",
SPOILER = "SPOILER",
ANCHOR = "ANCHOR",
MENTION = "MENTION",
LINK = "LINK",
COLOR = "COLOR",
FONT_SIZE = "FONT_SIZE",
EXTERNAL = "EXTERNAL",
STRIKETHROUGH = "STRIKETHROUGH",
SUPERSCRIPT = "SUPERSCRIPT",
SUBSCRIPT = "SUBSCRIPT",
FONT_FAMILY = "FONT_FAMILY",
SKETCH = "SKETCH"
}
/** @enumType */
type DecorationTypeWithLiterals = DecorationType | 'BOLD' | 'ITALIC' | 'UNDERLINE' | 'SPOILER' | 'ANCHOR' | 'MENTION' | 'LINK' | 'COLOR' | 'FONT_SIZE' | 'EXTERNAL' | 'STRIKETHROUGH' | 'SUPERSCRIPT' | 'SUBSCRIPT' | 'FONT_FAMILY' | 'SKETCH';
interface AnchorData {
/** The target node's ID. */
anchor?: string;
}
interface ColorData {
/** The text's background color as a hexadecimal value. */
background?: string | null;
/** The text's foreground color as a hexadecimal value. */
foreground?: string | null;
}
interface LinkData {
/** Link details. */
link?: Link;
}
interface MentionData {
/** The mentioned user's name. */
name?: string;
/** The version of the user's name that appears after the `@` character in the mention. */
slug?: string;
/** Mentioned user's ID. */
id?: string | null;
}
interface FontSizeData {
/** The units used for the font size. */
unit?: FontTypeWithLiterals;
/** Font size value. */
value?: number | null;
}
declare enum FontType {
PX = "PX",
EM = "EM"
}
/** @enumType */
type FontTypeWithLiterals = FontType | 'PX' | 'EM';
interface SpoilerData {
/** Spoiler ID. */
id?: string | null;
}
interface FontFamilyData {
/** @maxLength 1000 */
value?: string | null;
}
interface AppEmbedData extends AppEmbedDataAppDataOneOf {
/** Data for embedded Wix Bookings content. */
bookingData?: BookingData;
/** Data for embedded Wix Events content. */
eventData?: EventData;
/** The type of Wix App content being embedded. */
type?: AppTypeWithLiterals;
/** The ID of the embedded content. */
itemId?: string | null;
/** The name of the embedded content. */
name?: string | null;
/**
* Deprecated: Use `image` instead.
* @deprecated
*/
imageSrc?: string | null;
/** The URL for the embedded content. */
url?: string | null;
/** An image for the embedded content. */
image?: V1Media;
/** Whether to hide the image. */
hideImage?: boolean | null;
/** Whether to hide the title. */
hideTitle?: boolean | null;
/** Whether to hide the price. */
hidePrice?: boolean | null;
/** Whether to hide the description (Event and Booking). */
hideDescription?: boolean | null;
/** Whether to hide the date and time (Event). */
hideDateTime?: boolean | null;
/** Whether to hide the location (Event). */
hideLocation?: boolean | null;
/** Whether to hide the duration (Booking). */
hideDuration?: boolean | null;
/** Whether to hide the button. */
hideButton?: boolean | null;
/** Whether to hide the ribbon. */
hideRibbon?: boolean | null;
/** Button styling options. */
buttonStyles?: ButtonStyles;
/** Image styling options. */
imageStyles?: ImageStyles;
/** Ribbon styling options. */
ribbonStyles?: RibbonStyles;
/** Card styling options. */
cardStyles?: CardStyles;
/** Styling for the app embed's container. */
containerData?: PluginContainerData;
/** Pricing data for embedded Wix App content. */
pricingData?: PricingData;
}
/** @oneof */
interface AppEmbedDataAppDataOneOf {
/** Data for embedded Wix Bookings content. */
bookingData?: BookingData;
/** Data for embedded Wix Events content. */
eventData?: EventData;
}
declare enum Position {
/** Image positioned at the start (left in LTR layouts, right in RTL layouts) */
START = "START",
/** Image positioned at the end (right in LTR layouts, left in RTL layouts) */
END = "END",
/** Image positioned at the top */
TOP = "TOP"
}
/** @enumType */
type PositionWithLiterals = Position | 'START' | 'END' | 'TOP';
declare enum AspectRatio {
/** 1:1 aspect ratio */
SQUARE = "SQUARE",
/** 16:9 aspect ratio */
RECTANGLE = "RECTANGLE"
}
/** @enumType */
type AspectRatioWithLiterals = AspectRatio | 'SQUARE' | 'RECTANGLE';
declare enum Resizing {
/** Fill the container, may crop the image */
FILL = "FILL",
/** Fit the image within the container */
FIT = "FIT"
}
/** @enumType */
type ResizingWithLiterals = Resizing | 'FILL' | 'FIT';
declare enum Placement {
/** Ribbon placed on the image */
IMAGE = "IMAGE",
/** Ribbon placed on the product information */
PRODUCT_INFO = "PRODUCT_INFO"
}
/** @enumType */
type PlacementWithLiterals = Placement | 'IMAGE' | 'PRODUCT_INFO';
declare enum Type {
/** Card with visible border and background */
CONTAINED = "CONTAINED",
/** Card without visible border */
FRAMELESS = "FRAMELESS"
}
/** @enumType */
type TypeWithLiterals = Type | 'CONTAINED' | 'FRAMELESS';
declare enum Alignment {
/** Content aligned to start (left in LTR layouts, right in RTL layouts) */
START = "START",
/** Content centered */
CENTER = "CENTER",
/** Content aligned to end (right in LTR layouts, left in RTL layouts) */
END = "END"
}
/** @enumType */
type AlignmentWithLiterals = Alignment | 'START' | 'CENTER' | 'END';
declare enum Layout {
/** Elements stacked vertically */
STACKED = "STACKED",
/** Elements arranged horizontally */
SIDE_BY_SIDE = "SIDE_BY_SIDE"
}
/** @enumType */
type LayoutWithLiterals = Layout | 'STACKED' | 'SIDE_BY_SIDE';
declare enum AppType {
PRODUCT = "PRODUCT",
EVENT = "EVENT",
BOOKING = "BOOKING"
}
/** @enumType */
type AppTypeWithLiterals = AppType | 'PRODUCT' | 'EVENT' | 'BOOKING';
interface BookingData {
/** Booking duration in minutes. */
durations?: string | null;
}
interface EventData {
/** Event schedule. */
scheduling?: string | null;
/** Event location. */
location?: string | null;
}
interface ButtonStyles {
/** Text to display on the button. */
buttonText?: string | null;
/** Border width in pixels. */
borderWidth?: number | null;
/** Border radius in pixels. */
borderRadius?: number | null;
/**
* Border color as a hexadecimal value.
* @maxLength 19
*/
borderColor?: string | null;
/**
* Text color as a hexadecimal value.
* @maxLength 19
*/
textColor?: string | null;
/**
* Background color as a hexadecimal value.
* @maxLength 19
*/
backgroundColor?: string | null;
/**
* Border color as a hexadecimal value (hover state).
* @maxLength 19
*/
borderColorHover?: string | null;
/**
* Text color as a hexadecimal value (hover state).
* @maxLength 19
*/
textColorHover?: string | null;
/**
* Background color as a hexadecimal value (hover state).
* @maxLength 19
*/
backgroundColorHover?: string | null;
/** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */
buttonSize?: string | null;
}
interface ImageStyles {
/** Whether to hide the image. */
hideImage?: boolean | null;
/** Position of image. Defaults to `START`. */
imagePosition?: PositionWithLiterals;
/** Aspect ratio for the image. Defaults to `SQUARE`. */
aspectRatio?: AspectRatioWithLiterals;
/** How the image should be resized. Defaults to `FILL`. */
resizing?: ResizingWithLiterals;
/**
* Image border color as a hexadecimal value.
* @maxLength 19
*/
borderColor?: string | null;
/** Image border width in pixels. */
borderWidth?: number | null;
/** Image border radius in pixels. */
borderRadius?: number | null;
}
interface RibbonStyles {
/** Text to display on the ribbon. */
ribbonText?: string | null;
/**
* Ribbon background color as a hexadecimal value.
* @maxLength 19
*/
backgroundColor?: string | null;
/**
* Ribbon text color as a hexadecimal value.
* @maxLength 19
*/
textColor?: string | null;
/**
* Ribbon border color as a hexadecimal value.
* @maxLength 19
*/
borderColor?: string | null;
/** Ribbon border width in pixels. */
borderWidth?: number | null;
/** Ribbon border radius in pixels. */
borderRadius?: number | null;
/** Placement of the ribbon. Defaults to `IMAGE`. */
ribbonPlacement?: PlacementWithLiterals;
}
interface CardStyles {
/**
* Card background color as a hexadecimal value.
* @maxLength 19
*/
backgroundColor?: string | null;
/**
* Card border color as a hexadecimal value.
* @maxLength 19
*/
borderColor?: string | null;
/** Card border width in pixels. */
borderWidth?: number | null;
/** Card border radius in pixels. */
borderRadius?: number | null;
/** Card type. Defaults to `CONTAINED`. */
type?: TypeWithLiterals;
/** Content alignment. Defaults to `START`. */
alignment?: AlignmentWithLiterals;
/** Layout for title and price. Defaults to `STACKED`. */
titlePriceLayout?: LayoutWithLiterals;
/**
* Title text color as a hexadecimal value.
* @maxLength 19
*/
titleColor?: string | null;
/**
* Text color as a hexadecimal value.
* @maxLength 19
*/
textColor?: string | null;
}
interface PricingData {
/**
* Minimum numeric price value as string (e.g., "10.99").
* @decimalValue options { maxScale:2 }
*/
valueFrom?: string | null;
/**
* Maximum numeric price value as string (e.g., "19.99").
* @decimalValue options { maxScale:2 }
*/
valueTo?: string | null;
/**
* Numeric price value as string after discount application (e.g., "15.99").
* @decimalValue options { maxScale:2 }
*/
discountedValue?: string | null;
/**
* Currency of the value in ISO 4217 format (e.g., "USD", "EUR").
* @format CURRENCY
*/
currency?: string | null;
/**
* Pricing plan ID.
* @format GUID
*/
pricingPlanId?: string | null;
}
interface VideoData {
/** Styling for the video's container. */
containerData?: PluginContainerData;
/** Video details. */
video?: V1Media;
/** Video thumbnail details. */
thumbnail?: V1Media;
/** Sets whether the video's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
/** Video title. */
title?: string | null;
/** Video options. */
options?: PlaybackOptions;
}
interface PlaybackOptions {
/** Sets whether the media will automatically start playing. */
autoPlay?: boolean | null;
/** Sets whether media's will be looped. */
playInLoop?: boolean | null;
/** Sets whether media's controls will be shown. */
showControls?: boolean | null;
}
interface EmbedData {
/** Styling for the oEmbed node's container. */
containerData?: PluginContainerData;
/** An [oEmbed](https://www.oembed.com) object. */
oembed?: Oembed;
/** Origin asset source. */
src?: string | null;
}
interface Oembed {
/** The resource type. */
type?: string | null;
/** The width of the resource specified in the `url` property in pixels. */
width?: number | null;
/** The height of the resource specified in the `url` property in pixels. */
height?: number | null;
/** Resource title. */
title?: string | null;
/** The source URL for the resource. */
url?: string | null;
/** HTML for embedding a video player. The HTML should have no padding or margins. */
html?: string | null;
/** The name of the author or owner of the resource. */
authorName?: string | null;
/** The URL for the author or owner of the resource. */
authorUrl?: string | null;
/** The name of the resource provider. */
providerName?: string | null;
/** The URL for the resource provider. */
providerUrl?: string | null;
/** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */
thumbnailUrl?: string | null;
/** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */
thumbnailWidth?: string | null;
/** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */
thumbnailHeight?: string | null;
/** The URL for an embedded viedo. */
videoUrl?: string | null;
/** The oEmbed version number. This value must be `1.0`. */
version?: string | null;
}
interface CollapsibleListData {
/** Styling for the collapsible list's container. */
containerData?: PluginContainerData;
/** If `true`, only one item can be expanded at a time. Defaults to `false`. */
expandOnlyOne?: boolean | null;
/** Sets which items are expanded when the page loads. */
initialExpandedItems?: InitialExpandedItemsWithLiterals;
/** The direction of the text in the list. Either left-to-right or right-to-left. */
direction?: DirectionWithLiterals;
/** If `true`, The collapsible item will appear in search results as an FAQ. */
isQapageData?: boolean | null;
}
declare enum InitialExpandedItems {
/** First item will be expended initally */
FIRST = "FIRST",
/** All items will expended initally */
ALL = "ALL",
/** All items collapsed initally */
NONE = "NONE"
}
/** @enumType */
type InitialExpandedItemsWithLiterals = InitialExpandedItems | 'FIRST' | 'ALL' | 'NONE';
declare enum Direction {
/** Left-to-right */
LTR = "LTR",
/** Right-to-left */
RTL = "RTL"
}
/** @enumType */
type DirectionWithLiterals = Direction | 'LTR' | 'RTL';
interface TableData {
/** Styling for the table's container. */
containerData?: PluginContainerData;
/** The table's dimensions. */
dimensions?: TableDataDimensions;
/**
* Deprecated: Use `rowHeader` and `columnHeader` instead.
* @deprecated
*/
header?: boolean | null;
/** Sets whether the table's first row is a header. Defaults to `false`. */
rowHeader?: boolean | null;
/** Sets whether the table's first column is a header. Defaults to `false`. */
columnHeader?: boolean | null;
/** The spacing between cells in pixels. Defaults to `0`. */
cellSpacing?: number | null;
/**
* Padding in pixels for cells. Follows CSS order: top, right, bottom, left.
* @maxSize 4
*/
cellPadding?: number[];
/** Table's alternative text. */
altText?: string | null;
}
interface TableDataDimensions {
/** An array representing relative width of each column in relation to the other columns. */
colsWidthRatio?: number[];
/** An array representing the height of each row in pixels. */
rowsHeight?: number[];
/** An array representing the minimum width of each column in pixels. */
colsMinWidth?: number[];
}
interface TableCellData {
/** Styling for the cell's background color and text alignment. */
cellStyle?: CellStyle;
/** The cell's border colors. */
borderColors?: BorderColors;
/** Defines how many columns the cell spans. Default: 1. */
colspan?: number | null;
/** Defines how many rows the cell spans. Default: 1. */
rowspan?: number | null;
/** The cell's border widths. */
borderWidths?: BorderWidths;
}
declare enum VerticalAlignment {
/** Top alignment */
TOP = "TOP",
/** Middle alignment */
MIDDLE = "MIDDLE",
/** Bottom alignment */
BOTTOM = "BOTTOM"
}
/** @enumType */
type VerticalAlignmentWithLiterals = VerticalAlignment | 'TOP' | 'MIDDLE' | 'BOTTOM';
interface CellStyle {
/** Vertical alignment for the cell's text. */
verticalAlignment?: VerticalAlignmentWithLiterals;
/**
* Cell background color as a hexadecimal value.
* @maxLength 19
*/
backgroundColor?: string | null;
}
interface BorderColors {
/**
* Left border color as a hexadecimal value.
* @maxLength 19
*/
left?: string | null;
/**
* Right border color as a hexadecimal value.
* @maxLength 19
*/
right?: string | null;
/**
* Top border color as a hexadecimal value.
* @maxLength 19
*/
top?: string | null;
/**
* Bottom border color as a hexadecimal value.
* @maxLength 19
*/
bottom?: string | null;
}
interface BorderWidths {
/** Left border width in pixels. */
left?: number | null;
/** Right border width in pixels. */
right?: number | null;
/** Top border width in pixels. */
top?: number | null;
/** Bottom border width in pixels. */
bottom?: number | null;
}
/**
* `NullValue` is a singleton enumeration to represent the null value for the
* `Value` type union.
*
* The JSON representation for `NullValue` is JSON `null`.
*/
declare enum NullValue {
/** Null value. */
NULL_VALUE = "NULL_VALUE"
}
/** @enumType */
type NullValueWithLiterals = NullValue | 'NULL_VALUE';
/**
* `ListValue` is a wrapper around a repeated field of values.
*
* The JSON representation for `ListValue` is JSON array.
*/
interface ListValue {
/** Repeated field of dynamically typed values. */
values?: any[];
}
interface AudioData {
/** Styling for the audio node's container. */
containerData?: PluginContainerData;
/** Audio file details. */
audio?: V1Media;
/** Sets whether the audio node's download button is disabled. Defaults to `false`. */
disableDownload?: boolean | null;
/** Cover image. */
coverImage?: V1Media;
/** Track name. */
name?: string | null;
/** Author name. */
authorName?: string | null;
/** An HTML version of the audio node. */
html?: string | null;
}
interface OrderedListData {
/** Indentation level from 0-4. */
indentation?: number;
/** Offset level from 0-4. */
offset?: number | null;
/** List start number. */
start?: number | null;
}
interface BulletedListData {
/** Indentation level from 0-4. */
indentation?: number;
/** Offset level from 0-4. */
offset?: number | null;
}
interface BlockquoteData {
/** Indentation level from 1-4. */
indentation?: number;
}
interface CaptionData {
textStyle?: TextStyle;
}
interface LayoutData {
/**
* Deprecated: Use `background` instead.
* @maxLength 19
* @deprecated
*/
backgroundColor?: string | null;
/** Background image. */
backgroundImage?: LayoutDataBackgroundImage;
/**
* Border color as a hexadecimal value.
* @maxLength 19
*/
borderColor?: string | null;
/** Border width in pixels. */
borderWidth?: number | null;
/** Border radius in pixels. */
borderRadius?: number | null;
/**
* Deprecated: Use `backdrop` instead.
* @maxLength 19
* @deprecated
*/
backdropColor?: string | null;
/** Backdrop image. */
backdropImage?: LayoutDataBackgroundImage;
/** Backdrop top padding. */
backdropPaddingTop?: number | null;
/** Backdrop bottom padding */
backdropPaddingBottom?: number | null;
/** Horizontal and vertical gap between columns */
gap?: number | null;
/**
* Padding in pixels for cells. Follows CSS order: top, right, bottom, left
* @maxSize 4
*/
cellPadding?: number[];
/** Vertical alignment for the cell's items. */
cellVerticalAlignment?: VerticalAlignmentAlignmentWithLiterals;
/** Responsiveness behaviour of columns when responsiveness applies. Either stacks or wrappers. */
responsivenessBehaviour?: ResponsivenessBehaviourWithLiterals;
/** Size in pixels when responsiveness_behaviour applies */
responsivenessBreakpoint?: number | null;
/** Styling for the layout's container. */
containerData?: PluginContainerData;
/** Defines where selected design propertied applies to */
designTarget?: DesignTargetWithLiterals;
/** Banner configuration. When present, this layout is attached to a document edge (top or bottom). */
banner?: Banner;
/** Background styling (color or gradient). */
background?: LayoutDataBackground;
/** Backdrop styling (color or gradient). */
backdrop?: Backdrop;
}
declare enum ImageScalingScaling {
/** Auto image scaling */
AUTO = "AUTO",
/** Contain image scaling */
CONTAIN = "CONTAIN",
/** Cover image scaling */
COVER = "COVER"
}
/** @enumType */
type ImageScalingScalingWithLiterals = ImageScalingScaling | 'AUTO' | 'CONTAIN' | 'COVER';
declare enum ImagePosition {
/** Image positioned at the center */
CENTER = "CENTER",
/** Image positioned on the left */
CENTER_LEFT = "CENTER_LEFT",
/** Image positioned on the right */
CENTER_RIGHT = "CENTER_RIGHT",
/** Image positioned at the center top */
TOP = "TOP",
/** Image positioned at the top left */
TOP_LEFT = "TOP_LEFT",
/** Image positioned at the top right */
TOP_RIGHT = "TOP_RIGHT",
/** Image positioned at the center bottom */
BOTTOM = "BOTTOM",
/** Image positioned at the bottom left */
BOTTOM_LEFT = "BOTTOM_LEFT",
/** Image positioned at the bottom right */
BOTTOM_RIGHT = "BOTTOM_RIGHT"
}
/** @enumType */
type ImagePositionWithLiterals = ImagePosition | 'CENTER' | 'CENTER_LEFT' | 'CENTER_RIGHT' | 'TOP' | 'TOP_LEFT' | 'TOP_RIGHT' | 'BOTTOM' | 'BOTTOM_LEFT' | 'BOTTOM_RIGHT';
interface LayoutDataBackgroundImage {
/** Background image. */
media?: V1Media;
/**
* Deprecated: use `overlay` instead. Legacy image opacity (0–100) that dimmed the image to reveal the `background`/`backdrop` color behind it.
* @deprecated
*/
opacity?: number | null;
/** Background image scaling. */
scaling?: ImageScalingScalingWithLiterals;
/** Position of background. Defaults to `CENTER`. */
position?: ImagePositionWithLiterals;
/** Blur radius in pixels applied to the image layer. `0` (default) leaves the image unblurred; blur is independent of any color overlay and the two stack. */
blur?: number | null;
/** Color or gradient drawn on top of the image. When present, this is the authoritative overlay and `opacity` is ignored. Its presence also marks content as authored under the new overlay model (vs. the legacy `opacity`-based dimming on `background`/`backdrop`). */
overlay?: LayoutDataBackground;
}
declare enum VerticalAlignmentAlignment {
/** Top alignment */
TOP = "TOP",
/** Middle alignment */
MIDDLE = "MIDDLE",
/** Bottom alignment */
BOTTOM = "BOTTOM"
}
/** @enumType */
type VerticalAlignmentAlignmentWithLiterals = VerticalAlignmentAlignment | 'TOP' | 'MIDDLE' | 'BOTTOM';
declare enum ResponsivenessBehaviour {
/** Stacking of columns */
STACK = "STACK",
/** Wrapping of columns */
WRAP = "WRAP"
}
/** @enumType */
type ResponsivenessBehaviourWithLiterals = ResponsivenessBehaviour | 'STACK' | 'WRAP';
declare enum DesignTarget {
/** Design applied to layout */
LAYOUT = "LAYOUT",
/** Design applied to cells */
CELL = "CELL"
}
/** @enumType */
type DesignTargetWithLiterals = DesignTarget | 'LAYOUT' | 'CELL';
interface LayoutCellData {
/** Size of the cell in 12 columns grid. */
colSpan?: number | null;
}
interface Metadata {
/** Schema version. */
version?: number;
/**
* When the object was created.
* @readonly
* @deprecated
*/
createdTimestamp?: Date | null;
/**
* When the object was most recently updated.
* @deprecated
*/
updatedTimestamp?: Date | null;
/** Object ID. */
id?: string | null;
}
interface DocumentStyle {
/** Styling for H1 nodes. */
headerOne?: TextNodeStyle;
/** Styling for H2 nodes. */
headerTwo?: TextNodeStyle;
/** Styling for H3 nodes. */
headerThree?: TextNodeStyle;
/** Styling for H4 nodes. */
headerFour?: TextNodeStyle;
/** Styling for H5 nodes. */
headerFive?: TextNodeStyle;
/** Styling for H6 nodes. */
headerSix?: TextNodeStyle;
/** Styling for paragraph nodes. */
paragraph?: TextNodeStyle;
/** Styling for block quote nodes. */
blockquote?: TextNodeStyle;
/** Styling for code block nodes. */
codeBlock?: TextNodeStyle;
}
interface TextNodeStyle {
/** The decorations to apply to the node. */
decorations?: Decoration[];
/** Padding and background color for the node. */
nodeStyle?: NodeStyle;
/** Line height for text in the node. */
lineHeight?: string | null;
}
interface Media {
/**
* Main media (image, video, etc.) associated with this product.
* Automatically set to the first item in the media list.
* @readonly
*/
main?: ProductMedia;
/**
* All media items.
* > **Note:** Returned only when you pass `"MEDIA_ITEMS_INFO"` to the `fields` array in Products API requests.
*/
itemsInfo?: MediaItemsInfo;
}
interface ProductMedia extends ProductMediaSetByOneOf, ProductMediaMediaOneOf {
/**
* Set media by ID of an existing file in Wix Media Manager.
* @minLength 1
* @maxLength 200
*/
id?: string;
/**
* Set media using an external media URL.
* @format WEB_URL
*/
url?: string;
/**
* Image details. Populated when you provide a [Wix Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager) file ID in this item's `id` field.
* @readonly
*/
image?: Image;
/**
* Video details. Populated when you provide a Wix Media Manager file ID in this istem's `id` field.
* @readonly
*/
video?: VideoV2;
/**
* Image alt text.
* @minLength 1
* @maxLength 1000
*/
altText?: string | null;
/**
* 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.
* @maxLength 80
*/
displayName?: string | null;
/**
* Media type.
* @readonly
*/
mediaType?: MediaTypeWithLiterals;
/**
* Media thumbnail.
* > **Note:** Returned only when you pass `"THUMBNAIL"` to the `fields` array in Products API requests.
*/
thumbnail?: Thumbnail;
/**
* ID used to upload media to Wix Media Manager.
* @readonly
* @format GUID
*/
uploadId?: string;
}
/** @oneof */
interface ProductMediaSetByOneOf {
/**
* Set media by ID of an existing file in Wix Media Manager.
* @minLength 1
* @maxLength 200
*/
id?: string;
/**
* Set media using an external media URL.
* @format WEB_URL
*/
url?: string;
}
/** @oneof */
interface ProductMediaMediaOneOf {
/**
* Image details. Populated when you provide a [Wix Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager) file ID in this item's `id` field.
* @readonly
*/
image?: Image;
/**
* Video details. Populated when you provide a Wix Media Manager file ID in this istem's `id` field.
* @readonly
*/
video?: VideoV2;
}
interface Image {
/**
* WixMedia image ID.
* @maxLength 400
*/
id?: string;
/**
* Image URL.
* @format WEB_URL
*/
url?: string;
/**
* Original image height.
* @readonly
*/
height?: number;
/**
* Original image width.
* @readonly
*/
width?: number;
/**
* Image alt text.
* @maxLength 200
*/
altText?: string | null;
/**
* Image filename.
* @readonly
* @maxLength 200
*/
filename?: string | null;
}
interface VideoV2 {
/**
* WixMedia ID.
* @maxLength 400
*/
id?: string;
/**
* Available resolutions for the video, starting with the optimal resolution.
* @readonly
* @maxSize 100
*/
resolutions?: VideoResolution[];
/**
* Video filename.
* @readonly
* @maxLength 200
*/
filename?: string | null;
}
interface VideoResolution {
/**
* Video URL.
* @format WEB_URL
*/
url?: string;
/** Video height. */
height?: number;
/** Video width. */
width?: number;
/**
* Video format for example, mp4, hls.
* @maxLength 200
*/
format?: string;
}
declare enum MediaType {
/** Image media type. */
IMAGE = "IMAGE",
/** Video media type. */
VIDEO = "VIDEO"
}
/** @enumType */
type MediaTypeWithLiterals = MediaType | 'IMAGE' | 'VIDEO';
interface Thumbnail {
/**
* Thumbnail url.
* @format WEB_URL
*/
url?: string;
/** Thumbnail height. */
height?: number;
/** Thumbnail width. */
width?: number;
/**
* Thumbnail alt text.
* @minLength 1
* @maxLength 1000
*/
altText?: string | null;
}
interface MediaItemsInfo {
/**
* All media items associated with this product.
*
* The first item in the array is automatically set as the product's main media.
* @maxSize 50
*/
items?: ProductMedia[];
}
/**
* The SEO schema object contains data about different types of meta tags. It makes sure that the information about your page is presented properly to search engines.
* The search engines use this information for ranking purposes, or to display snippets in the search results.
* This data will override other sources of tags (for example patterns) and will be included in the section of the HTML document, while not being displayed on the page itself.
*/
interface SeoSchema {
/** SEO tag information. */
tags?: Tag[];
/** SEO general settings. */
settings?: Settings;
}
interface Keyword {
/** Keyword value. */
term?: string;
/** Whether the keyword is the main focus keyword. */
isMain?: boolean;
/**
* The source that added the keyword terms to the SEO settings.
* @maxLength 1000
*/
origin?: string | null;
}
interface Tag {
/**
* SEO tag type.
*
*
* Supported values: `title`, `meta`, `script`, `link`.
*/
type?: string;
/**
* 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"}`.
*/
props?: Record | null;
/** SEO tag metadata. For example, `{"height": 300, "width": 240}`. */
meta?: Record | null;
/** SEO tag inner content. For example, ` inner content `. */
children?: string;
/** Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages). */
custom?: boolean;
/** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */
disabled?: boolean;
}
interface Settings {
/**
* 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).
*/
preventAutoRedirect?: boolean;
/**
* User-selected keyword terms for a specific page.
* @maxSize 5
*/
keywords?: Keyword[];
}
interface ConnectedOption extends ConnectedOptionOptionSettingsOneOf {
/** Choices settings. */
choicesSettings?: ChoicesSettings;
/**
* ID of a customization with `customizationType: PRODUCT_OPTION`.
* @minLength 1
* @maxLength 36
*/
id?: string | null;
/**
* Option name.
* @minLength 1
* @maxLength 50
*/
name?: string | null;
/** Option render type. */
optionRenderType?: ProductOptionRenderTypeWithLiterals;
/**
* 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).
* @readonly
* @minLength 1
* @maxLength 50
*/
key?: string;
}
/** @oneof */
interface ConnectedOptionOptionSettingsOneOf {
/** Choices settings. */
choicesSettings?: ChoicesSettings;
}
declare enum ProductOptionRenderType {
/** Text choices. */
TEXT_CHOICES = "TEXT_CHOICES",
/** Swatch choices. */
SWATCH_CHOICES = "SWATCH_CHOICES"
}
/** @enumType */
type ProductOptionRenderTypeWithLiterals = ProductOptionRenderType | 'TEXT_CHOICES' | 'SWATCH_CHOICES';
interface ChoicesSettings {
/**
* List of available choices for the option.
* @minSize 1
* @maxSize 100
* @immutable
*/
choices?: ConnectedOptionChoice[];
}
interface ConnectedOptionChoice extends ConnectedOptionChoiceValueOneOf {
/**
* 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.
* @minLength 3
* @maxLength 20
*/
colorCode?: string;
/**
* Choice ID.
* @format GUID
*/
choiceId?: string | null;
/**
* Product media to display when this choice is selected.
*
* When not empty, only these images are shown when a customer selects this choice. Otherwise, all product images are shown.
* When multiple choices from different options are selected, only media present in `linkedMedia` of ALL selected choices are shown.
* For example, if `Color: Red` has images 1, 2, 3 and `Material: Silk` has images 2, 3, 5, then only images 2 and 3 are shown when both are selected.
* @maxSize 15
* @deprecated Product media to display when this choice is selected.
*
* When not empty, only these images are shown when a customer selects this choice. Otherwise, all product images are shown.
* When multiple choices from different options are selected, only media present in `linkedMedia` of ALL selected choices are shown.
* For example, if `Color: Red` has images 1, 2, 3 and `Material: Silk` has images 2, 3, 5, then only images 2 and 3 are shown when both are selected.
* @replacedBy media
* @targetRemovalDate 2026-12-31
*/
linkedMedia?: ProductMedia[];
/** Choice type. */
choiceType?: ChoiceTypeWithLiterals;
/**
* 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).
* @readonly
* @minLength 1
* @maxLength 50
*/
key?: string;
/**
* Choice name. For text choices, this field also contains the choice value.
* @minLength 1
* @maxLength 50
*/
name?: string | null;
/**
* 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`.
* @readonly
*/
inStock?: boolean;
/**
* Whether at least one variant with this choice is visible.
*
* Default: `false`
* @readonly
*/
visible?: boolean;
/**
* Image to display alongside the choice.
*
* This field is returned only when the `PRODUCT_CHOICES_DISPLAY_IMAGE` requested field is included in the `fields` request parameter.
* The returned image contains only its ID, URL, and alt text.
*/
displayImage?: Image;
/**
* Media references for this choice.
*
* On *write*, you can use either `media_id` or `url` to assign a media to this choice from the product's media.
* On *read*, this field will return the media IDs of the associated media items.
* When this field is requested via the `PRODUCT_CHOICES_MEDIA_REFERENCES` field, the `linked_media` field will be returned empty to avoid duplication.
*
* > **Note:** Use this field instead of `linked_media`. To use it in your read flow, pass `"PRODUCT_CHOICES_MEDIA_REFERENCES"` to the `fields` array in your request.
*/
media?: MediaReferences;
}
/** @oneof */
interface ConnectedOptionChoiceValueOneOf {
/**
* 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.
* @minLength 3
* @maxLength 20
*/
colorCode?: string;
}
declare enum ChoiceType {
/** Text choice. */
CHOICE_TEXT = "CHOICE_TEXT",
/** Single color choice. */
ONE_COLOR = "ONE_COLOR"
}
/** @enumType */
type ChoiceTypeWithLiterals = ChoiceType | 'CHOICE_TEXT' | 'ONE_COLOR';
interface MultipleColors {
/**
* List of color codes.
* @minLength 3
* @maxLength 20
* @minSize 2
* @maxSize 2
*/
colorCodes?: string[];
}
interface ConnectedModifier extends ConnectedModifierModifierSettingsOneOf {
/** Free text modifier settings. */
freeTextSettings?: FreeTextSettings;
/** Choice settings. */
choicesSettings?: ModifierChoicesSettings;
/**
* ID of a customization with `customizationType: MODIFIER`.
* @minLength 1
* @maxLength 36
*/
id?: string | null;
/**
* Modifier title.
* @minLength 1
* @maxLength 50
*/
name?: string | null;
/** Modifier render type. */
modifierRenderType?: ModifierRenderTypeWithLiterals;
/** Whether customer input is required for this modifier. */
mandatory?: boolean;
/**
* 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).
* @readonly
* @minLength 1
* @maxLength 50
*/
key?: string;
}
/** @oneof */
interface ConnectedModifierModifierSettingsOneOf {
/** Free text modifier settings. */
freeTextSettings?: FreeTextSettings;
/** Choice settings. */
choicesSettings?: ModifierChoicesSettings;
}
declare enum ModifierRenderType {
/** Free text. */
FREE_TEXT = "FREE_TEXT",
/** Text choices. */
TEXT_CHOICES = "TEXT_CHOICES",
/** Swatch choices. */
SWATCH_CHOICES = "SWATCH_CHOICES"
}
/** @enumType */
type ModifierRenderTypeWithLiterals = ModifierRenderType | 'FREE_TEXT' | 'TEXT_CHOICES' | 'SWATCH_CHOICES';
interface FreeTextSettings {
/** Minimum number of characters. */
minCharCount?: number;
/**
* Maximum number of characters.
* @max 500
*/
maxCharCount?: number;
/**
* Default amount to be added to the product's price.
* @decimalValue options { gte:0, lte:999999999, maxScale:3 }
*/
defaultAddedPrice?: string | null;
/**
* Title of the text to be input by the customer.
* @minLength 1
* @maxLength 150
*/
title?: string;
/**
* 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).
* @readonly
* @minLength 1
* @maxLength 150
*/
key?: string;
}
interface ModifierChoicesSettings {
/**
* List of modifier choices.
* @minSize 1
* @maxSize 100
* @immutable
*/
choices?: ConnectedModifierChoice[];
}
interface ConnectedModifierChoice extends ConnectedModifierChoiceValueOneOf {
/**
* Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).
* @minLength 3
* @maxLength 20
*/
colorCode?: string;
/**
* Choice ID.
* @format GUID
*/
choiceId?: string | null;
/**
* Product media.
* @maxSize 15
* @deprecated Product media.
* @replacedBy media
* @targetRemovalDate 2026-12-31
*/
linkedMedia?: ProductMedia[];
/** Choice type. */
choiceType?: ChoiceTypeWithLiterals;
/**
* 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).
* @readonly
* @minLength 1
* @maxLength 50
*/
key?: string;
/**
* Choice name.
* @minLength 1
* @maxLength 50
*/
name?: string | null;
/**
* Added price.
* @decimalValue options { gte:0, lte:999999999, maxScale:3 }
*/
addedPrice?: string | null;
/**
* Image to display alongside the choice.
*
* This field is returned only when the `PRODUCT_CHOICES_DISPLAY_IMAGE` requested field is included in the `fields` request parameter.
* The returned image contains only its ID, URL, and alt text.
*/
displayImage?: Image;
/**
* Media references for this choice.
*
* On *write*, you can use either `media_id` or `url` to assign a media to this choice from the product's media.
* On *read*, this field will return the media IDs of the associated media items.
* When this field is requested via the `PRODUCT_CHOICES_MEDIA_REFERENCES` field, the `linked_media` field will be returned empty to avoid duplication.
*
* > **Note:** Use this field instead of `linked_media`. To use it in your read flow, pass `"PRODUCT_CHOICES_MEDIA_REFERENCES"` to the `fields` array in your request.
*/
media?: MediaReferences;
}
/** @oneof */
interface ConnectedModifierChoiceValueOneOf {
/**
* Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).
* @minLength 3
* @maxLength 20
*/
colorCode?: string;
}
interface V3Brand {
/**
* Brand ID.
* @format GUID
*/
id?: string | null;
/**
* Brand name.
* @maxLength 50
*/
name?: string | null;
}
interface InfoSection {
/**
* Info section ID.
* @format GUID
*/
id?: string | null;
/**
* Info section unique name.
* > **Note:** Returned only when you pass `"INFO_SECTION"` to the `fields` array in Products API requests.
* @maxLength 100
*/
uniqueName?: string | null;
/**
* Info section title.
* > **Note:** Returned only when you pass `"INFO_SECTION"` to the `fields` array in Products API requests.
* @minLength 1
* @maxLength 50
* @readonly
*/
title?: string | null;
/**
* Info section description using rich content.
* > **Note:** Returned only when you pass `"INFO_SECTION_DESCRIPTION"` to the `fields` array in Products API requests.
*
*
* See Ricos document reference
*
* @readonly
*/
description?: RichContent;
/**
* 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.
* @maxLength 16000
*/
plainDescription?: string | null;
}
interface Ribbon {
/**
* Ribbon ID.
* @minLength 1
* @maxLength 36
*/
id?: string | null;
/**
* Ribbon name.
* @maxLength 30
*/
name?: string | null;
}
interface ProductCategoriesInfo {
/**
* A list of categories related to the product.
* @readonly
* @maxSize 2000
*/
categories?: ProductCategory[];
}
interface ProductCategory {
/**
* Category ID.
* @format GUID
*/
id?: string;
/**
* 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#add-and-arrange-products-in-a-category) sample flow.
* @max 200
*/
index?: number | null;
}
interface ProductCategoryIdsInfo {
/**
* A list of category ids related to the product.
* @readonly
* @maxSize 2000
* @format GUID
*/
categoryIds?: string[];
}
interface PriceRange {
/** Minimum value. */
minValue?: FixedMonetaryAmount;
/** Maximum value. */
maxValue?: FixedMonetaryAmount;
}
interface FixedMonetaryAmount {
/**
* Monetary amount. For example, `"3.99"`, or `"-4.99"` for a negative amount.
* @decimalValue options { gte:0, lte:999999999, maxScale:3 }
*/
amount?: string;
/**
* Formatted monetary amount. For example, `"$3.99"`.
* > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
* @readonly
* @maxLength 20
*/
formattedAmount?: string | null;
}
interface Inventory {
/**
* Current availability status.
* @readonly
*/
availabilityStatus?: InventoryAvailabilityStatusWithLiterals;
/**
* Current preorder status.
* @readonly
*/
preorderStatus?: PreorderStatusWithLiterals;
/**
* Preorder availability status.
* @readonly
*/
preorderAvailability?: ProductPreorderAvailabilityWithLiterals;
}
declare enum InventoryAvailabilityStatus {
/** All variants are in stock and available for purchase. */
IN_STOCK = "IN_STOCK",
/** All variants are out of stock. */
OUT_OF_STOCK = "OUT_OF_STOCK",
/** Some variants are out of stock and some are in stock and available for purchase. */
PARTIALLY_OUT_OF_STOCK = "PARTIALLY_OUT_OF_STOCK"
}
/** @enumType */
type InventoryAvailabilityStatusWithLiterals = InventoryAvailabilityStatus | 'IN_STOCK' | 'OUT_OF_STOCK' | 'PARTIALLY_OUT_OF_STOCK';
declare enum PreorderStatus {
/** All variants are enabled for preorder. */
ENABLED = "ENABLED",
/** All variants are disabled for preorder. */
DISABLED = "DISABLED",
/** Some variants are disabled and some are enabled for preorder. */
PARTIALLY_ENABLED = "PARTIALLY_ENABLED"
}
/** @enumType */
type PreorderStatusWithLiterals = PreorderStatus | 'ENABLED' | 'DISABLED' | 'PARTIALLY_ENABLED';
declare enum ProductPreorderAvailability {
/** All the product variants are available for preorder. */
ALL_VARIANTS = "ALL_VARIANTS",
/** None of the product variants are available for preorder. */
NO_VARIANTS = "NO_VARIANTS",
/** Some of the product variants are available for preorder. */
SOME_VARIANTS = "SOME_VARIANTS"
}
/** @enumType */
type ProductPreorderAvailabilityWithLiterals = ProductPreorderAvailability | 'ALL_VARIANTS' | 'NO_VARIANTS' | 'SOME_VARIANTS';
declare enum ProductType {
/** Physical product. */
PHYSICAL = "PHYSICAL",
/** Digital product. */
DIGITAL = "DIGITAL"
}
/** @enumType */
type ProductTypeWithLiterals = ProductType | 'PHYSICAL' | 'DIGITAL';
interface PhysicalProperties {
/**
* Price per unit settings.
* > **Note:** Use this field only when relevant. For example, for products that are sold by weight, volume, or length.
*/
pricePerUnit?: PricePerUnitSettings;
/**
* Fulfiller ID.
* @format GUID
*/
fulfillerId?: string | null;
/**
* Product shipping weight range - Calculated from the lightest and heaviest variant shipping weights.
* @readonly
*/
shippingWeightRange?: WeightRange;
/**
* Product price per unit range. The minimum and maximum price per unit of all the variants.
* @readonly
*/
pricePerUnitRange?: PricePerUnitRange;
/**
* Weight measurement unit.
* > **Note:** Returned only when you pass `"WEIGHT_MEASUREMENT_UNIT_INFO"` to the `fields` array in Products API requests.
* @readonly
*/
weightMeasurementUnitInfo?: WeightMeasurementUnitInfo;
/**
* Delivery profile ID.
* @format GUID
*/
deliveryProfileId?: string | null;
}
interface PricePerUnitSettings {
/**
* Quantity.
* For example, to define price per per 100 grams, set this field to `100`.
* @min 0.01
* @max 999999999.99
*/
quantity?: number;
/**
* Measurement unit.
* For example, to define price per 100 grams, set this field to "G".
*/
measurementUnit?: MeasurementUnitWithLiterals;
}
declare enum MeasurementUnit {
UNSPECIFIED = "UNSPECIFIED",
ML = "ML",
CL = "CL",
L = "L",
CBM = "CBM",
MG = "MG",
G = "G",
KG = "KG",
MM = "MM",
CM = "CM",
M = "M",
SQM = "SQM",
OZ = "OZ",
LB = "LB",
FLOZ = "FLOZ",
PT = "PT",
QT = "QT",
GAL = "GAL",
IN = "IN",
FT = "FT",
YD = "YD",
SQFT = "SQFT"
}
/** @enumType */
type MeasurementUnitWithLiterals = MeasurementUnit | 'UNSPECIFIED' | 'ML' | 'CL' | 'L' | 'CBM' | 'MG' | 'G' | 'KG' | 'MM' | 'CM' | 'M' | 'SQM' | 'OZ' | 'LB' | 'FLOZ' | 'PT' | 'QT' | 'GAL' | 'IN' | 'FT' | 'YD' | 'SQFT';
interface WeightRange {
/**
* Minimum weight across all variants associated with this product.
* @max 999999999.99
*/
minValue?: number;
/**
* Maximum weight across all variants associated with this product.
* @max 999999999.99
*/
maxValue?: number;
}
interface PricePerUnitRange {
/** Minimum price per unit across all variants. */
minValue?: PricePerUnitRangePricePerUnit;
/** Maximum price per unit across all variants. */
maxValue?: PricePerUnitRangePricePerUnit;
}
interface PricePerUnitRangePricePerUnit {
/**
* 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$).
* @readonly
* @decimalValue options { gte:0, lte:999999999, maxScale:3 }
*/
value?: string;
/**
* 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.
* @readonly
* @maxLength 100
*/
description?: string | null;
}
interface WeightMeasurementUnitInfo {
/**
* Weight measurement unit.
* @readonly
*/
weightMeasurementUnit?: WeightUnitWithLiterals;
}
declare enum WeightUnit {
/** Weight unit can't be classified due to an error. */
UNSPECIFIED_WEIGHT_UNIT = "UNSPECIFIED_WEIGHT_UNIT",
/** Kilograms. */
KG = "KG",
/** Pounds. */
LB = "LB"
}
/** @enumType */
type WeightUnitWithLiterals = WeightUnit | 'UNSPECIFIED_WEIGHT_UNIT' | 'KG' | 'LB';
interface BreadcrumbsInfo {
/**
* Breadcrumbs.
* @readonly
* @maxSize 5
*/
breadcrumbs?: BreadCrumb[];
}
interface BreadCrumb {
/**
* Category ID.
* @format GUID
*/
categoryId?: string;
/**
* Category name.
* @minLength 1
* @maxLength 80
*/
categoryName?: string;
/**
* Category slug.
* @minLength 1
* @maxLength 100
*/
categorySlug?: string;
}
interface VariantsInfo {
/**
* List of related variants.
* @minSize 1
* @maxSize 1000
*/
variants?: Variant[];
}
interface Variant extends VariantTypedPropertiesOneOf {
/** Physical properties. Must be passed when `productType: PHYSICAL` */
physicalProperties?: VariantPhysicalProperties;
/** Digital properties. Must be passed when `productType: DIGITAL` */
digitalProperties?: VariantDigitalProperties;
/**
* Variant ID.
* @format GUID
* @immutable
*/
id?: string | null;
/**
* 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.
*/
visible?: boolean | null;
/**
* Variant SKU (stock keeping unit).
* @minLength 1
* @maxLength 40
*/
sku?: string | null;
/**
* Variant barcode.
* @minLength 1
* @maxLength 40
*/
barcode?: string | null;
/**
* 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).
* @maxSize 6
* @immutable
*/
choices?: OptionChoice[];
/** Variant price. */
price?: PriceInfo;
/**
* 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.
*/
revenueDetails?: RevenueDetails;
/**
* Variant media.
* @readonly
*/
media?: ProductMedia;
/**
* 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.
* @readonly
*/
subscriptionPricesInfo?: SubscriptionPricesInfo;
/**
* Variant inventory status.
* @readonly
*/
inventoryStatus?: InventoryStatus;
}
/** @oneof */
interface VariantTypedPropertiesOneOf {
/** Physical properties. Must be passed when `productType: PHYSICAL` */
physicalProperties?: VariantPhysicalProperties;
/** Digital properties. Must be passed when `productType: DIGITAL` */
digitalProperties?: VariantDigitalProperties;
}
interface OptionChoice {
/** Option and choice IDs. These match the IDs of the option and choice from the product's options field. */
optionChoiceIds?: OptionChoiceIds;
/**
* Option and choice names.
* > **Note:** Returned only when you pass `"VARIANT_OPTION_CHOICE_NAMES"` to the `fields` array in Products API requests.
*/
optionChoiceNames?: OptionChoiceNames;
}
interface OptionChoiceIds {
/**
* Option ID.
* @minLength 1
* @maxLength 36
* @immutable
*/
optionId?: string;
/**
* Choice ID.
* @format GUID
* @immutable
*/
choiceId?: string;
}
interface OptionChoiceNames {
/**
* Option name.
* @minLength 1
*/
optionName?: string;
/**
* Choice name.
* @minLength 1
*/
choiceName?: string;
/** Render type of the option. Required when using `optionChoiceNames`. Must match the `optionRenderType` of the referenced option. */
renderType?: ProductOptionRenderTypeWithLiterals;
}
interface PriceInfo {
/** Variant's current selling price. Must be greater than or equal to 0. */
actualPrice?: FixedMonetaryAmount;
/** 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. */
compareAtPrice?: FixedMonetaryAmount;
/**
* Variant selling price after automatic discounts are applied to `actualPrice`.
*
* > **Notes:**
* > + Returned only when you pass `"DISCOUNT_INFO"` in Products API requests.
* > + On Query Products and Search Products, returned only on `variantSummary.minPriceVariant` when `MIN_PRICE_VARIANT` is also requested.
* > + `formattedAmount` is returned only when you also pass `"CURRENCY"`.
* @readonly
*/
priceAfterDiscount?: FixedMonetaryAmount;
}
interface RevenueDetails {
/** Item cost. */
cost?: FixedMonetaryAmount;
/**
* Profit. Calculated by reducing `cost` from `discountedPrice`.
* @readonly
*/
profit?: FixedMonetaryAmount;
/**
* Profit Margin. Calculated by dividing `profit` by `discountedPrice`.
* The result is rounded to 4 decimal places.
* @readonly
* @max 1
*/
profitMargin?: number;
}
interface VariantPhysicalProperties {
/**
* Variant shipping weight.
* product.physicalProperties.shipping_weight_range values are taken from here.
* @max 999999999.99
*/
weight?: number | null;
/**
* 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.
*/
pricePerUnit?: PricePerUnit;
/** Product dimensions (length, width, height of the physical product). */
productDimensions?: Dimensions;
/** Package dimensions (length, width, height of the shipping package). */
packageDimensions?: Dimensions;
}
interface PricePerUnit {
/**
* Price per unit data for this variant.
* `measurementUnit` value must correspond to the measurement unit set on the product.
*/
settings?: PricePerUnitSettings;
/**
* 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$).
* @readonly
* @decimalValue options { gte:0, lte:999999999, maxScale:3 }
*/
value?: string;
/**
* Price per unit description.
* > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
* @readonly
* @maxLength 100
*/
description?: string | null;
/**
* Price per unit calculated from the variant automatic discount price.
*
* > **Notes:**
* > + Returned only when you pass `"DISCOUNT_INFO"` in Products API requests.
* > + `formattedAmount` is returned only when you also pass `"CURRENCY"`.
* @readonly
*/
priceAfterDiscount?: FixedMonetaryAmount;
}
interface VariantDigitalProperties {
/**
* 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.
*/
digitalFile?: SecuredMedia;
}
interface SecuredMedia {
/**
* Media ID in media manager.
* @minLength 1
* @maxLength 100
*/
id?: string;
/**
* Original file name.
* @minLength 1
* @maxLength 1000
* @readonly
*/
fileName?: string;
/**
* Original file size.
* @minLength 1
* @maxLength 1000
* @readonly
* @format DECIMAL_VALUE
* @decimalValue options { maxScale:0 }
*/
fileSize?: string | null;
/**
* File type.
* @readonly
*/
fileType?: FileTypeWithLiterals;
}
declare enum FileType {
/** Unspecified file type. */
UNSPECIFIED = "UNSPECIFIED",
/** Secure picture file. */
SECURE_PICTURE = "SECURE_PICTURE",
/** Secure video file. */
SECURE_VIDEO = "SECURE_VIDEO",
/** Secure document file. */
SECURE_DOCUMENT = "SECURE_DOCUMENT",
/** Secure music file. */
SECURE_MUSIC = "SECURE_MUSIC",
/** Secure archive file. */
SECURE_ARCHIVE = "SECURE_ARCHIVE",
/** Secure raw file. */
SECURE_RAW = "SECURE_RAW"
}
/** @enumType */
type FileTypeWithLiterals = FileType | 'UNSPECIFIED' | 'SECURE_PICTURE' | 'SECURE_VIDEO' | 'SECURE_DOCUMENT' | 'SECURE_MUSIC' | 'SECURE_ARCHIVE' | 'SECURE_RAW';
interface SubscriptionPricesInfo {
/**
* Subscription prices.
* @maxSize 6
*/
subscriptionPrices?: SubscriptionPrice[];
}
interface SubscriptionPrice {
/**
* Subscription ID.
* @format GUID
* @readonly
*/
subscriptionId?: string;
/**
* Subscription price calculated by applying subscription discount to the variant `price.actual_price`
* @readonly
*/
price?: FixedMonetaryAmount;
/**
* Price per unit info.
* @readonly
*/
pricePerUnit?: SubscriptionPricePerUnit;
/**
* Subscription price after automatic discounts are applied.
* Uses the variant automatic discount price as the base, not `actualPrice`.
*
* > **Notes:**
* > + Returned only when you pass both `"SUBSCRIPTION_PRICES_INFO"` and `"DISCOUNT_INFO"` in Products API requests.
* > + `formattedAmount` is returned only when you also pass `"CURRENCY"`.
* @readonly
*/
priceAfterDiscount?: FixedMonetaryAmount;
}
interface SubscriptionPricePerUnit {
/**
* Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.
* @readonly
* @decimalValue options { gte:0, lte:999999999, maxScale:3 }
*/
value?: string;
/**
* Price per unit description.
* > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
* @readonly
* @maxLength 20
*/
description?: string | null;
/**
* Subscription price per unit after automatic discounts are applied.
*
* > **Notes:**
* > + Returned only when you pass both `"SUBSCRIPTION_PRICES_INFO"` and `"DISCOUNT_INFO"` in Products API requests.
* > + `formattedAmount` is returned only when you also pass `"CURRENCY"`.
* @readonly
*/
priceAfterDiscount?: FixedMonetaryAmount;
}
interface InventoryStatus {
/** Whether the variant is in stock. */
inStock?: boolean;
/** Whether preorder is enabled for this variant. */
preorderEnabled?: boolean;
}
interface ExtendedFields {
/**
* 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).
*/
namespaces?: Record>;
}
interface SubscriptionDetails {
/**
* Subscriptions.
* @minSize 1
* @maxSize 6
*/
subscriptions?: Subscription[];
/**
* Whether to allow one-time purchases in addition to subscription-based purchases.
*
* Default: `false`
*/
allowOneTimePurchases?: boolean | null;
}
interface Subscription extends SubscriptionCyclesOneOf {
/** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */
autoRenewal?: boolean;
/**
* Number of billing cycles before subscription ends.
* @min 2
* @max 999
*/
billingCycles?: number;
/**
* Subscription ID.
* @format GUID
* @immutable
*/
id?: string | null;
/**
* Subscription title.
* @minLength 1
* @maxLength 20
*/
title?: string;
/**
* Subscription description.
* @maxLength 60
*/
description?: string | null;
/**
* Whether the subscription is visible to site visitors.
*
* Default: `true`
*/
visible?: boolean | null;
/**
* Frequency of recurring payment.
* For example, if `frequency: MONTH` and `billingCycles: 6`; payment will be made monthly for 6 months.
*/
frequency?: SubscriptionFrequencyWithLiterals;
/**
* 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.
* @min 1
* @max 50
*/
interval?: number | null;
/**
* Discount info (optional).
* For example, a $20 discount would be `amount: 20`, `type: AMOUNT`.
*/
discount?: SubscriptionDiscount;
}
/** @oneof */
interface SubscriptionCyclesOneOf {
/** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */
autoRenewal?: boolean;
/**
* Number of billing cycles before subscription ends.
* @min 2
* @max 999
*/
billingCycles?: number;
}
/** Frequency unit of recurring payment */
declare enum SubscriptionFrequency {
UNDEFINED = "UNDEFINED",
DAY = "DAY",
WEEK = "WEEK",
MONTH = "MONTH",
YEAR = "YEAR"
}
/** @enumType */
type SubscriptionFrequencyWithLiterals = SubscriptionFrequency | 'UNDEFINED' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR';
interface SubscriptionDiscount extends SubscriptionDiscountDiscountOneOf {
/**
* Fixed amount subtracted from the variant price when calculating subscription prices.
* @decimalValue options { gt:0, lte:999999999, maxScale:3 }
*/
amountOff?: string;
/**
* Percentage subtracted from the variant price when calculating subscription prices.
* @min 0.1
* @max 99.9
*/
percentOff?: number;
/** Discount type. */
type?: DiscountTypeWithLiterals;
}
/** @oneof */
interface SubscriptionDiscountDiscountOneOf {
/**
* Fixed amount subtracted from the variant price when calculating subscription prices.
* @decimalValue options { gt:0, lte:999999999, maxScale:3 }
*/
amountOff?: string;
/**
* Percentage subtracted from the variant price when calculating subscription prices.
* @min 0.1
* @max 99.9
*/
percentOff?: number;
}
declare enum DiscountType {
/** Discount by a specific amount. */
AMOUNT = "AMOUNT",
/** Discount by a percentage. */
PERCENT = "PERCENT"
}
/** @enumType */
type DiscountTypeWithLiterals = DiscountType | 'AMOUNT' | 'PERCENT';
interface VariantSummary {
/**
* The total number of variants for the product.
* @readonly
*/
variantCount?: number;
/**
* The variant with the lowest `actualPrice` among visible variants for this product.
*
* Hidden variants are excluded; ties are broken by variant order. Empty if the product has no visible variants.
* > **Note:** Returned only when you pass `"MIN_PRICE_VARIANT"` to the `fields` array in Products API requests.
* @readonly
*/
minPriceVariant?: Variant;
}
interface MinVariantPriceInfo {
/**
* Subscription price calculated by applying subscription discount to the variant `price.actualPrice`
* @readonly
*/
minSubscriptionPrice?: FixedMonetaryAmount;
/**
* Subscription price per unit calculated value of price per unit.
* Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.
* @readonly
* @decimalValue options { gte:0, lte:999999999, maxScale:3 }
*/
minSubscriptionPricePerUnit?: string | null;
/**
* Variant price per unit.
* @readonly
*/
pricePerUnitData?: PricePerUnit;
/**
* Variant SKU (stock keeping unit).
* @readonly
* @minLength 1
* @maxLength 40
*/
sku?: string | null;
/**
* Variant shipping weight.
* @readonly
* @max 999999999.99
*/
weight?: number | null;
/**
* 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.
* @readonly
*/
revenueDetails?: RevenueDetails;
/** Variant price. Must be greater or equal to 0. */
actualPrice?: FixedMonetaryAmount;
/** The compare-at-price represents the original price of a product before any discount. It is optional and should only be set if a discount applies. When set, it must be higher than the current price to reflect accurate savings. */
compareAtPrice?: FixedMonetaryAmount;
}
/** Background type */
declare enum BackgroundType {
/** Solid color background */
COLOR = "COLOR",
/** Gradient background */
GRADIENT = "GRADIENT"
}
/** @enumType */
type BackgroundTypeWithLiterals = BackgroundType | 'COLOR' | 'GRADIENT';
interface Gradient {
/** Gradient type. */
type?: GradientTypeWithLiterals;
/**
* Color stops for the gradient.
* @maxSize 1000
*/
stops?: Stop[];
/** Angle in degrees for linear gradient (0-360). */
angle?: number | null;
/**
* Horizontal center position for radial gradient (0-100).
* @max 100
*/
centerX?: number | null;
/**
* Vertical center position for radial gradient (0-100).
* @max 100
*/
centerY?: number | null;
}
/** Gradient type. */
declare enum GradientType {
/** Linear gradient. */
LINEAR = "LINEAR",
/** Radial gradient. */
RADIAL = "RADIAL"
}
/** @enumType */
type GradientTypeWithLiterals = GradientType | 'LINEAR' | 'RADIAL';
/** A single color stop in the gradient. */
interface Stop {
/**
* Stop color as hex value.
* @maxLength 19
*/
color?: string | null;
/** Stop position (0-1). */
position?: number | null;
}
/** Background styling (color or gradient) */
interface Background {
/** Background type. */
type?: BackgroundTypeWithLiterals;
/**
* Background color as a hexadecimal value.
* @maxLength 19
*/
color?: string | null;
/** Gradient configuration. */
gradient?: Gradient;
}
interface ImageDataCrop {
/** Left edge of the crop, as a fraction (0-1) of the original image width. */
x?: number | null;
/** Top edge of the crop, as a fraction (0-1) of the original image height. */
y?: number | null;
/** Visible width of the crop, as a fraction (0-1) of the original image width. */
width?: number | null;
/** Visible height of the crop, as a fraction (0-1) of the original image height. */
height?: number | null;
}
interface SketchData {
/** The sketch annotation variant to draw over the text. */
variant?: SketchDataVariantWithLiterals;
/**
* Annotation color. Defaults to the theme action color.
* @maxLength 19
*/
color?: string | null;
/** Whether the annotation animates on first paint. Defaults to `true`. */
animate?: boolean | null;
}
declare enum SketchDataVariant {
UNDERLINE = "UNDERLINE",
BOX = "BOX",
CIRCLE = "CIRCLE",
HIGHLIGHT = "HIGHLIGHT",
STRIKETHROUGH = "STRIKETHROUGH",
CROSSED_OFF = "CROSSED_OFF"
}
/** @enumType */
type SketchDataVariantWithLiterals = SketchDataVariant | 'UNDERLINE' | 'BOX' | 'CIRCLE' | 'HIGHLIGHT' | 'STRIKETHROUGH' | 'CROSSED_OFF';
/** Background styling (color or gradient) */
interface LayoutDataBackground {
/** Background type. */
type?: LayoutDataBackgroundTypeWithLiterals;
/**
* Background color as a hexadecimal value.
* @maxLength 19
*/
color?: string | null;
/** Gradient configuration. */
gradient?: Gradient;
}
/** Background type */
declare enum LayoutDataBackgroundType {
/** Solid color background */
COLOR = "COLOR",
/** Gradient background */
GRADIENT = "GRADIENT"
}
/** @enumType */
type LayoutDataBackgroundTypeWithLiterals = LayoutDataBackgroundType | 'COLOR' | 'GRADIENT';
declare enum Origin {
/** Banner originated from an image */
IMAGE = "IMAGE",
/** Banner originated from a layout */
LAYOUT = "LAYOUT"
}
/** @enumType */
type OriginWithLiterals = Origin | 'IMAGE' | 'LAYOUT';
declare enum BannerPosition {
/** Attached to the top edge (banner) */
TOP = "TOP",
/** Attached to the bottom edge (footer) */
BOTTOM = "BOTTOM"
}
/** @enumType */
type BannerPositionWithLiterals = BannerPosition | 'TOP' | 'BOTTOM';
/** Backdrop type */
declare enum BackdropType {
/** Solid color backdrop */
COLOR = "COLOR",
/** Gradient backdrop */
GRADIENT = "GRADIENT"
}
/** @enumType */
type BackdropTypeWithLiterals = BackdropType | 'COLOR' | 'GRADIENT';
interface Banner {
/** Origin of the banner */
origin?: OriginWithLiterals;
/** Position of the banner */
position?: BannerPositionWithLiterals;
}
/** Backdrop styling (color or gradient) */
interface Backdrop {
/** Backdrop type. */
type?: BackdropTypeWithLiterals;
/**
* Backdrop color as a hexadecimal value.
* @maxLength 19
*/
color?: string | null;
/** Gradient configuration. */
gradient?: Gradient;
}
interface ShapeData {
/** Styling for the shape's container. */
containerData?: PluginContainerData;
/** Shape file details. */
shape?: V1Media;
/** Styling for the shape. */
styles?: ShapeDataStyles;
}
interface ShapeDataStyles {
/**
* Shape fill color as a hexadecimal value.
* @maxLength 19
*/
color?: string | null;
/** Map of original color keys to their new color values. */
colors?: Record;
}
interface CardData {
/** Background styling (color or gradient). */
background?: CardDataBackground;
/** Background image. */
backgroundImage?: BackgroundImage;
}
declare enum Scaling {
/** Auto image scaling */
AUTO = "AUTO",
/** Contain image scaling */
CONTAIN = "CONTAIN",
/** Cover image scaling */
COVER = "COVER"
}
/** @enumType */
type ScalingWithLiterals = Scaling | 'AUTO' | 'CONTAIN' | 'COVER';
declare enum ImagePositionPosition {
/** Image positioned at the center */
CENTER = "CENTER",
/** Image positioned on the left */
CENTER_LEFT = "CENTER_LEFT",
/** Image positioned on the right */
CENTER_RIGHT = "CENTER_RIGHT",
/** Image positioned at the center top */
TOP = "TOP",
/** Image positioned at the top left */
TOP_LEFT = "TOP_LEFT",
/** Image positioned at the top right */
TOP_RIGHT = "TOP_RIGHT",
/** Image positioned at the center bottom */
BOTTOM = "BOTTOM",
/** Image positioned at the bottom left */
BOTTOM_LEFT = "BOTTOM_LEFT",
/** Image positioned at the bottom right */
BOTTOM_RIGHT = "BOTTOM_RIGHT"
}
/** @enumType */
type ImagePositionPositionWithLiterals = ImagePositionPosition | 'CENTER' | 'CENTER_LEFT' | 'CENTER_RIGHT' | 'TOP' | 'TOP_LEFT' | 'TOP_RIGHT' | 'BOTTOM' | 'BOTTOM_LEFT' | 'BOTTOM_RIGHT';
/** Background styling (color or gradient) */
interface CardDataBackground {
/** Background type. */
type?: CardDataBackgroundTypeWithLiterals;
/**
* Background color as a hexadecimal value.
* @maxLength 19
*/
color?: string | null;
/** Gradient configuration. */
gradient?: Gradient;
}
/** Background type */
declare enum CardDataBackgroundType {
/** Solid color background */
COLOR = "COLOR",
/** Gradient background */
GRADIENT = "GRADIENT"
}
/** @enumType */
type CardDataBackgroundTypeWithLiterals = CardDataBackgroundType | 'COLOR' | 'GRADIENT';
interface BackgroundImage {
/** Background image. */
media?: V1Media;
/**
* Deprecated: use `overlay` instead. Legacy image opacity (0–100) that dimmed the image to reveal the `background` color behind it.
* @deprecated
*/
opacity?: number | null;
/** Background image scaling. */
scaling?: ScalingWithLiterals;
/** Position of background. Defaults to `CENTER`. */
position?: ImagePositionPositionWithLiterals;
/** Color or gradient drawn on top of the image. When present, this is the authoritative overlay and `opacity` is ignored. Its presence also marks content as authored under the new overlay model (vs. the legacy `opacity`-based dimming on `background`). */
overlay?: CardDataBackground;
/** Blur radius in pixels applied to the image layer. `0` (default) leaves the image unblurred; blur is independent of any color overlay and the two stack. */
blur?: number | null;
}
interface TocData {
/** Heading levels included in the table of contents. Default: [1, 2, 3, 4, 5, 6]. */
includedHeadings?: number[];
/** List style. Default: PLAIN. */
listStyle?: ListStyleWithLiterals;
/** Optional override for the font size in pixels. */
fontSize?: number | null;
/** Optional override for the vertical spacing between items in pixels. */
itemSpacing?: number | null;
/**
* Optional override for the text color.
* @maxLength 19
*/
color?: string | null;
/** Indentation style. Default: NESTED. */
indentation?: IndentationWithLiterals;
}
/** List style. */
declare enum ListStyle {
/** No markers (default) */
PLAIN = "PLAIN",
/** Numbered list */
NUMBERED = "NUMBERED",
/** Alphabetic letters */
LETTERS = "LETTERS",
/** Roman numerals */
ROMAN = "ROMAN",
/** Bulleted list */
BULLETED = "BULLETED",
/** Alphabetical index */
ALPHABETICAL_INDEX = "ALPHABETICAL_INDEX",
/** Alphabetical index (compact top-row only) */
ALPHABETICAL_INDEX_COMPACT = "ALPHABETICAL_INDEX_COMPACT"
}
/** @enumType */
type ListStyleWithLiterals = ListStyle | 'PLAIN' | 'NUMBERED' | 'LETTERS' | 'ROMAN' | 'BULLETED' | 'ALPHABETICAL_INDEX' | 'ALPHABETICAL_INDEX_COMPACT';
/** Indentation style. */
declare enum Indentation {
/** Sub-headings indented under parents (default) */
NESTED = "NESTED",
/** All items at the same level */
FLAT = "FLAT"
}
/** @enumType */
type IndentationWithLiterals = Indentation | 'NESTED' | 'FLAT';
/** Data for a smart block node. */
interface SmartBlockData {
/** The type of the smart block. */
type?: SmartBlockDataTypeWithLiterals;
/** Layout orientation. HORIZONTAL or VERTICAL. Optional for variants with fixed orientation. */
orientation?: string | null;
/** Column size controlling cells per row. */
columnSize?: ColumnSizeWithLiterals;
/**
* Border color (for SOLID_JOINED_BOXES variant).
* @maxLength 19
*/
borderColor?: string | null;
/** Border width in pixels (for SOLID_JOINED_BOXES variant). */
borderWidth?: number | null;
/** Border radius in pixels (for SOLID_JOINED_BOXES variant). */
borderRadius?: number | null;
}
/** Layout type of the smart block */
declare enum SmartBlockDataType {
/** Grid-based layouts with solid box items containing title, body, and icon/image. */
SOLID_BOXES = "SOLID_BOXES",
/** Numbered boxes. */
NUMBERED_BOXES = "NUMBERED_BOXES",
/** Statistics display with large numbers/values. */
STATS = "STATS",
/** Statistics with circular visual elements. */
CIRCLE_STATS = "CIRCLE_STATS",
/** Staggered/zigzag grid layout with alternating box positions. */
SOLID_BOXES_ALTERNATING = "SOLID_BOXES_ALTERNATING",
/** Grid layout with boxes visually joined (no gaps, shared container border). */
SOLID_JOINED_BOXES = "SOLID_JOINED_BOXES",
/** Transparent cells with only a left side line. */
SIDE_LINE_TEXT = "SIDE_LINE_TEXT",
/** Transparent cells with only a top line. */
TOP_LINE_TEXT = "TOP_LINE_TEXT",
/** Outlined boxes with a numbered/icon circle at the top. */
OUTLINE_BOXES_WITH_TOP_CIRCLE = "OUTLINE_BOXES_WITH_TOP_CIRCLE",
/** Large icon bullets with text content. */
BIG_BULLETS = "BIG_BULLETS",
/** Small dot bullets with text content. */
SMALL_BULLETS = "SMALL_BULLETS",
/** Arrow icon bullets with text content. */
ARROW_BULLETS = "ARROW_BULLETS",
/** Process steps with numbered/icon labels above a horizontal line. */
PROCESS_STEPS = "PROCESS_STEPS",
/** Statistics with bar visual elements. */
BAR_STATS = "BAR_STATS",
/** Timeline layout with numbered chips on a connecting line; cells alternate around the line. */
TIMELINE = "TIMELINE",
/** Timeline layout with plain dot indicators; no numbers or shapes; cells alternate around the line. */
MINIMAL_TIMELINE = "MINIMAL_TIMELINE",
/** Numbered pill-shaped labels (stadium chips) with text content; supports HORIZONTAL (pill on top) and VERTICAL (pill on left) orientations. */
PILLS = "PILLS",
/** Star rating display with stars and a numeric value per cell. */
STAR_RATING = "STAR_RATING",
/** Outlined boxes with decorative quote glyphs at the top-left and bottom-right corners. */
QUOTE_BOXES = "QUOTE_BOXES",
/** Donut/ring with numbered annular-sector segments; cell text labels sit outside the ring. */
CIRCLE = "CIRCLE",
/** Hierarchical pyramid where each cell renders as a horizontal slice (apex at top, base at bottom) with the cell number or shape centered inside; text content sits beside (desktop) or below (mobile) the pyramid. */
PYRAMID = "PYRAMID",
/** Cells render a horizontal bar whose width scales with cell index, creating a staircase pattern; bar carries the cell number or a custom shape. */
STAIRCASE = "STAIRCASE",
/** Hierarchical funnel where each cell renders as a horizontal slice (wide at top, narrowing toward the bottom) with the cell number or shape centered inside; text content sits beside (desktop) or below (mobile) the funnel. */
VERTICAL_FUNNEL = "VERTICAL_FUNNEL"
}
/** @enumType */
type SmartBlockDataTypeWithLiterals = SmartBlockDataType | 'SOLID_BOXES' | 'NUMBERED_BOXES' | 'STATS' | 'CIRCLE_STATS' | 'SOLID_BOXES_ALTERNATING' | 'SOLID_JOINED_BOXES' | 'SIDE_LINE_TEXT' | 'TOP_LINE_TEXT' | 'OUTLINE_BOXES_WITH_TOP_CIRCLE' | 'BIG_BULLETS' | 'SMALL_BULLETS' | 'ARROW_BULLETS' | 'PROCESS_STEPS' | 'BAR_STATS' | 'TIMELINE' | 'MINIMAL_TIMELINE' | 'PILLS' | 'STAR_RATING' | 'QUOTE_BOXES' | 'CIRCLE' | 'PYRAMID' | 'STAIRCASE' | 'VERTICAL_FUNNEL';
/** Column size controlling how many cells appear per row. */
declare enum ColumnSize {
/** Up to 4 cells in a row. */
SMALL = "SMALL",
/** Up to 3 cells in a row (default). */
MEDIUM = "MEDIUM",
/** Up to 2 cells in a row. */
LARGE = "LARGE",
/** 1 cell in a row. */
EXTRA_LARGE = "EXTRA_LARGE"
}
/** @enumType */
type ColumnSizeWithLiterals = ColumnSize | 'SMALL' | 'MEDIUM' | 'LARGE' | 'EXTRA_LARGE';
/** Data for a smart block cell node. */
interface SmartBlockCellData {
/** Optional label text for the cell (e.g., for stats variants). */
label?: string | null;
/** Shape file details. */
shape?: V1Media;
/**
* Border color of the cell.
* @maxLength 19
*/
borderColor?: string | null;
/** Border width in pixels. */
borderWidth?: number | null;
/** Border radius in pixels. */
borderRadius?: number | null;
/** The type of the parent smart block (must match parent). */
type?: SmartBlockDataTypeWithLiterals;
/**
* Accent color for non-background variants (e.g., line, bullet, label color).
* @maxLength 19
*/
accentColor?: string | null;
/**
* Background color for background-based variants (SOLID_BOXES, SOLID_BOXES_ALTERNATING, SOLID_JOINED_BOXES).
* @maxLength 19
*/
backgroundColor?: string | null;
/**
* Shape fill color as a hexadecimal value.
* @maxLength 19
*/
shapeColor?: string | null;
}
interface CheckboxListData {
/** Indentation level from 0-4. */
indentation?: number;
/** Offset level from 0-4. */
offset?: number | null;
}
interface ListItemNodeData {
/** Checkbox list item state. Defaults to `false`. */
checked?: boolean | null;
}
/** A list of references to product media items. */
interface MediaReferences {
/**
* References to media items from the product's media list.
* Each reference points to a media item by its ID or URL.
* @maxSize 15
*/
items?: MediaReference[];
}
/**
* A reference to a product media item.
* When writing, you can use either `media_id` or `url` to assign an item from the product's media.
* When reading, this message will return the media ID of the associated media item.
*/
interface MediaReference extends MediaReferenceIdentifierOneOf {
/**
* Media ID from the Wix Media Manager. Will always be returned on read.
* @minLength 1
* @maxLength 200
*/
mediaId?: string;
/**
* External media URL. Can be used only on write.
* @format WEB_URL
*/
url?: string;
}
/** @oneof */
interface MediaReferenceIdentifierOneOf {
/**
* Media ID from the Wix Media Manager. Will always be returned on read.
* @minLength 1
* @maxLength 200
*/
mediaId?: string;
/**
* External media URL. Can be used only on write.
* @format WEB_URL
*/
url?: string;
}
interface Dimensions {
/**
* Length. Measurement unit is handled at the system level (metric/imperial).
* @decimalValue options { gte:0, lte:999999999, maxScale:6 }
*/
length?: string | null;
/**
* Width. Measurement unit is handled at the system level (metric/imperial).
* @decimalValue options { gte:0, lte:999999999, maxScale:6 }
*/
width?: string | null;
/**
* Height. Measurement unit is handled at the system level (metric/imperial).
* @decimalValue options { gte:0, lte:999999999, maxScale:6 }
*/
height?: string | null;
/** Unit of measurement for dimensions (length, width, height). */
unit?: DimensionsUnitWithLiterals;
}
declare enum DimensionsUnit {
UNKNOWN_DIMENSIONS_UNIT = "UNKNOWN_DIMENSIONS_UNIT",
/** Millimeters. */
MM = "MM",
/** Centimeters. */
CM = "CM",
/** Meters. */
M = "M",
/** Inches. */
IN = "IN",
/** Feet. */
FT = "FT",
/** Yards. */
YD = "YD"
}
/** @enumType */
type DimensionsUnitWithLiterals = DimensionsUnit | 'UNKNOWN_DIMENSIONS_UNIT' | 'MM' | 'CM' | 'M' | 'IN' | 'FT' | 'YD';
interface PurchaseEligibility {
userCriteria?: UserCriteriaWithLiterals;
}
declare enum UserCriteria {
/** Product is available only to members. */
MEMBERS_ONLY = "MEMBERS_ONLY"
}
/** @enumType */
type UserCriteriaWithLiterals = UserCriteria | 'MEMBERS_ONLY';
interface DiscountInfo {
/**
* Automatic discount rule names that apply to this product.
* @readonly
* @maxSize 100
* @maxLength 100
*/
discountRuleNames?: string[];
}
/**
* Common object for tags.
* Should be used as in this example:
* message Foo {
* option (.wix.api.decomposite_of) = "wix.commons.v2.tags.Foo";
* string id = 1;
* ...
* Tags tags = 5
* }
*
* example of taggable entity
* {
* id: "123"
* tags: {
* public_tags: {
* tag_ids:["11","22"]
* },
* private_tags: {
* tag_ids: ["33", "44"]
* }
* }
* }
*/
interface Tags {
/** Tags that require an additional permission in order to access them, normally not given to site members or visitors. */
privateTags?: TagList;
/** Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. */
publicTags?: TagList;
}
interface TagList {
/**
* List of tag IDs.
* @maxSize 100
* @maxLength 5
*/
tagIds?: string[];
}
interface UpdateDocumentsEvent extends UpdateDocumentsEventOperationOneOf {
/** insert/update documents */
update?: DocumentUpdateOperation;
/** delete by document ids */
deleteByIds?: DeleteByIdsOperation;
/** delete documents matching filter */
deleteByFilter?: DeleteByFilterOperation;
/** update documents matching filter */
updateByFilter?: UpdateByFilterOperation;
/** update only existing documents */
updateExisting?: UpdateExistingOperation;
/**
* application which owns documents
* @minLength 2
*/
appDefId?: string | null;
/**
* type of the documents
* @minLength 2
*/
documentType?: string | null;
/**
* language of the documents
* @minLength 2
*/
language?: string | null;
/**
* site documents belong to
* @minLength 2
*/
msId?: string | null;
}
/** @oneof */
interface UpdateDocumentsEventOperationOneOf {
/** insert/update documents */
update?: DocumentUpdateOperation;
/** delete by document ids */
deleteByIds?: DeleteByIdsOperation;
/** delete documents matching filter */
deleteByFilter?: DeleteByFilterOperation;
/** update documents matching filter */
updateByFilter?: UpdateByFilterOperation;
/** update only existing documents */
updateExisting?: UpdateExistingOperation;
}
interface DocumentUpdateOperation {
/** documents to index or update */
documents?: IndexDocument[];
}
interface IndexDocument {
/** data bag with non-searchable fields (url, image) */
payload?: DocumentPayload;
/** what type of users should documents be visible to */
exposure?: EnumWithLiterals;
/** document with mandatory fields (id, title, description) and with fields specific to the type of the document */
document?: Record | null;
/** what member groups is the document exposed to. Used only with GROUP_PROTECTED exposure */
permittedMemberGroups?: string[];
/** if true SEO is disabled for this document */
seoHidden?: boolean | null;
/** if true the page is a lightbox popup */
isPopup?: boolean | null;
}
interface DocumentPayload {
/** url of the page representing the document */
url?: string | null;
/** image which represents the document */
documentImage?: DocumentImage;
}
interface DocumentImage {
/** the name of the image */
name?: string;
/** the width of the image */
width?: number;
/** the height of the image */
height?: number;
}
declare enum Enum {
/** Default value. Means that permission not set */
UNKNOWN = "UNKNOWN",
/** Protected exposure. Exposed to members and owners */
PROTECTED = "PROTECTED",
/** Private exposure. Exposed to owners */
PRIVATE = "PRIVATE",
/** Public exposure. Visible to everyone */
PUBLIC = "PUBLIC",
/** Used for partial updates, to state that exposure is not changing */
UNCHANGED = "UNCHANGED",
/** Protected to members of permitted groups and owners */
GROUP_PROTECTED = "GROUP_PROTECTED"
}
/** @enumType */
type EnumWithLiterals = Enum | 'UNKNOWN' | 'PROTECTED' | 'PRIVATE' | 'PUBLIC' | 'UNCHANGED' | 'GROUP_PROTECTED';
interface DeleteByIdsOperation {
/** ids of the documents to delete */
documentIds?: string[];
}
interface DeleteByFilterOperation {
/** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */
filter?: Record | null;
}
interface UpdateByFilterOperation {
/** documents matching this filter will be updated */
filter?: Record | null;
/** partial document to apply */
document?: IndexDocument;
}
interface UpdateExistingOperation {
/** documents to update */
documents?: IndexDocument[];
}
interface ProductTagsModified {
/** Updated Product. */
product?: V3Product;
/** Tags that were assigned to the Product. */
assignedTags?: Tags;
/** Tags that were unassigned from the Product. */
unassignedTags?: Tags;
}
interface DomainEvent extends DomainEventBodyOneOf {
createdEvent?: EntityCreatedEvent;
updatedEvent?: EntityUpdatedEvent;
deletedEvent?: EntityDeletedEvent;
actionEvent?: ActionEvent;
/** Event ID. With this ID you can easily spot duplicated events and ignore them. */
id?: string;
/**
* 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`.
*/
entityFqdn?: string;
/**
* 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`.
*/
slug?: string;
/** ID of the entity associated with the event. */
entityId?: string;
/** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */
eventTime?: Date | null;
/**
* Whether the event was triggered as a result of a privacy regulation application
* (for example, GDPR).
*/
triggeredByAnonymizeRequest?: boolean | null;
/** If present, indicates the action that triggered the event. */
originatedFrom?: string | null;
/**
* 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.
*/
entityEventSequence?: string | null;
}
/** @oneof */
interface DomainEventBodyOneOf {
createdEvent?: EntityCreatedEvent;
updatedEvent?: EntityUpdatedEvent;
deletedEvent?: EntityDeletedEvent;
actionEvent?: ActionEvent;
}
interface EntityCreatedEvent {
entityAsJson?: string;
/** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */
restoreInfo?: RestoreInfo;
}
interface RestoreInfo {
deletedDate?: Date | null;
}
interface EntityUpdatedEvent {
/**
* Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
* This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
* We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
*/
currentEntityAsJson?: string;
}
interface EntityDeletedEvent {
/** Entity that was deleted. */
deletedEntityAsJson?: string | null;
}
interface ActionEvent {
bodyAsJson?: string;
}
interface Empty {
}
interface SearchIndexingNotification {
/** new state of indexing for the site specified in ms_id */
indexState?: StateWithLiterals;
/** type of the document the notification is targeted for. Applies to all types if not provided */
documentType?: string | null;
/** languaInternalDocumentUpdateByFilterOperationge the notification is targeted for. Applies to all languages if not provided */
language?: string | null;
/**
* site for which notification is targeted
* @minLength 2
*/
msId?: string | null;
}
declare enum State {
/** default state */
Unknown = "Unknown",
/** metasite does not require site search indexing */
Off = "Off",
/** metasite requires site search indexing */
On = "On"
}
/** @enumType */
type StateWithLiterals = State | 'Unknown' | 'Off' | 'On';
interface MessageEnvelope {
/**
* App instance ID.
* @format GUID
*/
instanceId?: string | null;
/**
* Event type.
* @maxLength 150
*/
eventType?: string;
/** The identification type and identity data. */
identity?: IdentificationData;
/** Stringify payload. */
data?: string;
/** Details related to the account */
accountInfo?: AccountInfo;
}
interface IdentificationData extends IdentificationDataIdOneOf {
/**
* ID of a site visitor that has not logged in to the site.
* @format GUID
*/
anonymousVisitorId?: string;
/**
* ID of a site visitor that has logged in to the site.
* @format GUID
*/
memberId?: string;
/**
* ID of a Wix user (site owner, contributor, etc.).
* @format GUID
*/
wixUserId?: string;
/**
* ID of an app.
* @format GUID
*/
appId?: string;
/** @readonly */
identityType?: WebhookIdentityTypeWithLiterals;
}
/** @oneof */
interface IdentificationDataIdOneOf {
/**
* ID of a site visitor that has not logged in to the site.
* @format GUID
*/
anonymousVisitorId?: string;
/**
* ID of a site visitor that has logged in to the site.
* @format GUID
*/
memberId?: string;
/**
* ID of a Wix user (site owner, contributor, etc.).
* @format GUID
*/
wixUserId?: string;
/**
* ID of an app.
* @format GUID
*/
appId?: string;
}
declare enum WebhookIdentityType {
UNKNOWN = "UNKNOWN",
ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
MEMBER = "MEMBER",
WIX_USER = "WIX_USER",
APP = "APP"
}
/** @enumType */
type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP';
interface AccountInfo {
/**
* ID of the Wix account associated with the event.
* @format GUID
*/
accountId?: string | null;
/**
* ID of the parent Wix account. Only included when accountId belongs to a child account.
* @format GUID
*/
parentAccountId?: string | null;
/**
* ID of the Wix site associated with the event. Only included when the event is tied to a specific site.
* @format GUID
*/
siteId?: string | null;
}
interface InvalidateCache extends InvalidateCacheGetByOneOf {
/**
* Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!
* @format GUID
*/
metaSiteId?: string;
/**
* Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!
* @format GUID
*/
siteId?: string;
/** Invalidate by App */
app?: App;
/** Invalidate by page id */
page?: Page;
/** Invalidate by URI path */
uri?: URI;
/** Invalidate by file (for media files such as PDFs) */
file?: File;
/** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */
customTag?: CustomTag;
/** Invalidate by multiple page ids */
pages?: Pages;
/** Invalidate by multiple URI paths */
uris?: URIs;
/**
* tell us why you're invalidating the cache. You don't need to add your app name
* @maxLength 256
*/
reason?: string | null;
/** Is local DS */
localDc?: boolean;
hardPurge?: boolean;
/**
* Optional caller-provided ID for tracking this invalidation through the system.
* When set, the corresponding CDN purge completion event will include this ID,
* allowing you to confirm when the invalidation has fully propagated.
* Example: generate a UUID, pass it here, and later match it in the CDN purge completion event.
* @maxLength 256
*/
correlationId?: string | null;
}
/** @oneof */
interface InvalidateCacheGetByOneOf {
/**
* Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!
* @format GUID
*/
metaSiteId?: string;
/**
* Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!
* @format GUID
*/
siteId?: string;
/** Invalidate by App */
app?: App;
/** Invalidate by page id */
page?: Page;
/** Invalidate by URI path */
uri?: URI;
/** Invalidate by file (for media files such as PDFs) */
file?: File;
/** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */
customTag?: CustomTag;
/** Invalidate by multiple page ids */
pages?: Pages;
/** Invalidate by multiple URI paths */
uris?: URIs;
}
interface App {
/**
* The AppDefId
* @minLength 1
*/
appDefId?: string;
/**
* The instance Id
* @format GUID
*/
instanceId?: string;
}
interface Page {
/**
* the msid the page is on
* @format GUID
*/
metaSiteId?: string;
/**
* Invalidate by Page ID
* @minLength 1
*/
pageId?: string;
}
interface URI {
/**
* the msid the URI is on
* @format GUID
*/
metaSiteId?: string;
/**
* URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes
* @minLength 1
*/
uriPath?: string;
}
interface File {
/**
* the msid the file is related to
* @format GUID
*/
metaSiteId?: string;
/**
* Invalidate by filename (for media files such as PDFs)
* @minLength 1
* @maxLength 256
*/
fileName?: string;
}
interface CustomTag {
/**
* the msid the tag is related to
* @format GUID
*/
metaSiteId?: string;
/**
* Tag to invalidate by
* @minLength 1
* @maxLength 256
*/
tag?: string;
}
interface Pages {
/**
* the msid the pages are on
* @format GUID
*/
metaSiteId?: string;
/**
* Invalidate by multiple Page IDs in a single message
* @maxSize 100
* @minLength 1
*/
pageIds?: string[];
}
interface URIs {
/**
* the msid the URIs are on
* @format GUID
*/
metaSiteId?: string;
/**
* URI paths to invalidate (e.g. page/my/path) - without leading/trailing slashes
* @maxSize 100
* @minLength 1
*/
uriPaths?: string[];
}
interface DoNotCallCreateProductRequest {
/** Product to be created */
product?: V3Product;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
declare enum SingleEntityOpsRequestedFields {
/** The product's public storefront URL, including both relative path and full URL with base domain. */
URL = "URL",
/** Currency information including the currency code and formatted price amounts for storefront display. */
CURRENCY = "CURRENCY",
/** Returns basic info section metadata including IDs, unique names, and titles. Use with `INFO_SECTION_DESCRIPTION` or `INFO_SECTION_PLAIN_DESCRIPTION` to include content. */
INFO_SECTION = "INFO_SECTION",
/**
* Returns merchant-related financial data including cost ranges and variant revenue details like cost, profit, and profit margin.
* Requires the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.
*/
MERCHANT_DATA = "MERCHANT_DATA",
/** Provides product description as plain HTML text. */
PLAIN_DESCRIPTION = "PLAIN_DESCRIPTION",
/** Returns info section descriptions as HTML content. Use with `INFO_SECTION` for complete metadata. */
INFO_SECTION_PLAIN_DESCRIPTION = "INFO_SECTION_PLAIN_DESCRIPTION",
/** Details subscription pricing options, empty for non-subscription products. */
SUBSCRIPTION_PRICES_INFO = "SUBSCRIPTION_PRICES_INFO",
/** Returns the category breadcrumb navigation path from root categories down to the product's main category, including category IDs, names, and slugs. */
BREADCRUMBS_INFO = "BREADCRUMBS_INFO",
/** Returns the weight measurement unit (KG, LB) for the product. */
WEIGHT_MEASUREMENT_UNIT_INFO = "WEIGHT_MEASUREMENT_UNIT_INFO",
/** Enriches variant choices with human-readable option and choice names alongside render types. */
VARIANT_OPTION_CHOICE_NAMES = "VARIANT_OPTION_CHOICE_NAMES",
/** Returns all media items associated with the product, including detailed metadata (URLs, alt-text, dimensions, filenames, file sizes). */
MEDIA_ITEMS_INFO = "MEDIA_ITEMS_INFO",
/** Returns the product description as rich content with complete node structure, metadata, and styling information. */
DESCRIPTION = "DESCRIPTION",
/** Provides the IDs and indexes of categories the product is directly assigned to. */
DIRECT_CATEGORIES_INFO = "DIRECT_CATEGORIES_INFO",
/** Provides IDs and indexes for all categories including inherited parent categories. */
ALL_CATEGORIES_INFO = "ALL_CATEGORIES_INFO",
/** Returns info section descriptions as rich content with complete node structure, metadata, and styling information. Use with `INFO_SECTION` for complete metadata. */
INFO_SECTION_DESCRIPTION = "INFO_SECTION_DESCRIPTION",
/** Returns an optimized thumbnail image with standard dimensions, suitable for listings or previews. */
THUMBNAIL = "THUMBNAIL",
/**
* Returns media references associated with product option and modifier choices instead of the deprecated `linked_media` field.
*
* When requested, choice objects will populate `media_references` with lightweight `MediaReference` objects containing only media IDs,
* while the `linked_media` field will be returned empty to avoid duplication and reduce response payload size.
*
* To get full media metadata (dimensions, alt text, filenames, etc.), request `MEDIA_ITEMS_INFO` on the product and correlate by media ID.
*
* > **Note:** The `media_references` field is available on `ConnectedOptionChoice` and `ConnectedModifierChoice` objects.
*/
PRODUCT_CHOICES_MEDIA_REFERENCES = "PRODUCT_CHOICES_MEDIA_REFERENCES",
/**
* Returns display images for product option and modifier choices.
* When requested, choice objects will populate `display_image` with a lightweight image containing only ID, URL, and alt text.
*/
PRODUCT_CHOICES_DISPLAY_IMAGE = "PRODUCT_CHOICES_DISPLAY_IMAGE",
/**
* Returns automatic discount info for product get/query/search responses and populates product-level `discountInfo.discountRuleNames`.
*
* To receive discounted variant prices in get/query/search responses, request this together with `MIN_PRICE_VARIANT` (returned in `variantSummary.minPriceVariant.price.priceAfterDiscount`).
* Formatted money amounts are returned only when `CURRENCY` is also requested.
* @documentationMaturity preview
*/
DISCOUNT_INFO = "DISCOUNT_INFO"
}
/** @enumType */
type SingleEntityOpsRequestedFieldsWithLiterals = SingleEntityOpsRequestedFields | 'URL' | 'CURRENCY' | 'INFO_SECTION' | 'MERCHANT_DATA' | 'PLAIN_DESCRIPTION' | 'INFO_SECTION_PLAIN_DESCRIPTION' | 'SUBSCRIPTION_PRICES_INFO' | 'BREADCRUMBS_INFO' | 'WEIGHT_MEASUREMENT_UNIT_INFO' | 'VARIANT_OPTION_CHOICE_NAMES' | 'MEDIA_ITEMS_INFO' | 'DESCRIPTION' | 'DIRECT_CATEGORIES_INFO' | 'ALL_CATEGORIES_INFO' | 'INFO_SECTION_DESCRIPTION' | 'THUMBNAIL' | 'PRODUCT_CHOICES_MEDIA_REFERENCES' | 'PRODUCT_CHOICES_DISPLAY_IMAGE' | 'DISCOUNT_INFO';
interface DoNotCallCreateProductResponse {
/** The created Product */
product?: V3Product;
}
interface DuplicateRibbonErrorData {
/**
* The ribbon IDs that passed more than once.
* @maxSize 4
* @minLength 1
* @maxLength 36
*/
ribbonIds?: string[];
}
interface DuplicateMediaIdAssignedToProduct {
/**
* List of media IDs passed more than once.
* @maxSize 15
* @format GUID
*/
mediaIds?: string[];
}
interface GetProductRequest {
/**
* Id of the Product to retrieve
* @minLength 1
* @maxLength 36
*/
productId?: string;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface GetProductResponse {
/** The retrieved Product */
product?: V3Product;
}
interface GetProductBySlugRequest {
/**
* Product slug. A permanent, friendly URL name unique per store.
* @minLength 1
* @maxLength 100
*/
slug?: string;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface GetProductBySlugResponse {
/** The retrieved Product */
product?: V3Product;
}
interface DoNotCallUpdateProductRequest {
/** Product to be updated, may be partial */
product?: V3Product;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface DoNotCallUpdateProductResponse {
/** The updated Product */
product?: V3Product;
}
interface VariantsRemoved {
/**
* Removed variants ids.
* @format GUID
* @minSize 1
* @maxSize 1000
*/
variantIds?: string[];
}
interface UnsupportedFieldMasks {
/**
* Field masks provided in request but not supported
* @maxLength 1000
* @maxSize 100
*/
fieldMasks?: string[];
}
interface DeleteProductRequest {
/**
* Id of the Product to delete
* @minLength 1
* @maxLength 36
*/
productId?: string;
}
interface DeleteProductResponse {
}
interface SearchProductsRequest {
/**
* WQL expression. Please pay attention that unlike other arrays when you want to filter by `inventory` or `variants` instead of standard array operators you must use `$matchItems` (for usage see examples).
* It means that product will be returned only if one or more items satisfy all filters specified in $matchItems.
* For example, if you have 2 variants: one visible with price 10 and another one not visible with price 20, when inside $matchItems you specify `visible:true` and `price > 15` nothing will be returned because there are no variants which satisfy both conditions.
* You still can use `$isEmpty` and `$exists` operators for fields listed above.
* See examples to understand supported capabilities.
* This endpoint does not return variants-info, even though it is part of the entity, as including it would result in overly large response objects.
* If you need variants-info, you can retrieve it for a specific product using the getProduct endpoint.
*/
search?: CursorSearch;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface CursorSearch extends CursorSearchPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CursorPaging;
/**
* Filter object.
*
* Learn more about the [filter section](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).
*/
filter?: Record | null;
/**
* List of sort objects.
*
* Learn more about the [sort section](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting).
* @maxSize 10
*/
sort?: Sorting[];
/**
* Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.
* @maxSize 10
*/
aggregations?: Aggregation[];
/** Free text to match in searchable fields. */
search?: SearchDetails;
/**
* UTC offset or IANA time zone. Valid values are
* ISO 8601 UTC offsets, such as +02:00 or -06:00,
* and IANA time zone IDs, such as Europe/Rome
*
* Affects all filters and aggregations returned values.
* You may override this behavior in a specific filter by providing
* timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"`
* @maxLength 50
*/
timeZone?: string | null;
}
/** @oneof */
interface CursorSearchPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CursorPaging;
}
interface Sorting {
/**
* Name of the field to sort by.
* @maxLength 512
*/
fieldName?: string;
/** Sort order. */
order?: SortOrderWithLiterals;
}
declare enum SortOrder {
/** Ascending order. */
ASC = "ASC",
/** Descending order. */
DESC = "DESC"
}
/** @enumType */
type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';
interface Aggregation extends AggregationKindOneOf {
/** Value aggregation */
value?: ValueAggregation;
/** Range aggregation */
range?: RangeAggregation;
/** Scalar aggregation */
scalar?: ScalarAggregation;
/** Date histogram aggregation */
dateHistogram?: DateHistogramAggregation;
/** Nested aggregation */
nested?: NestedAggregation;
/**
* User-defined name of aggregation, should be unique, will appear in aggregation results
* @maxLength 100
*/
name?: string | null;
/** Type of aggregation, client must provide matching aggregation field below */
type?: AggregationTypeWithLiterals;
/**
* Field to aggregate by, use dot notation to specify json path
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface AggregationKindOneOf {
/** Value aggregation */
value?: ValueAggregation;
/** Range aggregation */
range?: RangeAggregation;
/** Scalar aggregation */
scalar?: ScalarAggregation;
/** Date histogram aggregation */
dateHistogram?: DateHistogramAggregation;
/** Nested aggregation */
nested?: NestedAggregation;
}
interface RangeBucket {
/** Inclusive lower bound of the range. Required if to is not given */
from?: number | null;
/** Exclusive upper bound of the range. Required if from is not given */
to?: number | null;
}
declare enum SortType {
/** Should sort by number of matches. */
COUNT = "COUNT",
/** Should sort by value of the field alphabetically. */
VALUE = "VALUE"
}
/** @enumType */
type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';
declare enum SortDirection {
/** Should sort by descending order. */
DESC = "DESC",
/** Should sort by ascending order. */
ASC = "ASC"
}
/** @enumType */
type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';
declare enum MissingValues {
/** Exclude missing values from the aggregation results. */
EXCLUDE = "EXCLUDE",
/** Include missing values from the aggregation results. */
INCLUDE = "INCLUDE"
}
/** @enumType */
type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';
interface IncludeMissingValuesOptions {
/**
* Can specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ...
* @maxLength 20
*/
addToBucket?: string;
}
declare enum ScalarType {
/** Count of distinct values. */
COUNT_DISTINCT = "COUNT_DISTINCT",
/** Minimum value. */
MIN = "MIN",
/** Maximum value. */
MAX = "MAX"
}
/** @enumType */
type ScalarTypeWithLiterals = ScalarType | 'COUNT_DISTINCT' | 'MIN' | 'MAX';
interface ValueAggregation extends ValueAggregationOptionsOneOf {
/** Options for including missing values */
includeOptions?: IncludeMissingValuesOptions;
/** Should sort by number of matches or value of the field */
sortType?: SortTypeWithLiterals;
/** Should sort in ascending or descending order */
sortDirection?: SortDirectionWithLiterals;
/** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */
limit?: number | null;
/** Should missing values be included or excluded from the aggregation results. Default is EXCLUDE */
missingValues?: MissingValuesWithLiterals;
}
/** @oneof */
interface ValueAggregationOptionsOneOf {
/** Options for including missing values */
includeOptions?: IncludeMissingValuesOptions;
}
declare enum NestedAggregationType {
/** An aggregation where result buckets are dynamically built - one per unique value. */
VALUE = "VALUE",
/** An aggregation where user can define set of ranges - each representing a bucket. */
RANGE = "RANGE",
/** A single-value metric aggregation. For example: min, max, sum, avg. */
SCALAR = "SCALAR",
/** An aggregation where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */
DATE_HISTOGRAM = "DATE_HISTOGRAM"
}
/** @enumType */
type NestedAggregationTypeWithLiterals = NestedAggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM';
interface RangeAggregation {
/**
* List of range buckets, where during aggregation each entity will be placed in the first bucket where its value falls into based on provided range bounds
* @maxSize 50
*/
buckets?: RangeBucket[];
}
interface ScalarAggregation {
/** Define the operator for the scalar aggregation */
type?: ScalarTypeWithLiterals;
}
interface DateHistogramAggregation {
/** Interval for date histogram aggregation */
interval?: IntervalWithLiterals;
}
declare enum Interval {
/** Yearly interval. */
YEAR = "YEAR",
/** Monthly interval. */
MONTH = "MONTH",
/** Weekly interval. */
WEEK = "WEEK",
/** Daily interval. */
DAY = "DAY",
/** Hourly interval. */
HOUR = "HOUR",
/** Minute interval. */
MINUTE = "MINUTE",
/** Second interval. */
SECOND = "SECOND"
}
/** @enumType */
type IntervalWithLiterals = Interval | 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND';
interface NestedAggregationItem extends NestedAggregationItemKindOneOf {
/** Value aggregation */
value?: ValueAggregation;
/** Range aggregation */
range?: RangeAggregation;
/** Scalar aggregation */
scalar?: ScalarAggregation;
/** Date histogram aggregation */
dateHistogram?: DateHistogramAggregation;
/**
* User-defined name of aggregation, should be unique, will appear in aggregation results
* @maxLength 100
*/
name?: string | null;
/** Type of aggregation, client must provide matching aggregation field below */
type?: NestedAggregationTypeWithLiterals;
/**
* Field to aggregate by, use dont notation to specify json path
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface NestedAggregationItemKindOneOf {
/** Value aggregation */
value?: ValueAggregation;
/** Range aggregation */
range?: RangeAggregation;
/** Scalar aggregation */
scalar?: ScalarAggregation;
/** Date histogram aggregation */
dateHistogram?: DateHistogramAggregation;
}
declare enum AggregationType {
/** An aggregation where result buckets are dynamically built - one per unique value. */
VALUE = "VALUE",
/** An aggregation where a user can define set of ranges - each representing a bucket. */
RANGE = "RANGE",
/** A single-value metric aggregation. For example: min, max, sum, avg. */
SCALAR = "SCALAR",
/** An aggregation where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */
DATE_HISTOGRAM = "DATE_HISTOGRAM",
/** A Multi-level aggregation where each next aggregation is nested within previous one. */
NESTED = "NESTED"
}
/** @enumType */
type AggregationTypeWithLiterals = AggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM' | 'NESTED';
/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */
interface NestedAggregation {
/**
* Flattened list of aggregations, where each next aggregation is nested within previous one
* @minSize 2
* @maxSize 3
*/
nestedAggregations?: NestedAggregationItem[];
}
interface SearchDetails {
/** Defines how separate search terms in `expression` are combined. */
mode?: ModeWithLiterals;
/**
* Search term or expression
* @maxLength 100
*/
expression?: string | null;
/**
* Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path
* @maxLength 200
* @maxSize 20
*/
fields?: string[];
/** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */
fuzzy?: boolean;
}
declare enum Mode {
/** Any of the search terms must be present. */
OR = "OR",
/** All search terms must be present. */
AND = "AND"
}
/** @enumType */
type ModeWithLiterals = Mode | 'OR' | 'AND';
interface CursorPaging {
/**
* Maximum number of items to return in the results.
* @max 100
*/
limit?: number | null;
/**
* Pointer to the next or previous page in the list of results.
*
* Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
* Not relevant for the first request.
* @maxLength 16000
*/
cursor?: string | null;
}
declare enum RequestedFields {
/** The product's public storefront URL, including both relative path and full URL with base domain. */
URL = "URL",
/** Currency information including the currency code and formatted price amounts for storefront display. */
CURRENCY = "CURRENCY",
/** Returns basic info section metadata including IDs, unique names, and titles. Use with `INFO_SECTION_DESCRIPTION` or `INFO_SECTION_PLAIN_DESCRIPTION` to include content. */
INFO_SECTION = "INFO_SECTION",
/**
* Returns merchant-related financial data including cost ranges and variant revenue details like cost, profit, and profit margin.
* Requires the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.
*/
MERCHANT_DATA = "MERCHANT_DATA",
/** Provides product description as plain HTML text. */
PLAIN_DESCRIPTION = "PLAIN_DESCRIPTION",
/** Returns info section descriptions as HTML content. Use with `INFO_SECTION` for complete metadata. */
INFO_SECTION_PLAIN_DESCRIPTION = "INFO_SECTION_PLAIN_DESCRIPTION",
/** Details subscription pricing options, empty for non-subscription products. */
SUBSCRIPTION_PRICES_INFO = "SUBSCRIPTION_PRICES_INFO",
/** Returns the category breadcrumb navigation path from root categories down to the product's main category, including category IDs, names, and slugs. */
BREADCRUMBS_INFO = "BREADCRUMBS_INFO",
/** Returns the weight measurement unit (KG, LB) for the product. */
WEIGHT_MEASUREMENT_UNIT_INFO = "WEIGHT_MEASUREMENT_UNIT_INFO",
/** Enriches variant choices with human-readable option and choice names alongside render types. */
VARIANT_OPTION_CHOICE_NAMES = "VARIANT_OPTION_CHOICE_NAMES",
/** Returns all media items associated with the product, including detailed metadata (URLs, alt-text, dimensions, filenames, file sizes). */
MEDIA_ITEMS_INFO = "MEDIA_ITEMS_INFO",
/** Returns the product description as rich content with complete node structure, metadata, and styling information. */
DESCRIPTION = "DESCRIPTION",
/** Provides the IDs and indexes of categories the product is directly assigned to. */
DIRECT_CATEGORIES_INFO = "DIRECT_CATEGORIES_INFO",
/** Provides IDs and indexes for all categories including inherited parent categories. */
ALL_CATEGORIES_INFO = "ALL_CATEGORIES_INFO",
/** Returns info section descriptions as rich content with complete node structure, metadata, and styling information. Use with `INFO_SECTION` for complete metadata. */
INFO_SECTION_DESCRIPTION = "INFO_SECTION_DESCRIPTION",
/** Returns an optimized thumbnail image with standard dimensions, suitable for listings or previews. */
THUMBNAIL = "THUMBNAIL",
/**
* Returns media references associated with product option and modifier choices instead of the deprecated `linked_media` field.
*
* When requested, choice objects will populate `media_references` with lightweight `MediaReference` objects containing only media IDs,
* while the `linked_media` field will be returned empty to avoid duplication and reduce response payload size.
*
* To get full media metadata (dimensions, alt text, filenames, etc.), request `MEDIA_ITEMS_INFO` on the product and correlate by media ID.
*
* > **Note:** The `media_references` field is available on `ConnectedOptionChoice` and `ConnectedModifierChoice` objects.
*/
PRODUCT_CHOICES_MEDIA_REFERENCES = "PRODUCT_CHOICES_MEDIA_REFERENCES",
/**
* Returns display images for product option and modifier choices.
* When requested, choice objects will populate `display_image` with a lightweight image containing only ID, URL, and alt text.
*/
PRODUCT_CHOICES_DISPLAY_IMAGE = "PRODUCT_CHOICES_DISPLAY_IMAGE",
/**
* Returns the variant with the lowest actual price among visible variants. Populated in `variant_summary.min_price_variant`.
* @documentationMaturity preview
*/
MIN_PRICE_VARIANT = "MIN_PRICE_VARIANT",
/**
* Returns automatic discount info for product get/query/search responses and populates product-level `discountInfo.discountRuleNames`.
*
* To receive discounted variant prices in get/query/search responses, request this together with `MIN_PRICE_VARIANT` (returned in `variantSummary.minPriceVariant.price.priceAfterDiscount`).
* Formatted money amounts are returned only when `CURRENCY` is also requested.
* @documentationMaturity preview
*/
DISCOUNT_INFO = "DISCOUNT_INFO"
}
/** @enumType */
type RequestedFieldsWithLiterals = RequestedFields | 'URL' | 'CURRENCY' | 'INFO_SECTION' | 'MERCHANT_DATA' | 'PLAIN_DESCRIPTION' | 'INFO_SECTION_PLAIN_DESCRIPTION' | 'SUBSCRIPTION_PRICES_INFO' | 'BREADCRUMBS_INFO' | 'WEIGHT_MEASUREMENT_UNIT_INFO' | 'VARIANT_OPTION_CHOICE_NAMES' | 'MEDIA_ITEMS_INFO' | 'DESCRIPTION' | 'DIRECT_CATEGORIES_INFO' | 'ALL_CATEGORIES_INFO' | 'INFO_SECTION_DESCRIPTION' | 'THUMBNAIL' | 'PRODUCT_CHOICES_MEDIA_REFERENCES' | 'PRODUCT_CHOICES_DISPLAY_IMAGE' | 'MIN_PRICE_VARIANT' | 'DISCOUNT_INFO';
interface SearchProductsResponse {
/** Products which satisfy the provided query. */
products?: V3Product[];
/** Paging metadata. Contains cursor which can be used in next query. */
pagingMetadata?: CursorPagingMetadata;
/** Aggregation data. */
aggregationData?: AggregationData;
}
interface CursorPagingMetadata {
/** Number of items returned in the response. */
count?: number | null;
/** Cursor strings that point to the next page, previous page, or both. */
cursors?: Cursors;
/**
* Whether there are more pages to retrieve following the current page.
*
* + `true`: Another page of results can be retrieved.
* + `false`: This is the last page.
*/
hasNext?: boolean | null;
}
interface Cursors {
/**
* Cursor string pointing to the next page in the list of results.
* @maxLength 16000
*/
next?: string | null;
/**
* Cursor pointing to the previous page in the list of results.
* @maxLength 16000
*/
prev?: string | null;
}
interface AggregationData {
/**
* key = aggregation name (as derived from search request)
* @maxSize 10000
*/
results?: AggregationResults[];
}
interface ValueAggregationResult {
/**
* Value of the field
* @maxLength 100
*/
value?: string;
/** Count of entities with this value */
count?: number;
}
interface RangeAggregationResult {
/** Inclusive lower bound of the range */
from?: number | null;
/** Exclusive upper bound of the range */
to?: number | null;
/** Count of entities in this range */
count?: number;
}
interface NestedAggregationResults extends NestedAggregationResultsResultOneOf {
/** Value aggregation results */
values?: ValueResults;
/** Range aggregation results */
ranges?: RangeResults;
/** Scalar aggregation results */
scalar?: AggregationResultsScalarResult;
/**
* User-defined name of aggregation, matches the one provided in request
* @maxLength 100
*/
name?: string;
/** Type of aggregation that matches result */
type?: AggregationTypeWithLiterals;
/**
* Field to aggregate by, matches the one provided in request
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface NestedAggregationResultsResultOneOf {
/** Value aggregation results */
values?: ValueResults;
/** Range aggregation results */
ranges?: RangeResults;
/** Scalar aggregation results */
scalar?: AggregationResultsScalarResult;
}
interface ValueResults {
/**
* List of value aggregations
* @maxSize 250
*/
results?: ValueAggregationResult[];
}
interface RangeResults {
/**
* List of ranges returned in same order as requested
* @maxSize 50
*/
results?: RangeAggregationResult[];
}
interface AggregationResultsScalarResult {
/** Type of scalar aggregation */
type?: ScalarTypeWithLiterals;
/** Value of the scalar aggregation */
value?: number;
}
interface NestedValueAggregationResult {
/**
* Value of the field
* @maxLength 1000
*/
value?: string;
/** Nested aggregations */
nestedResults?: NestedAggregationResults;
}
interface ValueResult {
/**
* Value of the field
* @maxLength 1000
*/
value?: string;
/** Count of entities with this value */
count?: number | null;
}
interface RangeResult {
/** Inclusive lower bound of the range */
from?: number | null;
/** Exclusive upper bound of the range */
to?: number | null;
/** Count of entities in this range */
count?: number | null;
}
interface ScalarResult {
/** Value of the scalar aggregation */
value?: number;
}
interface NestedResultValue extends NestedResultValueResultOneOf {
/** Value aggregation result */
value?: ValueResult;
/** Range aggregation result */
range?: RangeResult;
/** Scalar aggregation result */
scalar?: ScalarResult;
/** Date histogram aggregation result */
dateHistogram?: ValueResult;
}
/** @oneof */
interface NestedResultValueResultOneOf {
/** Value aggregation result */
value?: ValueResult;
/** Range aggregation result */
range?: RangeResult;
/** Scalar aggregation result */
scalar?: ScalarResult;
/** Date histogram aggregation result */
dateHistogram?: ValueResult;
}
interface Results {
/** List of nested aggregations */
results?: Record;
}
interface DateHistogramResult {
/**
* Date in ISO 8601 format
* @maxLength 100
*/
value?: string;
/** Count of documents in the bucket */
count?: number;
}
interface GroupByValueResults {
/**
* List of value aggregations
* @maxSize 1000
*/
results?: NestedValueAggregationResult[];
}
interface DateHistogramResults {
/**
* List of date histogram aggregations
* @maxSize 200
*/
results?: DateHistogramResult[];
}
/**
* Results of `NESTED` aggregation type in a flattened form
* aggregations in resulting array are keyed by requested aggregation `name`.
*/
interface NestedResults {
/**
* List of nested aggregations
* @maxSize 1000
*/
results?: Results[];
}
interface AggregationResults extends AggregationResultsResultOneOf {
/** Value aggregation results */
values?: ValueResults;
/** Range aggregation results */
ranges?: RangeResults;
/** Scalar aggregation results */
scalar?: AggregationResultsScalarResult;
/** Group by value aggregation results */
groupedByValue?: GroupByValueResults;
/** Date histogram aggregation results */
dateHistogram?: DateHistogramResults;
/** Nested aggregation results */
nested?: NestedResults;
/**
* User-defined name of aggregation as derived from search request
* @maxLength 100
*/
name?: string;
/** Type of aggregation that must match provided kind as derived from search request */
type?: AggregationTypeWithLiterals;
/**
* Field to aggregate by as derived from search request
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface AggregationResultsResultOneOf {
/** Value aggregation results */
values?: ValueResults;
/** Range aggregation results */
ranges?: RangeResults;
/** Scalar aggregation results */
scalar?: AggregationResultsScalarResult;
/** Group by value aggregation results */
groupedByValue?: GroupByValueResults;
/** Date histogram aggregation results */
dateHistogram?: DateHistogramResults;
/** Nested aggregation results */
nested?: NestedResults;
}
interface SearchRelatedProductsRequest {
/** Search parameters. */
searchRelated?: SearchRelated;
}
interface SearchRelated {
/**
* A list of entity IDs to search related entities for
* @minSize 1
* @maxSize 10
* @maxLength 50
*/
relatedToIds?: string[];
/** Search details */
search?: SearchRelatedDetails;
/** A filter object. Learn more about [API query language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language). */
filter?: Record | null;
/**
* Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}]
* @maxSize 10
*/
sort?: Sorting[];
/**
* Number of related documents to return
* @max 100
*/
limit?: number | null;
}
interface SearchRelatedDetails {
/**
* Search term or expression
* @maxLength 100
*/
expression?: string | null;
/**
* Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path
* @maxLength 200
* @maxSize 20
*/
fields?: string[];
}
interface SearchRelatedProductsResponse {
/**
* The IDs of related Products that satisfy the request.
* @format GUID
* @maxLength 100
*/
productIds?: string[];
}
interface EventuallyConsistentQueryProductsRequest {
/**
* WQL expression. Please pay attention that unlike other arrays when you want to filter by `inventory`, `options` or `variants` instead of standard array operators you must use `$matchItems` (for usage see examples).
* It means that product will be returned only if one or more items satisfy all filters specified in $matchItems.
* For example, if you have 2 variants: one visible with price 10 and another one not visible with price 20, when inside $matchItems you specify `visible:true` and `price > 15` nothing will be returned because there are no variants which satisfy both conditions.
* You still can use `$isEmpty` and `$exists` operators for fields listed above.
* See examples to understand supported capabilities.
*/
query?: CursorQuery;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface CursorQuery extends CursorQueryPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CursorPaging;
/**
* Filter object.
*
* Learn more about the [filter section](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).
*/
filter?: Record | null;
/**
* Sort object.
*
* Learn more about the [sort section](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting).
* @maxSize 5
*/
sort?: Sorting[];
}
/** @oneof */
interface CursorQueryPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CursorPaging;
}
interface EventuallyConsistentQueryProductsResponse {
/** Products which satisfy the provided query. */
products?: V3Product[];
/** Paging metadata. Contains cursor which can be used in next query. */
pagingMetadata?: CursorPagingMetadata;
}
interface QueryProductsRequest {
/** WQL expression */
query?: CursorQuery;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface QueryProductsResponse {
/** The retrieved Products */
products?: V3Product[];
/** Paging metadata. */
pagingMetadata?: CursorPagingMetadata;
}
interface DeprecatedSearchProductsWithOffsetRequest {
/** Filter and sort with limit/offset based paging */
search?: PlatformOffsetSearch;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface PlatformOffsetSearch extends PlatformOffsetSearchPagingMethodOneOf {
/** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */
paging?: PlatformPaging;
/** A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language). */
filter?: Record | null;
/** Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}] */
sort?: CommonSorting[];
/** Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition. */
aggregations?: CommonAggregation[];
/** free text to match in searchable fields */
search?: CommonSearchDetails;
}
/** @oneof */
interface PlatformOffsetSearchPagingMethodOneOf {
/** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */
paging?: PlatformPaging;
}
interface CommonSorting {
/**
* Name of the field to sort by.
* @maxLength 512
*/
fieldName?: string;
/** Sort order. */
order?: CommonSortOrderWithLiterals;
/**
* Origin point for geo-distance sorting on a GEO field
* results are ordered by distance from this point (ASC = nearest first, DESC = farthest first).
*/
origin?: AddressLocation;
}
declare enum CommonSortOrder {
ASC = "ASC",
DESC = "DESC"
}
/** @enumType */
type CommonSortOrderWithLiterals = CommonSortOrder | 'ASC' | 'DESC';
interface AddressLocation {
/** Address latitude. */
latitude?: number | null;
/** Address longitude. */
longitude?: number | null;
}
interface CommonAggregation extends CommonAggregationKindOneOf {
/** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */
value?: AggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */
range?: AggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: AggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */
dateHistogram?: AggregationDateHistogramAggregation;
/** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */
nested?: AggregationNestedAggregation;
/** A geotile grid aggregation groups geo point values into buckets that represent map tiles at a given precision, for map clustering visualizations. */
geotileGrid?: GeotileGridAggregation;
/**
* Aggregation name, returned in `aggregations.results.name`.
* @maxLength 100
*/
name?: string | null;
/** Type of aggregation to perform. Must align with the corresponding aggregation field. */
type?: CommonAggregationTypeWithLiterals;
/**
* Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.
* @maxLength 200
*/
fieldPath?: string;
/**
* Deprecated. Use `nested` instead.
* @deprecated Deprecated. Use `nested` instead.
* @replacedBy kind.nested
* @targetRemovalDate 2024-03-30
*/
groupBy?: GroupByAggregation;
}
/** @oneof */
interface CommonAggregationKindOneOf {
/** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */
value?: AggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */
range?: AggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: AggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */
dateHistogram?: AggregationDateHistogramAggregation;
/** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */
nested?: AggregationNestedAggregation;
/** A geotile grid aggregation groups geo point values into buckets that represent map tiles at a given precision, for map clustering visualizations. */
geotileGrid?: GeotileGridAggregation;
}
interface RangeAggregationRangeBucket {
/** Inclusive lower bound of the range. Required if `to` is not provided. */
from?: number | null;
/** Exclusive upper bound of the range. Required if `from` is not provided. */
to?: number | null;
}
declare enum ValueAggregationSortType {
/** Number of matches in the results. */
COUNT = "COUNT",
/** Alphabetically by the field value. */
VALUE = "VALUE"
}
/** @enumType */
type ValueAggregationSortTypeWithLiterals = ValueAggregationSortType | 'COUNT' | 'VALUE';
declare enum ValueAggregationSortDirection {
/** Descending order. */
DESC = "DESC",
/** Ascending order. */
ASC = "ASC"
}
/** @enumType */
type ValueAggregationSortDirectionWithLiterals = ValueAggregationSortDirection | 'DESC' | 'ASC';
declare enum ValueAggregationMissingValues {
/** Exclude missing values from the aggregation results. */
EXCLUDE = "EXCLUDE",
/** Include missing values in the aggregation results. */
INCLUDE = "INCLUDE"
}
/** @enumType */
type ValueAggregationMissingValuesWithLiterals = ValueAggregationMissingValues | 'EXCLUDE' | 'INCLUDE';
interface ValueAggregationIncludeMissingValuesOptions {
/**
* Specify a custom name for the bucket containing the missing values. Defaults are `"N/A"` for strings, `0` for integers, and `false` for booleans.
* @maxLength 20
*/
addToBucket?: string;
}
declare enum CommonScalarType {
/** Total number of distinct values. */
COUNT_DISTINCT = "COUNT_DISTINCT",
/** Minimum value. */
MIN = "MIN",
/** Maximum value. */
MAX = "MAX"
}
/** @enumType */
type CommonScalarTypeWithLiterals = CommonScalarType | 'COUNT_DISTINCT' | 'MIN' | 'MAX';
interface AggregationValueAggregation extends AggregationValueAggregationOptionsOneOf {
/** Options for including missing values in results. */
includeOptions?: ValueAggregationIncludeMissingValuesOptions;
/** Sort type. */
sortType?: ValueAggregationSortTypeWithLiterals;
/** Sort direction. */
sortDirection?: ValueAggregationSortDirectionWithLiterals;
/**
* Number of aggregation results to return.
* Min: `1`
* Max: `250`
* Default: `10`
*/
limit?: number | null;
/**
* Whether to include or exclude missing values in the aggregation results.
* Default: `EXCLUDE`.
*/
missingValues?: ValueAggregationMissingValuesWithLiterals;
}
/** @oneof */
interface AggregationValueAggregationOptionsOneOf {
/** Options for including missing values in results. */
includeOptions?: ValueAggregationIncludeMissingValuesOptions;
}
declare enum NestedAggregationNestedAggregationType {
/** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */
VALUE = "VALUE",
/** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */
RANGE = "RANGE",
/** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
SCALAR = "SCALAR",
/** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */
DATE_HISTOGRAM = "DATE_HISTOGRAM"
}
/** @enumType */
type NestedAggregationNestedAggregationTypeWithLiterals = NestedAggregationNestedAggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM';
interface AggregationRangeAggregation {
/**
* List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.
* @maxSize 50
*/
buckets?: RangeAggregationRangeBucket[];
}
interface AggregationScalarAggregation {
/** Operator type for the scalar aggregation. */
type?: CommonScalarTypeWithLiterals;
}
interface AggregationDateHistogramAggregation {
/** Interval for date histogram aggregation. */
interval?: DateHistogramAggregationIntervalWithLiterals;
}
declare enum DateHistogramAggregationInterval {
YEAR = "YEAR",
MONTH = "MONTH",
WEEK = "WEEK",
DAY = "DAY",
HOUR = "HOUR",
MINUTE = "MINUTE",
SECOND = "SECOND"
}
/** @enumType */
type DateHistogramAggregationIntervalWithLiterals = DateHistogramAggregationInterval | 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND';
interface NestedAggregationNestedAggregationItem extends NestedAggregationNestedAggregationItemKindOneOf {
/** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */
value?: AggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
range?: AggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: AggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
dateHistogram?: AggregationDateHistogramAggregation;
/**
* Unique, caller-defined aggregation name, returned in `aggregations.results`.
* @maxLength 100
*/
name?: string | null;
/** Type of aggregation to perform. The matching aggregation field must be passed. */
type?: NestedAggregationNestedAggregationTypeWithLiterals;
/**
* Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface NestedAggregationNestedAggregationItemKindOneOf {
/** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */
value?: AggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
range?: AggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: AggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
dateHistogram?: AggregationDateHistogramAggregation;
}
declare enum CommonAggregationType {
/** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */
VALUE = "VALUE",
/** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */
RANGE = "RANGE",
/** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
SCALAR = "SCALAR",
/** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */
DATE_HISTOGRAM = "DATE_HISTOGRAM",
/** Flattened list of aggregations, where each aggregation is nested within previous one. */
NESTED = "NESTED",
/** Groups geo point values into buckets that represent map tiles at a given precision, for map clustering. */
GEOTILE_GRID = "GEOTILE_GRID"
}
/** @enumType */
type CommonAggregationTypeWithLiterals = CommonAggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM' | 'NESTED' | 'GEOTILE_GRID';
/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */
interface AggregationNestedAggregation {
/**
* Flattened list of aggregations, where each aggregation is nested within previous one.
* @minSize 2
* @maxSize 3
*/
nestedAggregations?: NestedAggregationNestedAggregationItem[];
}
/** Groups geo point values into buckets that represent map tiles at a given precision, for map clustering. */
interface GeotileGridAggregation {
/**
* Precision (zoom) level of the geotile grid. Higher values produce smaller, more numerous tiles.
* @max 29
*/
precision?: number;
}
interface GroupByAggregation extends GroupByAggregationKindOneOf {
/** Value aggregation configuration. */
value?: AggregationValueAggregation;
/**
* Unique, caller-defined aggregation name, returned in `aggregations.results`.
* @maxLength 100
*/
name?: string | null;
/**
* Field to aggregate by.
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface GroupByAggregationKindOneOf {
/** Value aggregation configuration. */
value?: AggregationValueAggregation;
}
interface CommonSearchDetails {
/** Search mode. Defines the search logic for combining multiple terms in the `expression`. */
mode?: SearchDetailsModeWithLiterals;
/**
* Search term or expression.
* @maxLength 100
*/
expression?: string | null;
/**
* Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`.
* @maxLength 200
* @maxSize 20
*/
fields?: string[];
/** Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. */
fuzzy?: boolean;
}
declare enum SearchDetailsMode {
/** At least one of the search terms must be present. */
OR = "OR",
/** All search terms must be present. */
AND = "AND"
}
/** @enumType */
type SearchDetailsModeWithLiterals = SearchDetailsMode | 'OR' | 'AND';
interface PlatformPaging {
/**
* Number of items to load.
* @max 100
*/
limit?: number | null;
/** Number of items to skip in the current sort order. */
offset?: number | null;
}
interface DeprecatedSearchProductsWithOffsetResponse {
/** Products which satisfy the provided query. */
products?: V3Product[];
/** Paging metadata. */
pagingMetadata?: PagingMetadata;
/** Aggregation data. */
aggregationData?: AggregationData;
}
interface PagingMetadata {
/** Number of items returned in the response. */
count?: number | null;
/** Offset that was requested. */
offset?: number | null;
/** Total number of items that match the query. */
total?: number | null;
/** Flag that indicates the server failed to calculate the `total` field. */
tooManyToCount?: boolean | null;
}
interface RetrieveVariantsRequest {
/**
* Ids of the product and variants to retrieve
* @maxSize 100
*/
productVariantIds?: ProductVariantIds[];
/**
* Pointer to the next page in the list of results.
* Pass the relevant cursor token from the `pagingMetadata` in the previous call's response.
* Not relevant for the first request.
*/
cursorPaging?: VariantsCursorPaging;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: VariantsOpsRequestedFieldsWithLiterals[];
}
interface ProductVariantIds {
/**
* Product id of the requested variants.
* @minLength 1
* @maxLength 36
*/
productId?: string;
/**
* A list of variant ids.
* @maxSize 1000
* @minLength 1
* @maxLength 36
*/
variantIds?: string[];
}
interface VariantsCursorPaging {
/**
* Maximum number of items to return in the results.
* @max 1000
*/
limit?: number | null;
/**
* Pointer to the next or previous page in the list of results.
*
* Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
* Not relevant for the first request.
* @maxLength 64
*/
cursor?: string | null;
}
declare enum VariantsOpsRequestedFields {
CURRENCY = "CURRENCY",
/** You can request merchant data only if you have the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope. */
MERCHANT_DATA = "MERCHANT_DATA",
SUBSCRIPTION_PRICES_INFO = "SUBSCRIPTION_PRICES_INFO",
VARIANT_OPTION_CHOICE_NAMES = "VARIANT_OPTION_CHOICE_NAMES",
THUMBNAIL = "THUMBNAIL"
}
/** @enumType */
type VariantsOpsRequestedFieldsWithLiterals = VariantsOpsRequestedFields | 'CURRENCY' | 'MERCHANT_DATA' | 'SUBSCRIPTION_PRICES_INFO' | 'VARIANT_OPTION_CHOICE_NAMES' | 'THUMBNAIL';
interface RetrieveVariantsResponse {
/** The retrieved Products and Variants */
productVariants?: ProductVariants[];
/** Paging metadata. Contains cursor which can be used in next query. */
pagingMetadata?: CursorPagingMetadata;
}
interface ProductVariants {
/**
* Product id of the requested variants.
* @minLength 1
* @maxLength 36
*/
productId?: string;
/**
* A list of variants.
* @maxSize 1000
*/
variants?: Variant[];
}
interface CountProductsRequest {
/**
* A filter object. Learn more about [API query language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language).
* To understand supported filters and limitations see `SearchProducts` method.
*/
filter?: Record | null;
/** free text to match in searchable fields */
search?: SearchDetails;
}
interface CountProductsResponse {
/** The amount of products which apply to the request */
count?: number;
}
interface DoNotCallBulkCreateProductsRequest {
/**
* List of products to be created.
* @minSize 1
* @maxSize 100
*/
products?: V3Product[];
/** Whether to return the full product entity in the response. */
returnEntity?: boolean;
/**
* A list of requested fields to be included in the response. Relevant only if `return_entity` true.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface DoNotCallBulkCreateProductsResponse {
/**
* Products created by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: V3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: BulkActionMetadata;
}
interface V3BulkProductResult {
/** Bulk action metadata for product. */
itemMetadata?: CommonItemMetadata;
/**
* Full product entity.
*
* Returned only if `returnEntity: true` is passed in the request.
*/
item?: V3Product;
}
interface CommonItemMetadata {
/** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */
id?: string | null;
/** Index of the item within the request array. Allows for correlation between request and response items. */
originalIndex?: number;
/** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
success?: boolean;
/** Details about the error in case of failure. */
error?: ApplicationError;
}
interface ApplicationError {
/** Error code. */
code?: string;
/** Description of the error. */
description?: string;
/** Data related to the error. */
data?: Record | null;
}
interface BulkActionMetadata {
/** Number of items that were successfully processed. */
totalSuccesses?: number;
/** Number of items that couldn't be processed. */
totalFailures?: number;
/** Number of failures without details because detailed failure threshold was exceeded. */
undetailedFailures?: number;
}
interface DoNotCallBulkUpdateProductsRequest {
/**
* List of products to be updated.
* @minSize 1
* @maxSize 100
*/
products?: MaskedProduct[];
/** Whether to return the full product entity in the response. */
returnEntity?: boolean;
/**
* A list of requested fields to be included in the response. Relevant only if `return_entity` true.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface MaskedProduct {
/** product to be updated, may be partial. */
product?: V3Product;
}
interface DoNotCallBulkUpdateProductsResponse {
/**
* Products updated by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: V3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: BulkActionMetadata;
}
interface BulkUpdateProductsByFilterRequest {
/**
* Filter object in the following format:
* `"filter" : {
* "name": "value1",
* "categoryIds":{"$in":["categoryId1", "categoryId2"]}
* }`
* Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
*/
filter?: Record | null;
/** Product with new field values. */
product?: V3Product;
/** Free text to match in searchable fields */
search?: SearchDetails;
}
interface BulkUpdateProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface BulkDeleteProductsRequest {
/**
* IDs of products to be deleted.
* @minLength 1
* @maxLength 36
* @minSize 1
* @maxSize 100
*/
productIds?: string[];
}
interface BulkDeleteProductsResponse {
/**
* Products deleted by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: BulkActionMetadata;
}
interface BulkProductResult {
/** Information about successful action or error for failure. */
itemMetadata?: CommonItemMetadata;
}
interface BulkDeleteProductsByFilterRequest {
/**
* Filter object in the following format:
* `"filter" : {
* "actualPriceRange.minValue": {"$lte": 5.99}
* }`
* Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
*/
filter?: Record | null;
/** Free text to match in searchable fields */
search?: SearchDetails;
}
interface BulkDeleteProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface BulkAddInfoSectionsToProductsByFilterRequest {
/**
* Filter object in the following format:
* `"filter" : {
* "actualPriceRange.minValue": {"$lte": 5.99}
* }`
* Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
*/
filter?: Record | null;
/**
* Info sections to be added
* @format GUID
* @minSize 1
* @maxSize 10
*/
infoSectionIds?: string[];
/** Free text to match in searchable fields */
search?: SearchDetails;
}
interface BulkAddInfoSectionsToProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface FulfillerDeleted {
/** @format GUID */
id?: string;
}
interface BulkAddInfoSectionsToProductsRequest {
/**
* Products to be updated with id and revision.
* @minSize 1
* @maxSize 100
*/
products?: ProductIdWithRevision[];
/**
* Products to be updated with id and revision.
* Info section to be added
* @format GUID
* @minSize 1
* @maxSize 10
*/
infoSectionIds?: string[];
/** Whether to return all updated product entities in the response. Default: false */
returnEntity?: boolean;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface ProductIdWithRevision {
/**
* ID of product.
* @minLength 1
* @maxLength 36
*/
productId?: string;
/** The revision of the Product */
revision?: string;
}
interface BulkAddInfoSectionsToProductsResponse {
/**
* Products updated by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: V3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: BulkActionMetadata;
}
interface ReconcileStaleCategorySortIndicesRequest {
}
interface ReconcileStaleCategorySortIndicesResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface BulkRemoveInfoSectionsFromProductsByFilterRequest {
/**
* Filter object in the following format:
* `"filter" : {
* "name": "value1",
* "categoryIds":{"$in":["categoryId1", "categoryId2"]}
* }`
* Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
*/
filter?: Record | null;
/**
* Info sections to be removed
* @format GUID
* @minSize 1
* @maxSize 100
*/
infoSectionIds?: string[];
/** Free text to match in searchable fields */
search?: SearchDetails;
}
interface BulkRemoveInfoSectionsFromProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface BulkRemoveInfoSectionsFromProductsRequest {
/**
* Products to be updated with id and revision.
* @minSize 1
* @maxSize 100
*/
products?: ProductIdWithRevision[];
/**
* Info section to be removed.
* @format GUID
* @minSize 1
* @maxSize 100
*/
infoSectionIds?: string[];
/** Whether to return all updated product entities in the response. Default: false */
returnEntity?: boolean;
/**
* A list of requested fields to be included in the response.
* @maxSize 5
*/
fields?: RequestedFieldsWithLiterals[];
}
interface BulkRemoveInfoSectionsFromProductsResponse {
/**
* Products updated by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: V3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: BulkActionMetadata;
}
interface BulkUpdateVariantsByFilterRequest {
/** Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */
filter?: Record | null;
/** Variant with new field values. */
variant?: Variant;
/** Free text to match in searchable fields */
search?: SearchDetails;
}
interface BulkUpdateVariantsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface BulkAdjustProductVariantsByFilterRequest {
/** Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$contains` */
filter?: Record | null;
/** The amount or percentage to change the variants cost by */
cost?: AdjustValue;
/** Defines rounding strategy of new calculated prices. Default: CURRENCY_PRECISION. */
rounding?: RoundingStrategyWithLiterals;
/** Free text to match in searchable fields */
search?: SearchDetails;
/** Actual price adjustment. */
actualPrice?: AdjustValue;
/** Compare at price adjustment. */
compareAtPrice?: AdjustValue;
/**
* Set variant actualPrice from compareAtPrice by applying provided discount to it.
* if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.
* For example variant compare at price 100$, variant actual price is 95$, requested `compareAtPriceDiscount.percentage` is 10, then old actual price ignored and new actual price set to 90 (100$ - 10%).
*/
compareAtPriceDiscount?: UnsignedAdjustValue;
}
interface AdjustValue extends AdjustValueAdjustValueOneOf {
/**
* A decimal value to increase or reduce from the original value, can be negative.
* @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to increase or reduce from the current value, can be negative.
* @min -100
* @max 1000
*/
percentage?: number;
}
/** @oneof */
interface AdjustValueAdjustValueOneOf {
/**
* A decimal value to increase or reduce from the original value, can be negative.
* @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to increase or reduce from the current value, can be negative.
* @min -100
* @max 1000
*/
percentage?: number;
}
declare enum RoundingStrategy {
/**
* Calculated prices are saved without rounding to keep the maximum possible precision. It's a good idea to round numbers before displaying them.
* For example, input $3.5555 -> saved value $3.5555
*/
NO_ROUNDING = "NO_ROUNDING",
/**
* Calculated prices are rounded according to currency precision.
* For example:, input $3.5555 -> saved value $3.56, input ¥3.5555 -> saved value ¥4
*/
CURRENCY_PRECISION = "CURRENCY_PRECISION",
/**
* Calculated prices are rounded to nearest whole number.
* For example, input $3.5555 -> saved value $4
*/
NEAREST_WHOLE_NUMBER = "NEAREST_WHOLE_NUMBER"
}
/** @enumType */
type RoundingStrategyWithLiterals = RoundingStrategy | 'NO_ROUNDING' | 'CURRENCY_PRECISION' | 'NEAREST_WHOLE_NUMBER';
interface UnsignedAdjustValue extends UnsignedAdjustValueAdjustValueOneOf {
/**
* A decimal value to reduce from the original value.
* @decimalValue options { gte:0, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to reduce from the original value.
* @max 100
*/
percentage?: number;
}
/** @oneof */
interface UnsignedAdjustValueAdjustValueOneOf {
/**
* A decimal value to reduce from the original value.
* @decimalValue options { gte:0, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to reduce from the original value.
* @max 100
*/
percentage?: number;
}
interface BulkAdjustProductVariantsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface BulkCreateProductsForMigrationRequest {
/**
* List of products to be created.
* @minSize 1
* @maxSize 100
*/
products?: V3Product[];
/** Whether to return the full product entity in the response. */
returnEntity?: boolean;
/**
* A list of requested fields to be included in the response. Relevant only if `return_entity` true.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface BulkCreateProductsForMigrationResponse {
/**
* Products created by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: V3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: BulkActionMetadata;
}
interface BulkInventoryItemAction {
/**
* Inventory items.
* @maxSize 1000
*/
inventoryItems?: InventoryItem[];
/** Type of bulk inventory changed event - created, updated or deleted */
eventType?: EventTypeWithLiterals;
}
/**
* Inventory Item.
*
* Each inventory item represents a specific product variant at a specific location.
* The combination of `variantId` and `locationId` is unique — you can't have two inventory items for the same variant at the same location.
*/
interface InventoryItem extends InventoryItemTrackingMethodOneOf {
/**
* Indicates that inventory is tracked by status rather than quantity.
*
* When set to `true`, the item is marked as available for sale without tracking exact quantities.
* When set to `false`, the item is marked as out of stock.
* This tracking method is useful for made-to-order products or items with unlimited inventory.
*
* When using this tracking method, `trackQuantity` is `false` and preorder limits aren't supported.
*/
inStock?: boolean;
/**
* Indicates that inventory is tracked by quantity.
*
* Set this field to the number of items currently in stock.
* This tracking method is useful when you need to know exactly how many items are available.
*
* When using this tracking method, `trackQuantity` is `true`.
* Quantity can be negative when inventory is decremented for an order that has already been paid.
* @min -99999
* @max 99999
*/
quantity?: number;
/**
* Inventory item ID.
* @format GUID
* @readonly
*/
id?: string | null;
/**
* Revision number, which increments by 1 each time the inventory item is updated.
* To prevent conflicting changes,
* the current revision must be passed when updating the inventory item.
*
* Ignored when creating an inventory item.
* @readonly
*/
revision?: string | null;
/**
* Date and time the inventory item was created.
* @readonly
*/
createdDate?: Date | null;
/**
* Date and time the inventory item was last updated.
* @readonly
*/
updatedDate?: Date | null;
/**
* Variant ID.
* @format GUID
* @immutable
*/
variantId?: string;
/**
* Stores location ID. If not specified when creating an inventory item, the store's default location is used.
* @format GUID
* @immutable
*/
locationId?: string | null;
/**
* Product ID.
* @minLength 1
* @maxLength 36
* @immutable
*/
productId?: string;
/**
* Whether the quantity is being tracked.
* @readonly
*/
trackQuantity?: boolean;
/**
* Inventory item availability status.
* @readonly
*/
availabilityStatus?: AvailabilityStatusWithLiterals;
/**
* Item preorder info.
*
* Preorder settings are configured per inventory item, so each variant-location combination can have its own preorder configuration.
*
* > **Note:** The product entity's `inventory.preorderStatus` and `inventory.preorderAvailability` fields reflect only the default location's preorder state.
*/
preorderInfo?: PreorderInfo;
/**
* Associated product and variant details.
* @readonly
*/
product?: Product;
/**
* Custom field data for the inventory item object.
*
* [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions) must be configured in the app dashboard before they can be accessed with API calls.
*/
extendedFields?: ExtendedFields;
}
/** @oneof */
interface InventoryItemTrackingMethodOneOf {
/**
* Indicates that inventory is tracked by status rather than quantity.
*
* When set to `true`, the item is marked as available for sale without tracking exact quantities.
* When set to `false`, the item is marked as out of stock.
* This tracking method is useful for made-to-order products or items with unlimited inventory.
*
* When using this tracking method, `trackQuantity` is `false` and preorder limits aren't supported.
*/
inStock?: boolean;
/**
* Indicates that inventory is tracked by quantity.
*
* Set this field to the number of items currently in stock.
* This tracking method is useful when you need to know exactly how many items are available.
*
* When using this tracking method, `trackQuantity` is `true`.
* Quantity can be negative when inventory is decremented for an order that has already been paid.
* @min -99999
* @max 99999
*/
quantity?: number;
}
declare enum AvailabilityStatus {
/** Item is out of stock. For tracked inventory, `quantity` is zero or negative and preorder isn't available. */
OUT_OF_STOCK = "OUT_OF_STOCK",
/** Item is in stock and available for purchase. For tracked inventory, see the `quantity` field for the exact amount in stock. */
IN_STOCK = "IN_STOCK",
/** Item is available for preorder only. Stock is zero or negative, but preorder is enabled with remaining capacity. */
PREORDER = "PREORDER"
}
/** @enumType */
type AvailabilityStatusWithLiterals = AvailabilityStatus | 'OUT_OF_STOCK' | 'IN_STOCK' | 'PREORDER';
interface PreorderInfo {
/**
* Whether preorder is enabled for this inventory item.
*
* > **Note:** Preorder can't be enabled for digital products or products with subscriptions.
*
* Default: `false`
*/
enabled?: boolean | null;
/**
* Message displayed to customers when the item is out of stock and preorder is enabled.
* @minLength 1
* @maxLength 250
*/
message?: string | null;
/**
* Maximum number of items that can be preordered after stock reaches zero.
*
* Supported only for inventory items with `trackQuantity = true`.
*
* Default: `100000`
* @max 100000
*/
limit?: number | null;
/**
* Number of times this item has been preordered.
*
* Supported only for inventory items with `trackQuantity = true`.
* @readonly
* @max 99999
*/
counter?: number | null;
/**
* Remaining quantity available for preorder.
*
* Supported only for items with `trackQuantity` set to `true`.
* @readonly
*/
quantity?: number | null;
}
interface Product {
/**
* Product name.
* @maxLength 80
*/
name?: string | null;
/**
* List of category IDs that this product is included in directly.
* @format GUID
* @maxSize 2000
*/
directCategoryIds?: string[];
/**
* Variant name.
* @minLength 1
* @maxLength 250
*/
variantName?: string | null;
/**
* Variant SKU (stock keeping unit).
* @minLength 1
* @maxLength 40
*/
variantSku?: string | null;
/** Whether the variant is visible in the store. */
variantVisible?: boolean | null;
}
/** Product brand information. */
interface Brand {
/**
* Brand ID.
* @format GUID
*/
id?: string | null;
/**
* Brand name.
* @maxLength 50
*/
name?: string | null;
}
declare enum EventType {
UNKNOWN = "UNKNOWN",
CREATED = "CREATED",
UPDATED = "UPDATED",
DELETED = "DELETED"
}
/** @enumType */
type EventTypeWithLiterals = EventType | 'UNKNOWN' | 'CREATED' | 'UPDATED' | 'DELETED';
interface CalculateProductInventorPreorderStatusAsyncRequest {
/**
* ID of the product to calculate inventory for
* @format GUID
*/
productId?: string;
}
interface CalculateProductInventorPreorderStatusAsyncResponse {
}
interface PuffUpProductMediaRequest {
/**
* Product to puff up.
* @format GUID
*/
productId?: string;
/**
* A list of requested fields to be included in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
/**
* How many media items the product should have after puffing up
* @min 1
* @max 50
*/
mediaCount?: number;
/**
* How many images will be linked to a single choide
* @max 50
*/
choiceLinkedMediaCount?: number;
}
interface PuffUpProductMediaResponse {
/** Final product (optional; beware of media 15-cap in entity schema). */
product?: V3Product;
}
interface BulkUpdateProductTagsRequest {
/**
* List of product IDs whose tags will be updated.
* @minSize 1
* @maxSize 100
* @format GUID
*/
productIds?: string[];
/** List of tags to assign. */
assignTags?: Tags;
/** List of tags to unassign. */
unassignTags?: Tags;
}
interface BulkUpdateProductTagsResponse {
/**
* Results.
* @minSize 1
* @maxSize 100
*/
results?: BulkUpdateProductTagsResult[];
/** Aggregated success/failure counts. */
bulkActionMetadata?: BulkActionMetadata;
}
interface BulkUpdateProductTagsResult {
/** Metadata regarding the specific single update operation. */
itemMetadata?: CommonItemMetadata;
}
interface BulkUpdateProductTagsByFilterRequest {
/** Filter object. Pass an empty object `{}` to target all products. */
filter?: Record | null;
/** List of tags to assign. */
assignTags?: Tags;
/** List of tags to unassign. */
unassignTags?: Tags;
}
interface BulkUpdateProductTagsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata.
* @format GUID
*/
jobId?: string;
}
/**
* Published on Greyhound topic "catalog-rollback-requested" after the site is handled by the V3 population rollback.
* Each owning service reacts to this rollback request according to its own policy.
*/
interface CatalogRollbackRequested {
/**
* The MetaSite ID of the store whose catalog migration rollback was requested.
* @format GUID
*/
metaSiteId?: string;
/** Whether owner services should clean V3 catalog data as a reaction to this rollback request. */
cleanData?: boolean;
}
interface CreateProductRequest {
/**
* Product to create.
*
* At least 1 variant must be provided, and each variant must have an item in the `choices` field for every item in `options`.
* If `options` is empty, 1 default variant must be provided with an empty `choices` list.
*/
product: V3Product;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface CreateProductResponse {
/** Created product. */
product?: V3Product;
}
interface VariantsNotAlignedWithProduct {
/**
* Variants not aligned with product
* @maxSize 1000
*/
variants?: VariantNotAlignedWithProduct[];
}
interface VariantNotAlignedWithProduct {
/**
* variant id
* @format GUID
*/
variantId?: string;
/**
* what's wrong with this specific variant
* @maxLength 200
*/
errorDescription?: string;
}
interface MissingVariantOptionChoiceErrorData {
/**
* option product with choice not assigned to variant
* @maxSize 1000
* @minLength 1
* @maxLength 36
*/
optionsMissingChoice?: string[];
/**
* @minLength 1
* @maxLength 36
*/
productId?: string;
}
interface MissingVariantOptionErrorData {
/**
* variant option does not exist in product options
* @maxSize 1000
* @minLength 1
* @maxLength 36
*/
optionIds?: string[];
/**
* @minLength 1
* @maxLength 36
*/
productId?: string;
}
interface CreateProductWithInventoryRequest {
/**
* Product to create with inventory.
*
* At least one variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.
* If `options` is empty one default variant must be provided with empty `choices` list.
*/
product: ProductWithInventory;
/**
* Whether to return inventory entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface ProductWithInventory extends ProductWithInventoryTypedPropertiesOneOf {
/**
* Physical properties.
*
* Required when `productType: PHYSICAL`.
*/
physicalProperties?: PhysicalProperties;
/**
* Product ID.
* @minLength 1
* @maxLength 36
* @immutable
* @readonly
*/
id?: string | null;
/**
* 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 with inventory.
* @readonly
*/
revision?: string | null;
/**
* Product name. Translatable.
* @minLength 1
* @maxLength 80
*/
name?: string | null;
/**
* Product slug.
*
* If not provided, the slug is autogenerated based on the product name.
* @minLength 1
* @maxLength 300
*/
slug?: string | null;
/**
* 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.
* @maxLength 16000
*/
plainDescription?: string | null;
/**
* Whether the product is visible to site visitors.
*
* Default: `true`
*/
visible?: boolean | null;
/**
* Whether the product is visible in POS (point of sale).
*
* Default: `true`
* > **Note:** Always `false` for `productType: DIGITAL`.
*/
visibleInPos?: boolean | null;
/** Product media items. */
media?: Media;
/** Product SEO data. */
seoData?: SeoSchema;
/**
* [Tax group ID](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/tax/tax-groups/introduction). Used to apply specific tax rates to products.
* @format GUID
*/
taxGroupId?: string | null;
/**
* 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).
*
* Options are stored as reusable [customization](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/introduction) entities. Pass an existing customization's ID to reuse it, or define options inline and new customization entities are created automatically.
* @maxSize 6
*/
options?: ConnectedOption[];
/**
* 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).
*
* Modifiers are stored as reusable [customization](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/introduction) entities. Pass an existing customization's ID to reuse it, or define modifiers inline and new customization entities are created automatically.
* @maxSize 10
*/
modifiers?: ConnectedModifier[];
/**
* Product brand.
*
* + Pass `brand.name` to add a new brand while creating a product.
* + Pass an existing brand's `id` to assign that brand to the product.
*/
brand?: V3Brand;
/**
* Product info section.
*
* + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.
* + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.
* @maxSize 10
*/
infoSections?: InfoSection[];
/**
* Primary product ribbon 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.
*/
ribbon?: Ribbon;
/**
* Additional [ribbons](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/ribbons-v3/introduction) 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. Ribbons appear in the same order as this list.
*
* 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.
* @maxSize 4
*/
additionalRibbons?: Ribbon[];
/**
* The ID of the product's primary direct category, which defines the product's breadcrumbs path. For example, if the product's main category is "T-Shirts" (which is a subcategory of "Clothing"), the breadcrumbs path will be "Clothing > T-Shirts".
* @format GUID
*/
mainCategoryId?: string | null;
/**
* 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.
* @immutable
*/
productType?: ProductTypeWithLiterals;
/**
* 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.
* @minLength 1
* @maxLength 100
* @readonly
*/
handle?: string | null;
/**
* 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.
* Variants aren't auto-generated. 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).
*/
variantsInfo?: V3VariantsInfo;
/**
* 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.
*/
subscriptionDetails?: SubscriptionDetails;
/** Purchase eligibility settings for the product. */
purchaseEligibility?: PurchaseEligibility;
/**
* 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) must be configured in the [app dashboard](https://dev.wix.com/dc3/my-apps/) before they can be accessed with API calls.
*/
extendedFields?: ExtendedFields;
/** Tags */
tags?: Tags;
}
/** @oneof */
interface ProductWithInventoryTypedPropertiesOneOf {
/**
* Physical properties.
*
* Required when `productType: PHYSICAL`.
*/
physicalProperties?: PhysicalProperties;
}
interface V3VariantsInfo {
/**
* List of related variants.
* Partial update of variants is not supported so on update you must pass all data for all of them.
* If you want to update existing variant you must provide `id`, otherwise new variant with different id will be created which might break some integrations that rely on variant ids.
* @minSize 1
* @maxSize 1000
*/
variants?: VariantWithInventory[];
}
interface VariantWithInventory extends VariantWithInventoryTypedPropertiesOneOf {
/** Physical properties. Must be passed when `productType: PHYSICAL` */
physicalProperties?: VariantPhysicalProperties;
/** Digital properties. Must be passed when `productType: DIGITAL` */
digitalProperties?: VariantDigitalProperties;
/**
* Variant ID.
* @format GUID
* @immutable
*/
id?: string | null;
/**
* Whether the variant is visible to site visitors.
*
* Default: `true`
*/
visible?: boolean | null;
/**
* Variant SKU (stock keeping unit).
* @minLength 1
* @maxLength 40
*/
sku?: string | null;
/**
* Variant barcode.
* @minLength 1
* @maxLength 40
*/
barcode?: string | null;
/** Variant price. */
price?: PriceInfo;
/**
* 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.
*/
revenueDetails?: RevenueDetails;
/** Inventory item of the variant on the default location. */
inventoryItem?: InventoryItemComposite;
/**
* List of choices.
* @maxSize 6
* @immutable
*/
choices?: OptionChoiceReferences[];
}
/** @oneof */
interface VariantWithInventoryTypedPropertiesOneOf {
/** Physical properties. Must be passed when `productType: PHYSICAL` */
physicalProperties?: VariantPhysicalProperties;
/** Digital properties. Must be passed when `productType: DIGITAL` */
digitalProperties?: VariantDigitalProperties;
}
interface InventoryItemComposite extends InventoryItemCompositeTrackingMethodOneOf {
/**
* Tracking method - in stock.
*
* When set to `true`, the item is available for sale without a quantity limit.
*/
inStock?: boolean;
/**
* Tracking method - quantity left in inventory.
*
* Quantity can be negative when decrementing inventory for an order that has already been paid.
* @min -99999
* @max 99999
*/
quantity?: number;
/**
* Inventory item ID.
* If you want to update existing inventory item you must provide id,
* otherwise new inventory item with different id will be created.
* @format GUID
* @readonly
*/
id?: string | null;
/**
* Inventory item revision.
* @readonly
*/
revision?: string | null;
/** Item preorder info. */
preorderInfo?: PreorderInfo;
}
/** @oneof */
interface InventoryItemCompositeTrackingMethodOneOf {
/**
* Tracking method - in stock.
*
* When set to `true`, the item is available for sale without a quantity limit.
*/
inStock?: boolean;
/**
* Tracking method - quantity left in inventory.
*
* Quantity can be negative when decrementing inventory for an order that has already been paid.
* @min -99999
* @max 99999
*/
quantity?: number;
}
interface OptionChoiceReferences {
/** Option and choice IDs. */
optionChoiceIds?: V3OptionChoiceIds;
/** Option and choice names. */
optionChoiceNames?: V3OptionChoiceNames;
}
interface V3OptionChoiceIds {
/**
* Option ID.
* @minLength 1
* @maxLength 36
* @immutable
*/
optionId?: string;
/**
* Choice ID.
* @format GUID
* @immutable
*/
choiceId?: string;
}
interface V3OptionChoiceNames {
/**
* Option name.
* @minLength 1
*/
optionName?: string;
/**
* Choice name.
* @minLength 1
*/
choiceName?: string;
/** Render type. */
renderType?: ProductOptionRenderTypeWithLiterals;
}
interface CreateProductWithInventoryResponse {
/** Created product. */
product?: V3Product;
/** Inventories created by bulk action. */
inventoryResults?: BulkInventoryItemResults;
}
interface BulkInventoryItemResults {
/**
* Inventories modified by bulk action.
* @maxSize 1000
*/
results?: BulkInventoryItemResult[];
/** Bulk action metadata. */
bulkActionMetadata?: CommonBulkActionMetadata;
/** Error details in case of failed action. */
error?: ApplicationError;
}
interface BulkInventoryItemResult {
/** Bulk action metadata for inventory item. */
itemMetadata?: ItemMetadata;
/**
* Full inventory item entity.
*
* Returned only if `returnEntity: true` is passed in the request.
*/
item?: InventoryItem;
}
interface ItemMetadata {
/**
* Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).
* @format GUID
*/
id?: string | null;
/** Index of the item within the request array. Allows for correlation between request and response items. */
originalIndex?: number;
/** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
success?: boolean;
/** Details about the error in case of failure. */
error?: ApplicationError;
}
interface CommonBulkActionMetadata {
/** Number of items that were successfully processed. */
totalSuccesses?: number;
/** Number of items that couldn't be processed. */
totalFailures?: number;
/** Number of failures without details because detailed failure threshold was exceeded. */
undetailedFailures?: number;
}
interface UpdateProductRequest {
/** Product to update. */
product: V3Product;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface UpdateProductResponse {
/** Updated product. */
product?: V3Product;
}
interface UpdateProductWithInventoryRequest {
/** Product to update. */
product: ProductWithInventory;
/**
* Whether to return the full inventory entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface UpdateProductWithInventoryResponse {
/** Updated product. */
product?: V3Product;
/** Inventories updated by bulk action. */
inventoryResults?: BulkInventoryItemResults;
}
interface BulkCreateProductsRequest {
/**
* List of products to create.
* @minSize 1
* @maxSize 100
*/
products: V3Product[];
/**
* Whether to return the full product entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface BulkCreateProductsResponse {
/**
* Products created by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: CatalogV3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: CommonBulkActionMetadata;
}
interface CatalogV3BulkProductResult {
/** Information about successful action or error for failure. */
itemMetadata?: WixCommonItemMetadata;
/**
* Full product entity.
*
* Returned only if `returnEntity: true` is passed in the request.
*/
item?: V3Product;
}
interface WixCommonItemMetadata {
/**
* Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).
* @minLength 1
* @maxLength 36
*/
id?: string | null;
/** Index of the item within the request array. Allows for correlation between request and response items. */
originalIndex?: number;
/** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
success?: boolean;
/** Details about the error in case of failure. */
error?: ApplicationError;
}
interface InvalidDigitalFileIds {
/**
* ids of digital files which caused errors.
* @maxSize 1000
* @minLength 1
* @maxLength 100
*/
ids?: string[];
}
interface BulkCreateProductsWithInventoryRequest {
/**
* List of products to create with inventory.
* @minSize 1
* @maxSize 100
*/
products: ProductWithInventory[];
/**
* Whether to return the full product entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface BulkCreateProductsWithInventoryResponse {
/** Products created by bulk action. */
productResults?: BulkProductResults;
/** Inventories created by bulk action. */
inventoryResults?: BulkInventoryItemResults;
}
interface BulkProductResults {
/**
* Products modified by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: CatalogV3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: CommonBulkActionMetadata;
}
interface BulkUpdateProductsRequest {
/**
* List of products to update.
* @minSize 1
* @maxSize 100
*/
products: V3MaskedProduct[];
/**
* Whether to return the full product entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface V3MaskedProduct {
/** Product to update. */
product?: V3Product;
}
interface BulkUpdateProductsResponse {
/**
* Products updated by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: CatalogV3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: CommonBulkActionMetadata;
}
interface BulkUpdateProductsWithInventoryRequest {
/**
* List of products to update.
* @minSize 1
* @maxSize 100
*/
products: MaskedProductWithInventory[];
/**
* Whether to return the full product entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface MaskedProductWithInventory {
/** Product to update. */
product?: ProductWithInventory;
}
interface BulkUpdateProductsWithInventoryResponse {
/** Products updated by bulk action. */
productResults?: BulkProductResults;
/** Inventories updated by bulk action. */
inventoryResults?: BulkInventoryItemResults;
}
interface V3BulkUpdateProductsByFilterRequest {
/** Filter object. */
filter?: Record | null;
/** Product to update. */
product: V3Product;
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
}
interface WixCommonSearchDetails {
/** Defines how separate search terms in `expression` are combined */
mode?: CommonSearchDetailsModeWithLiterals;
/**
* Search term or expression
* @maxLength 100
*/
expression?: string | null;
/**
* Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`.
* @maxLength 200
* @maxSize 20
*/
fields?: string[];
/** Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. */
fuzzy?: boolean;
}
declare enum CommonSearchDetailsMode {
/** Any of the search terms must be present */
OR = "OR",
/** All search terms must be present */
AND = "AND"
}
/** @enumType */
type CommonSearchDetailsModeWithLiterals = CommonSearchDetailsMode | 'OR' | 'AND';
interface V3BulkUpdateProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface V3DeleteProductRequest {
/**
* Product ID.
* @minLength 1
* @maxLength 36
*/
productId: string;
}
interface V3DeleteProductResponse {
}
interface V3BulkDeleteProductsRequest {
/**
* IDs of products to delete.
* @minLength 1
* @maxLength 36
* @minSize 1
* @maxSize 100
*/
productIds: string[];
}
interface V3BulkDeleteProductsResponse {
/**
* Products deleted by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: BulkDeleteProductsResponseBulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: CommonBulkActionMetadata;
}
interface BulkDeleteProductsResponseBulkProductResult {
/** Bulk action metadata for products. */
itemMetadata?: WixCommonItemMetadata;
}
interface V3BulkDeleteProductsByFilterRequest {
/** Filter object. */
filter: Record | null;
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
}
interface V3BulkDeleteProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface V3GetProductRequest {
/**
* Product ID.
* @minLength 1
* @maxLength 36
*/
productId: string;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface V3GetProductResponse {
/** Product. */
product?: V3Product;
}
interface V3GetProductBySlugRequest {
/**
* Product slug.
* @minLength 1
* @maxLength 100
*/
slug: string;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: SingleEntityOpsRequestedFieldsWithLiterals[];
}
interface V3GetProductBySlugResponse {
/** Product. */
product?: V3Product;
}
interface V3SearchProductsRequest {
/** Search options. */
search?: CommonCursorSearch;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface CommonCursorSearch extends CommonCursorSearchPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CommonCursorPaging;
/**
* Filter object.
*
* Learn more about [filtering](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).
*/
filter?: Record | null;
/**
* Sort object.
*
* Learn more about [sorting](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting).
* @maxSize 10
*/
sort?: WixCommonSorting[];
/**
* Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories.
* @maxSize 10
*/
aggregations?: WixCommonAggregation[];
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
/**
* Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.
* Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, "2023-12-20T10:52:34.795Z".
* @maxLength 50
*/
timeZone?: string | null;
}
/** @oneof */
interface CommonCursorSearchPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CommonCursorPaging;
}
interface WixCommonSorting {
/**
* Name of the field to sort by.
* @maxLength 512
*/
fieldName?: string;
/** Sort order. */
order?: WixCommonSortOrderWithLiterals;
/**
* When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by
* a specific element from a collection, filter can/should be provided to ensure correct sort value is picked.
*
* If multiple filters are provided, they are combined with AND operator.
*
* Example:
* Given we have document like {"id": "1", "nestedField": [{"price": 10, "region": "EU"}, {"price": 20, "region": "US"}]}
* and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be
* { fieldName: "nestedField.price", "select_items_by": [{"nestedField.region": "US"}] }
* @maxSize 10
*/
selectItemsBy?: Record[] | null;
}
declare enum WixCommonSortOrder {
ASC = "ASC",
DESC = "DESC"
}
/** @enumType */
type WixCommonSortOrderWithLiterals = WixCommonSortOrder | 'ASC' | 'DESC';
interface WixCommonAggregation extends WixCommonAggregationKindOneOf {
/** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */
value?: CommonAggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */
range?: CommonAggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: CommonAggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */
dateHistogram?: CommonAggregationDateHistogramAggregation;
/** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */
nested?: CommonAggregationNestedAggregation;
/**
* Aggregation name, returned in `aggregations.results.name`.
* @maxLength 100
*/
name?: string | null;
/** Type of aggregation to perform. Must align with the corresponding aggregation field. */
type?: WixCommonAggregationTypeWithLiterals;
/**
* Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface WixCommonAggregationKindOneOf {
/** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */
value?: CommonAggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */
range?: CommonAggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: CommonAggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */
dateHistogram?: CommonAggregationDateHistogramAggregation;
/** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */
nested?: CommonAggregationNestedAggregation;
}
interface AggregationRangeAggregationRangeBucket {
/** Inclusive lower bound of the range. Required if `to` is not provided. */
from?: number | null;
/** Exclusive upper bound of the range. Required if `from` is not provided. */
to?: number | null;
}
declare enum AggregationValueAggregationSortType {
/** Number of matches in the results. */
COUNT = "COUNT",
/** Alphabetically by the field value. */
VALUE = "VALUE"
}
/** @enumType */
type AggregationValueAggregationSortTypeWithLiterals = AggregationValueAggregationSortType | 'COUNT' | 'VALUE';
declare enum AggregationValueAggregationSortDirection {
/** Descending order. */
DESC = "DESC",
/** Ascending order. */
ASC = "ASC"
}
/** @enumType */
type AggregationValueAggregationSortDirectionWithLiterals = AggregationValueAggregationSortDirection | 'DESC' | 'ASC';
declare enum AggregationValueAggregationMissingValues {
/** Exclude missing values from the aggregation results. */
EXCLUDE = "EXCLUDE",
/** Include missing values in the aggregation results. */
INCLUDE = "INCLUDE"
}
/** @enumType */
type AggregationValueAggregationMissingValuesWithLiterals = AggregationValueAggregationMissingValues | 'EXCLUDE' | 'INCLUDE';
interface AggregationValueAggregationIncludeMissingValuesOptions {
/**
* Specify a custom name for the bucket containing the missing values. Defaults are `"N/A"` for strings, `0` for integers, and `false` for booleans.
* @maxLength 20
*/
addToBucket?: string;
}
declare enum WixCommonScalarType {
/** Total number of distinct values. */
COUNT_DISTINCT = "COUNT_DISTINCT",
/** Minimum value. */
MIN = "MIN",
/** Maximum value. */
MAX = "MAX"
}
/** @enumType */
type WixCommonScalarTypeWithLiterals = WixCommonScalarType | 'COUNT_DISTINCT' | 'MIN' | 'MAX';
interface CommonAggregationValueAggregation extends CommonAggregationValueAggregationOptionsOneOf {
/** Options for including missing values in results. */
includeOptions?: AggregationValueAggregationIncludeMissingValuesOptions;
/** Sort type. */
sortType?: AggregationValueAggregationSortTypeWithLiterals;
/** Sort direction. */
sortDirection?: AggregationValueAggregationSortDirectionWithLiterals;
/**
* Number of aggregation results to return.
* Min: `1`
* Max: `250`
* Default: `10`
*/
limit?: number | null;
/**
* Whether to include or exclude missing values in the aggregation results.
* Default: `EXCLUDE`.
*/
missingValues?: AggregationValueAggregationMissingValuesWithLiterals;
}
/** @oneof */
interface CommonAggregationValueAggregationOptionsOneOf {
/** Options for including missing values in results. */
includeOptions?: AggregationValueAggregationIncludeMissingValuesOptions;
}
declare enum AggregationNestedAggregationNestedAggregationType {
/** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */
VALUE = "VALUE",
/** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */
RANGE = "RANGE",
/** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
SCALAR = "SCALAR",
/** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */
DATE_HISTOGRAM = "DATE_HISTOGRAM"
}
/** @enumType */
type AggregationNestedAggregationNestedAggregationTypeWithLiterals = AggregationNestedAggregationNestedAggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM';
interface CommonAggregationRangeAggregation {
/**
* List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.
* @maxSize 50
*/
buckets?: AggregationRangeAggregationRangeBucket[];
}
interface CommonAggregationScalarAggregation {
/** Operator type for the scalar aggregation. */
type?: WixCommonScalarTypeWithLiterals;
}
interface CommonAggregationDateHistogramAggregation {
/** Interval for date histogram aggregation. */
interval?: AggregationDateHistogramAggregationIntervalWithLiterals;
}
declare enum AggregationDateHistogramAggregationInterval {
/** Yearly interval */
YEAR = "YEAR",
/** Monthly interval */
MONTH = "MONTH",
/** Weekly interval */
WEEK = "WEEK",
/** Daily interval */
DAY = "DAY",
/** Hourly interval */
HOUR = "HOUR",
/** Minute interval */
MINUTE = "MINUTE",
/** Second interval */
SECOND = "SECOND"
}
/** @enumType */
type AggregationDateHistogramAggregationIntervalWithLiterals = AggregationDateHistogramAggregationInterval | 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND';
interface AggregationNestedAggregationNestedAggregationItem extends AggregationNestedAggregationNestedAggregationItemKindOneOf {
/** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */
value?: CommonAggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
range?: CommonAggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: CommonAggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
dateHistogram?: CommonAggregationDateHistogramAggregation;
/**
* Unique, caller-defined aggregation name, returned in `aggregations.results`.
* @maxLength 100
*/
name?: string | null;
/** Type of aggregation to perform. The matching aggregation field must be passed. */
type?: AggregationNestedAggregationNestedAggregationTypeWithLiterals;
/**
* Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface AggregationNestedAggregationNestedAggregationItemKindOneOf {
/** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */
value?: CommonAggregationValueAggregation;
/** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
range?: CommonAggregationRangeAggregation;
/** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
scalar?: CommonAggregationScalarAggregation;
/** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */
dateHistogram?: CommonAggregationDateHistogramAggregation;
}
declare enum WixCommonAggregationType {
/** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */
VALUE = "VALUE",
/** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */
RANGE = "RANGE",
/** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
SCALAR = "SCALAR",
/** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */
DATE_HISTOGRAM = "DATE_HISTOGRAM",
/** Flattened list of aggregations, where each aggregation is nested within previous one. */
NESTED = "NESTED"
}
/** @enumType */
type WixCommonAggregationTypeWithLiterals = WixCommonAggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM' | 'NESTED';
/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */
interface CommonAggregationNestedAggregation {
/**
* Flattened list of aggregations, where each next aggregation is nested within previous one.
* @minSize 2
* @maxSize 3
*/
nestedAggregations?: AggregationNestedAggregationNestedAggregationItem[];
}
interface CommonCursorPaging {
/**
* Maximum number of items to return in the results.
* @max 100
*/
limit?: number | null;
/**
* Pointer to the next or previous page in the list of results.
*
* Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
* Not relevant for the first request.
* @maxLength 16000
*/
cursor?: string | null;
}
interface V3SearchProductsResponse {
/** List of products. */
products?: V3Product[];
/** Paging metadata. */
pagingMetadata?: CommonCursorPagingMetadata;
/** Aggregation data. */
aggregationData?: CommonAggregationData;
}
interface CommonCursorPagingMetadata {
/** Number of items returned in the response. */
count?: number | null;
/** Cursor strings that point to the next page, previous page, or both. */
cursors?: CommonCursors;
/**
* Whether there are more pages to retrieve following the current page.
*
* + `true`: Another page of results can be retrieved.
* + `false`: This is the last page.
*/
hasNext?: boolean | null;
}
interface CommonCursors {
/**
* Cursor string pointing to the next page in the list of results.
* @maxLength 16000
*/
next?: string | null;
/**
* Cursor pointing to the previous page in the list of results.
* @maxLength 16000
*/
prev?: string | null;
}
interface CommonAggregationData {
/**
* List of the aggregated data results.
* @maxSize 10000
*/
results?: AggregationDataAggregationResults[];
}
interface ValueResultsValueAggregationResult {
/**
* Value of the field.
* @maxLength 100
*/
value?: string;
/** Number of entities with this value. */
count?: number;
}
interface RangeResultsRangeAggregationResult {
/** Inclusive lower bound of the range. */
from?: number | null;
/** Exclusive upper bound of the range. */
to?: number | null;
/** Total number of entities in this range. */
count?: number;
}
interface AggregationResultsNestedAggregationResults extends AggregationResultsNestedAggregationResultsResultOneOf {
/** Value aggregation results. */
values?: AggregationResultsValueResults;
/** Range aggregation results. */
ranges?: AggregationResultsRangeResults;
/** Scalar aggregation results. */
scalar?: AggregationDataAggregationResultsScalarResult;
/**
* Unique, caller-defined aggregation name, identifiable by the requested aggregation `name`.
* @maxLength 100
*/
name?: string;
/** Aggregation type. */
type?: WixCommonAggregationTypeWithLiterals;
/**
* Field which the data was aggregated by.
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface AggregationResultsNestedAggregationResultsResultOneOf {
/** Value aggregation results. */
values?: AggregationResultsValueResults;
/** Range aggregation results. */
ranges?: AggregationResultsRangeResults;
/** Scalar aggregation results. */
scalar?: AggregationDataAggregationResultsScalarResult;
}
interface AggregationResultsValueResults {
/**
* List of value aggregations.
* @maxSize 250
*/
results?: ValueResultsValueAggregationResult[];
}
interface AggregationResultsRangeResults {
/**
* List of ranges returned in same order as requested.
* @maxSize 50
*/
results?: RangeResultsRangeAggregationResult[];
}
interface AggregationDataAggregationResultsScalarResult {
/** Type of scalar aggregation. */
type?: WixCommonScalarTypeWithLiterals;
/** Value of the scalar aggregation. */
value?: number;
}
interface GroupByValueResultsNestedValueAggregationResult {
/**
* Value of the field.
* @maxLength 1000
*/
value?: string;
/** Nested aggregations. */
nestedResults?: AggregationResultsNestedAggregationResults;
}
interface NestedResultsValueResult {
/**
* Value of the field
* @maxLength 1000
*/
value?: string;
/** Number of entities with this value. */
count?: number | null;
}
interface NestedResultsRangeResult {
/** Inclusive lower bound of the range. */
from?: number | null;
/** Exclusive upper bound of the range. */
to?: number | null;
/** Number of entities in this range. */
count?: number | null;
}
interface NestedResultsScalarResult {
/** Value of the scalar aggregation. */
value?: number;
}
interface NestedResultsNestedResultValue extends NestedResultsNestedResultValueResultOneOf {
/** Value aggregation result. */
value?: NestedResultsValueResult;
/** Range aggregation result. */
range?: NestedResultsRangeResult;
/** Scalar aggregation result. */
scalar?: NestedResultsScalarResult;
/** Date histogram aggregation result. */
dateHistogram?: NestedResultsValueResult;
}
/** @oneof */
interface NestedResultsNestedResultValueResultOneOf {
/** Value aggregation result. */
value?: NestedResultsValueResult;
/** Range aggregation result. */
range?: NestedResultsRangeResult;
/** Scalar aggregation result. */
scalar?: NestedResultsScalarResult;
/** Date histogram aggregation result. */
dateHistogram?: NestedResultsValueResult;
}
interface NestedResultsResults {
/** List of nested aggregations. */
results?: Record;
}
interface DateHistogramResultsDateHistogramResult {
/**
* Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
* @maxLength 100
*/
value?: string;
/** Number of entities in the bucket. */
count?: number;
}
interface AggregationResultsGroupByValueResults {
/**
* List of value aggregations.
* @maxSize 1000
*/
results?: GroupByValueResultsNestedValueAggregationResult[];
}
interface AggregationResultsDateHistogramResults {
/**
* List of date histogram aggregations.
* @maxSize 200
*/
results?: DateHistogramResultsDateHistogramResult[];
}
/** Results of `NESTED` aggregation type in a flattened array, identifiable by the requested aggregation `name`. */
interface AggregationResultsNestedResults {
/**
* List of nested aggregations.
* @maxSize 1000
*/
results?: NestedResultsResults[];
}
interface AggregationDataAggregationResults extends AggregationDataAggregationResultsResultOneOf {
/** Value aggregation results. */
values?: AggregationResultsValueResults;
/** Range aggregation results. */
ranges?: AggregationResultsRangeResults;
/** Scalar aggregation results. */
scalar?: AggregationDataAggregationResultsScalarResult;
/** Group by value aggregation results. */
groupedByValue?: AggregationResultsGroupByValueResults;
/** Date histogram aggregation results. */
dateHistogram?: AggregationResultsDateHistogramResults;
/** Nested aggregation results. */
nested?: AggregationResultsNestedResults;
/**
* Aggregation name, returned in `aggregations.results.name`.
* @maxLength 100
*/
name?: string;
/** Aggregation type. Must align with the corresponding aggregation field. */
type?: WixCommonAggregationTypeWithLiterals;
/**
* Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.
* @maxLength 200
*/
fieldPath?: string;
}
/** @oneof */
interface AggregationDataAggregationResultsResultOneOf {
/** Value aggregation results. */
values?: AggregationResultsValueResults;
/** Range aggregation results. */
ranges?: AggregationResultsRangeResults;
/** Scalar aggregation results. */
scalar?: AggregationDataAggregationResultsScalarResult;
/** Group by value aggregation results. */
groupedByValue?: AggregationResultsGroupByValueResults;
/** Date histogram aggregation results. */
dateHistogram?: AggregationResultsDateHistogramResults;
/** Nested aggregation results. */
nested?: AggregationResultsNestedResults;
}
interface V3QueryProductsRequest {
/** Query options. */
query?: CommonCursorQuery;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface CommonCursorQuery extends CommonCursorQueryPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CommonCursorPaging;
/**
* Filter object.
*
* Learn more about [filtering](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).
*/
filter?: Record | null;
/**
* Sort object.
*
* Learn more about [sorting](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting).
* @maxSize 5
*/
sort?: WixCommonSorting[];
}
/** @oneof */
interface CommonCursorQueryPagingMethodOneOf {
/**
* Cursor paging options.
*
* Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).
*/
cursorPaging?: CommonCursorPaging;
}
interface V3QueryProductsResponse {
/** List of products. */
products?: V3Product[];
/** Paging metadata. */
pagingMetadata?: CommonCursorPagingMetadata;
}
interface V3CountProductsRequest {
/** Filter object. */
filter?: Record | null;
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
/**
* Whether to return non-visible products (`visible:false`). Your app must have the 'Product v3 read admin' (`SCOPE.STORES.PRODUCT_READ_ADMIN`) permission scope.
*
* Default: `false`
*/
returnNonVisibleProducts?: boolean;
}
interface V3CountProductsResponse {
/** Total number of products. */
count?: number;
}
interface BulkUpdateProductVariantsByFilterRequest {
/** Filter object. */
filter: Record | null;
/** Variant to update. */
variant: Variant;
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
}
interface BulkUpdateProductVariantsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface V3BulkAdjustProductVariantsByFilterRequest {
/** Filter object. */
filter: Record | null;
/** Cost adjustment. */
cost?: V3AdjustValue;
/**
* Rounding strategy of new calculated prices.
*
* + `NO_ROUNDING`: Calculated prices will be saved without rounding to keep max possible precision.
* + `CURRENCY_PRECISION`: Calculated prices will be rounded according to the currency's precision requirements. For example. `$3.5555` will be saved as `$3.56`; `¥3.5555` will be saved as `¥4`.
* + `NEAREST_WHOLE_NUMBER`: Calculated prices will be rounded to the nearest whole number.
*/
rounding?: BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals;
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
/** Actual price adjustment. */
actualPrice?: V3AdjustValue;
/** Compare at price adjustment. */
compareAtPrice?: V3AdjustValue;
/**
* Set variant actualPrice from compareAtPrice by applying provided discount to it.
* if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.
* For example variant compareAtPrice 100$, variant actualPrice is 95$, requested `compareAtPriceDiscount.percentage` is 10, then old actual price ignored and new actual price set to 90 (100$ - 10%).
*/
compareAtPriceDiscount?: V3UnsignedAdjustValue;
}
interface V3AdjustValue extends V3AdjustValueAdjustValueOneOf {
/**
* A decimal value to increase or reduce from the original value, can be negative.
* @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to increase or reduce from the current value, can be negative.
* @min -100
* @max 1000
*/
percentage?: number;
}
/** @oneof */
interface V3AdjustValueAdjustValueOneOf {
/**
* A decimal value to increase or reduce from the original value, can be negative.
* @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to increase or reduce from the current value, can be negative.
* @min -100
* @max 1000
*/
percentage?: number;
}
declare enum BulkAdjustProductVariantsByFilterRequestRoundingStrategy {
/**
* Calculated prices will be saved without rounding to keep max possible precision. It's still good idea to round numbers before displaying them.
* Example: input $3.5555 -> saved value $3.5555
*/
NO_ROUNDING = "NO_ROUNDING",
/**
* Calculated prices will be rounded according to currency precision.
* Example: input $3.5555 -> saved value $3.56, input ¥3.5555 -> saved value ¥4
*/
CURRENCY_PRECISION = "CURRENCY_PRECISION",
/**
* Calculated prices will be rounded to nearest whole number.
* Example: input $3.5555 -> saved value $4
*/
NEAREST_WHOLE_NUMBER = "NEAREST_WHOLE_NUMBER"
}
/** @enumType */
type BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals = BulkAdjustProductVariantsByFilterRequestRoundingStrategy | 'NO_ROUNDING' | 'CURRENCY_PRECISION' | 'NEAREST_WHOLE_NUMBER';
interface V3UnsignedAdjustValue extends V3UnsignedAdjustValueAdjustValueOneOf {
/**
* A decimal value to reduce from the original value.
* @decimalValue options { gte:0, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to reduce from the original value.
* @max 100
*/
percentage?: number;
}
/** @oneof */
interface V3UnsignedAdjustValueAdjustValueOneOf {
/**
* A decimal value to reduce from the original value.
* @decimalValue options { gte:0, lte:999999999, maxScale:2 }
*/
amount?: string;
/**
* The percentage value to reduce from the original value.
* @max 100
*/
percentage?: number;
}
interface V3BulkAdjustProductVariantsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface V3BulkAddInfoSectionsToProductsByFilterRequest {
/** Filter object. */
filter: Record | null;
/**
* IDs of the info sections to add.
* @format GUID
* @minSize 1
* @maxSize 10
*/
infoSectionIds: string[];
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
}
interface V3BulkAddInfoSectionsToProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface V3BulkAddInfoSectionsToProductsRequest {
/**
* List of product IDs and revisions.
* @minSize 1
* @maxSize 100
*/
products: V3ProductIdWithRevision[];
/**
* List of IDs of info sections to add.
* @format GUID
* @minSize 1
* @maxSize 10
*/
infoSectionIds: string[];
/**
* Whether to return the full updated product entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface V3ProductIdWithRevision {
/**
* Product ID.
* @minLength 1
* @maxLength 36
*/
productId?: string;
/**
* 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.
*/
revision?: string;
}
interface V3BulkAddInfoSectionsToProductsResponse {
/**
* Products updated by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: CatalogV3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: CommonBulkActionMetadata;
}
interface V3BulkRemoveInfoSectionsFromProductsByFilterRequest {
/** Filter object. */
filter: Record | null;
/**
* IDs of info sections to remove.
* @format GUID
* @minSize 1
* @maxSize 100
*/
infoSectionIds: string[];
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
}
interface V3BulkRemoveInfoSectionsFromProductsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface V3BulkRemoveInfoSectionsFromProductsRequest {
/**
* List of product IDs and revisions.
* @minSize 1
* @maxSize 100
*/
products: V3ProductIdWithRevision[];
/**
* List of IDs of info sections to remove.
* @format GUID
* @minSize 1
* @maxSize 100
*/
infoSectionIds: string[];
/**
* Whether to return the full updated product entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
interface V3BulkRemoveInfoSectionsFromProductsResponse {
/**
* Products updated by bulk action.
* @minSize 1
* @maxSize 100
*/
results?: CatalogV3BulkProductResult[];
/** Bulk action metadata. */
bulkActionMetadata?: CommonBulkActionMetadata;
}
interface BulkCreateProductsWithInventoryForMigrationRequest {
/**
* List of products to create with inventory.
* @minSize 1
* @maxSize 100
*/
products?: ProductWithInventoryForMigration[];
/**
* Whether to return the full product entities in the response.
*
* Default: `false`
*/
returnEntity?: boolean;
/**
* Fields to include in the response.
* @maxSize 100
*/
fields?: RequestedFieldsWithLiterals[];
}
/** This entity is required since ProductWithInventory doesn't have createdDate, updatedDate and we would rather not break external mappers for an addition of a migration field. */
interface ProductWithInventoryForMigration extends ProductWithInventoryForMigrationTypedPropertiesOneOf {
/**
* Physical properties.
*
* Required when `productType: PHYSICAL`.
*/
physicalProperties?: PhysicalProperties;
/**
* Product ID.
* @minLength 1
* @maxLength 36
* @immutable
* @readonly
*/
id?: string | null;
/**
* 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 with inventory.
* @readonly
*/
revision?: string | null;
/** Date and time the product was created - used only for migration. */
createdDate?: Date | null;
/** Date and time the product was updated - used only for migration. */
updatedDate?: Date | null;
/**
* Product name.
* @minLength 1
* @maxLength 80
*/
name?: string | null;
/**
* Product slug.
*
* If not provided, the slug is autogenerated based on the product name.
* @minLength 1
* @maxLength 300
*/
slug?: string | null;
/**
* Product 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 `"PLAIN_DESCRIPTION"` to the `fields` array in Products API requests.
* @maxLength 16000
*/
plainDescription?: string | null;
/**
* Whether the product is visible to site visitors on the site.
*
* Default: `true`
*/
visible?: boolean | null;
/**
* Whether the product is visible in POS (point of sale).
*
* Default: `true`
* > **Note:** Always `false` for `productType: DIGITAL`.
*/
visibleInPos?: boolean | null;
/** Product media items. */
media?: Media;
/** Product SEO data. */
seoData?: SeoSchema;
/**
* Tax group ID.
* @format GUID
*/
taxGroupId?: string | null;
/**
* Product options. Allows buyer to customize product, e.g. select Color, Size and so on.
* Always generates variants: every variant must have exactly one choice related to each option.
* Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.
* For existing options and choices provide ids only, all other data (e.g. names, title, types and so on) will be resolved for you by ids.
* If you don't have ids it's ok to omit them but provide all other data instead. For existing options ids will be resolved, not existing options will be created.
* *None*: you cannot change name of existing option via this endpoint but you can do it by calling CustomizationService
* @maxSize 6
*/
options?: ConnectedOption[];
/**
* Product Modifiers. Allows buyer to customize product, e.g. select Color, Size and so on similarly to `options` but with one main difference - `modifiers` never generate any variants.
* For existing modifiers and choices provide ids only, all other data (e.g. names, title, types and so on) will be resolved for you by ids.
* If you don't have ids it's ok to omit them but provide all other data instead. For existing modifiers ids will be resolved, not existing modifiers will be created.
* *None*: you cannot change name of existing modifier via this endpoint by passing id and changed name, if you pass id name will be ignored. If you want to update existing modifier name do it by calling CustomizationService
* @maxSize 10
*/
modifiers?: ConnectedModifier[];
/**
* Product brand.
*
* + Pass `brand.name` to add a new brand while creating a product.
* + Pass an existing brand's `id` to assign that brand to the product.
*/
brand?: V3Brand;
/**
* Product info section.
*
* + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.
* + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.
* @maxSize 10
*/
infoSections?: InfoSection[];
/**
* Product ribbon.
*
* + Pass `ribbon.name` to add a new ribbon while creating a product.
* + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.
*/
ribbon?: Ribbon;
/**
* Main category ID.
* @format GUID
*/
mainCategoryId?: string | null;
/**
* Product type.
*
* When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.
* @immutable
*/
productType?: ProductTypeWithLiterals;
/**
* A unique human-friendly identifier for the product.
* Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.
* In case handle wasn't given, the handle will be automatically generated.
* @minLength 1
* @maxLength 100
* @readonly
*/
handle?: string | null;
/** Product variants with migration timestamps. */
variantsInfo?: VariantsInfoForMigration;
/** Subscription details. */
subscriptionDetails?: SubscriptionDetails;
/**
* 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) must be configured in the [app dashboard](https://dev.wix.com/dc3/my-apps/) before they can be accessed with API calls.
*/
extendedFields?: ExtendedFields;
/** Tags */
tags?: Tags;
}
/** @oneof */
interface ProductWithInventoryForMigrationTypedPropertiesOneOf {
/**
* Physical properties.
*
* Required when `productType: PHYSICAL`.
*/
physicalProperties?: PhysicalProperties;
}
/** Variants info container for migration with timestamp support. */
interface VariantsInfoForMigration {
/**
* List of related variants with migration timestamps.
* Partial update of variants is not supported so on update you must pass all data for all of them.
* If you want to update existing variant you must provide `id`, otherwise new variant with different id will be created which might break some integrations that rely on variant ids.
* @minSize 1
* @maxSize 1000
*/
variants?: VariantWithInventoryForMigration[];
}
/**
* This entity is required for migration to preserve inventory dates
* from the legacy catalog v1 system without breaking external mappers.
*/
interface VariantWithInventoryForMigration extends VariantWithInventoryForMigrationTypedPropertiesOneOf {
/** Physical properties. Must be passed when `productType: PHYSICAL` */
physicalProperties?: VariantPhysicalProperties;
/** Digital properties. Must be passed when `productType: DIGITAL` */
digitalProperties?: VariantDigitalProperties;
/**
* Variant ID.
* @format GUID
* @immutable
*/
id?: string | null;
/**
* Whether the variant is visible to site visitors.
*
* Default: `true`
*/
visible?: boolean | null;
/**
* Variant SKU (stock keeping unit).
* @minLength 1
* @maxLength 40
*/
sku?: string | null;
/**
* Variant barcode.
* @minLength 1
* @maxLength 40
*/
barcode?: string | null;
/** Variant price. */
price?: PriceInfo;
/**
* 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.
*/
revenueDetails?: RevenueDetails;
/**
* Inventory item of the variant on the default location.
* Uses InventoryItemCompositeForMigration to include created_date and updated_date for migration.
*/
inventoryItem?: InventoryItemCompositeForMigration;
/**
* List of choices.
* Uses OptionChoiceReferencesForMigration which allows choice_id to be empty (V1 doesn't have choice IDs).
* @maxSize 6
* @immutable
*/
choices?: OptionChoiceReferencesForMigration[];
}
/** @oneof */
interface VariantWithInventoryForMigrationTypedPropertiesOneOf {
/** Physical properties. Must be passed when `productType: PHYSICAL` */
physicalProperties?: VariantPhysicalProperties;
/** Digital properties. Must be passed when `productType: DIGITAL` */
digitalProperties?: VariantDigitalProperties;
}
/**
* Inventory item composite for migration with date preservation.
* Contains all InventoryItemComposite fields plus created_date and updated_date
* for preserving legacy inventory timestamps during catalog v1 to v3 migration.
*/
interface InventoryItemCompositeForMigration extends InventoryItemCompositeForMigrationTrackingMethodOneOf {
/**
* Tracking method - in stock.
*
* When set to `true`, the item is available for sale without a quantity limit.
*/
inStock?: boolean;
/**
* Tracking method - quantity left in inventory.
*
* Quantity can be negative when decrementing inventory for an order that has already been paid.
* @min -99999
* @max 99999
*/
quantity?: number;
/**
* Inventory item ID.
* If you want to update existing inventory item you must provide id,
* otherwise new inventory item with different id will be created.
* @format GUID
* @readonly
*/
id?: string | null;
/**
* Inventory item revision.
* @readonly
*/
revision?: string | null;
/** Date and time the inventory item was created - used only for migration. */
createdDate?: Date | null;
/** Date and time the inventory item was updated - used only for migration. */
updatedDate?: Date | null;
/** Item preorder info. */
preorderInfo?: PreorderInfo;
}
/** @oneof */
interface InventoryItemCompositeForMigrationTrackingMethodOneOf {
/**
* Tracking method - in stock.
*
* When set to `true`, the item is available for sale without a quantity limit.
*/
inStock?: boolean;
/**
* Tracking method - quantity left in inventory.
*
* Quantity can be negative when decrementing inventory for an order that has already been paid.
* @min -99999
* @max 99999
*/
quantity?: number;
}
/**
* Migration-specific version of OptionChoiceReferences.
* For migration, only option_choice_names is used - the Product Service resolves
* option and choice IDs from product.options by matching names.
*/
interface OptionChoiceReferencesForMigration {
/**
* Option and choice IDs - not used in migration flow (kept for backward compatibility).
* Product Service resolves IDs from product.options by name matching.
*/
optionChoiceIds?: OptionChoiceIdsForMigration;
/** Option and choice names - required for migration. Product Service uses these to resolve IDs. */
optionChoiceNames?: V3OptionChoiceNames;
}
/**
* Migration-specific version of OptionChoiceIds.
* Not used in migration flow - Product Service resolves IDs from product.options by name.
* Kept for backward compatibility.
*/
interface OptionChoiceIdsForMigration {
/**
* Option ID.
* @minLength 1
* @maxLength 36
* @immutable
*/
optionId?: string;
/** Choice ID. */
choiceId?: string;
}
interface BulkCreateProductsWithInventoryForMigrationResponse {
/** Products created by bulk action. */
productResults?: BulkProductResults;
/** Inventories created by bulk action. */
inventoryResults?: BulkInventoryItemResults;
}
interface BulkAddProductsToCategoriesByFilterRequest {
/** Filter object. */
filter?: Record | null;
/**
* IDs of the categories to which products will be added.
* @format GUID
* @minSize 1
* @maxSize 5
*/
categoryIds: string[];
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
}
interface BulkAddProductsToCategoriesByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface BulkRemoveProductsFromCategoriesByFilterRequest {
/** Filter object. */
filter?: Record | null;
/**
* IDs of the categories from which products will be removed.
* @format GUID
* @minSize 1
* @maxSize 5
*/
categoryIds: string[];
/** Free text to match in searchable fields. */
search?: WixCommonSearchDetails;
}
interface BulkRemoveProductsFromCategoriesByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata..
* @format GUID
*/
jobId?: string;
}
interface GetAllProductsCategoryRequest {
}
interface GetAllProductsCategoryResponse {
/**
* ID of the "All Products" category automatically assigned to all products.
* @format GUID
*/
categoryId?: string;
/** Category tree reference. For Wix Stores, `appNamespace` is `"@wix/stores"` and `treeKey` is `null`. */
treeReference?: TreeReference;
}
interface TreeReference {
/**
* Namespace of the app whose catalog this category tree belongs to.
*
* Currently, only `"@wix/stores"` is supported.
* @minLength 4
* @maxLength 150
*/
appNamespace?: string;
/**
* Key to differentiate between multiple trees managed by the same app.
*
* For Wix Stores, pass `null` or omit this field, as each store has only one category tree.
* @minLength 1
* @maxLength 44
*/
treeKey?: string | null;
}
interface V3BulkUpdateProductTagsRequest {
/**
* List of product IDs whose tags will be updated.
* @minSize 1
* @maxSize 100
* @format GUID
*/
productIds: string[];
/** List of tags to assign. */
assignTags?: Tags;
/** List of tags to unassign. */
unassignTags?: Tags;
}
interface V3BulkUpdateProductTagsResponse {
/**
* Results.
* @minSize 1
* @maxSize 100
*/
results?: BulkUpdateProductTagsResponseBulkUpdateProductTagsResult[];
/** Aggregated success/failure counts. */
bulkActionMetadata?: CommonBulkActionMetadata;
}
interface BulkUpdateProductTagsResponseBulkUpdateProductTagsResult {
/** Metadata regarding the specific single update operation. */
itemMetadata?: WixCommonItemMetadata;
}
interface V3BulkUpdateProductTagsByFilterRequest {
/** Filter object. Pass an empty object `{}` to target all products. */
filter: Record | null;
/** List of tags to assign. */
assignTags?: Tags;
/** List of tags to unassign. */
unassignTags?: Tags;
}
interface V3BulkUpdateProductTagsByFilterResponse {
/**
* Job ID.
*
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata.
* @format GUID
*/
jobId?: string;
}
/** @docsIgnore */
type CreateProductApplicationErrors = {
code?: 'MISSING_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_PRODUCT_OPTIONS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_DEFAULT_VARIANT';
description?: string;
data?: Record;
} | {
code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';
description?: string;
data?: VariantsNotAlignedWithProduct;
} | {
code?: 'DUPLICATE_SLUG_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';
description?: string;
data?: Record;
} | {
code?: 'BARCODE_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_BARCODE_ERROR';
description?: string;
data?: Record;
} | {
code?: 'SKU_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'VARIANT_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';
description?: string;
data?: Record;
} | {
code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';
description?: string;
data?: Record;
} | {
code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';
description?: string;
data?: Record;
} | {
code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'PRODUCTS_LIMIT_EXCEEDED';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_MEDIA_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'ONLY_SPACES_STRING_ERROR';
description?: string;
data?: Record;
} | {
code?: 'BRAND_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'INFO_SECTION_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATIONS_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'TOO_MANY_OPTIONS_IN_REQUEST';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
};
/** @docsIgnore */
type CreateProductValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
} | {
ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';
} | {
ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';
} | {
ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';
} | {
ruleName?: 'DUPLICATE_MEDIA_ERROR';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
};
/** @docsIgnore */
type CreateProductWithInventoryApplicationErrors = {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATIONS_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type CreateProductWithInventoryValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
};
/** @docsIgnore */
type UpdateProductApplicationErrors = {
code?: 'MISSING_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_PRODUCT_OPTIONS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_DEFAULT_VARIANT';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';
description?: string;
data?: UnsupportedFieldMasks;
} | {
code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';
description?: string;
data?: VariantsNotAlignedWithProduct;
} | {
code?: 'DUPLICATE_SLUG_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';
description?: string;
data?: Record;
} | {
code?: 'BARCODE_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_BARCODE_ERROR';
description?: string;
data?: Record;
} | {
code?: 'SKU_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'VARIANT_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';
description?: string;
data?: Record;
} | {
code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';
description?: string;
data?: Record;
} | {
code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';
description?: string;
data?: Record;
} | {
code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'PREORDER_VALIDATION_ERROR';
description?: string;
data?: Record;
} | {
code?: 'BRAND_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_ERROR_OCCURRED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type UpdateProductValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
} | {
ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';
} | {
ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';
} | {
ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';
} | {
ruleName?: 'DUPLICATE_MEDIA_ERROR';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
};
/** @docsIgnore */
type UpdateProductWithInventoryApplicationErrors = {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_ERROR_OCCURRED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_RESTRICTION_ERROR';
description?: string;
data?: Record;
} | {
code?: 'PREORDER_VALIDATION_ERROR';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type UpdateProductWithInventoryValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkCreateProductsApplicationErrors = {
code?: 'MISSING_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_PRODUCT_OPTIONS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_DEFAULT_VARIANT';
description?: string;
data?: Record;
} | {
code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';
description?: string;
data?: VariantsNotAlignedWithProduct;
} | {
code?: 'DUPLICATE_SLUG_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';
description?: string;
data?: InvalidDigitalFileIds;
} | {
code?: 'BARCODE_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_BARCODE_ERROR';
description?: string;
data?: Record;
} | {
code?: 'SKU_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'VARIANT_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';
description?: string;
data?: Record;
} | {
code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';
description?: string;
data?: Record;
} | {
code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';
description?: string;
data?: Record;
} | {
code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'PRODUCTS_LIMIT_EXCEEDED';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_MEDIA_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'ONLY_SPACES_STRING_ERROR';
description?: string;
data?: Record;
} | {
code?: 'BRAND_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATIONS_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'TOO_MANY_OPTIONS_IN_REQUEST';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type BulkCreateProductsValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';
} | {
ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';
} | {
ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';
} | {
ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';
} | {
ruleName?: 'DUPLICATE_MEDIA_ERROR';
} | {
ruleName?: 'ID_NOT_ALLOWED_IN_REQUEST';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkCreateProductsWithInventoryApplicationErrors = {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATIONS_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';
description?: string;
data?: Record;
} | {
code?: 'TOO_MANY_OPTIONS_IN_REQUEST';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type BulkCreateProductsWithInventoryValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'ID_NOT_ALLOWED_IN_REQUEST';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkUpdateProductsApplicationErrors = {
code?: 'TOO_MANY_VARIANTS';
description?: string;
data?: Record;
} | {
code?: 'MISSING_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_PRODUCT_OPTIONS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_DEFAULT_VARIANT';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';
description?: string;
data?: UnsupportedFieldMasks;
} | {
code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';
description?: string;
data?: VariantsNotAlignedWithProduct;
} | {
code?: 'DUPLICATE_SLUG_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';
description?: string;
data?: Record;
} | {
code?: 'BARCODE_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_BARCODE_ERROR';
description?: string;
data?: Record;
} | {
code?: 'SKU_ALREADY_EXIST_ERROR';
description?: string;
data?: Record;
} | {
code?: 'VARIANT_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';
description?: string;
data?: Record;
} | {
code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';
description?: string;
data?: Record;
} | {
code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';
description?: string;
data?: Record;
} | {
code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'PREORDER_VALIDATION_ERROR';
description?: string;
data?: Record;
} | {
code?: 'BRAND_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_ERROR_OCCURRED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'TOO_MANY_OPTIONS_IN_REQUEST';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type BulkUpdateProductsValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';
} | {
ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';
} | {
ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';
} | {
ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';
} | {
ruleName?: 'DUPLICATE_MEDIA_ERROR';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkUpdateProductsWithInventoryApplicationErrors = {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_ERROR_OCCURRED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'PRODUCT_RESTRICTION_ERROR';
description?: string;
data?: Record;
} | {
code?: 'PREORDER_VALIDATION_ERROR';
description?: string;
data?: Record;
} | {
code?: 'TOO_MANY_OPTIONS_IN_REQUEST';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';
description?: string;
data?: Record;
} | {
code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type BulkUpdateProductsWithInventoryValidationErrors = {
ruleName?: 'INVALID_SLUG_FORMAT';
} | {
ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';
} | {
ruleName?: 'BRAND_MISSING_ID';
} | {
ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';
} | {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkUpdateProductsByFilterApplicationErrors = {
code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';
description?: string;
data?: UnsupportedFieldMasks;
} | {
code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';
description?: string;
data?: Record;
} | {
code?: 'VARIANT_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';
description?: string;
data?: Record;
} | {
code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';
description?: string;
data?: Record;
} | {
code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'BRAND_CREATION_FAILED';
description?: string;
data?: Record;
} | {
code?: 'RIBBON_NOT_FOUND';
description?: string;
data?: Record;
} | {
code?: 'INFO_SECTION_ERROR_OCCURRED';
description?: string;
data?: Record;
} | {
code?: 'CUSTOMIZATION_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';
description?: string;
data?: Record;
} | {
code?: 'CHOICE_NOT_EXIST';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';
description?: string;
data?: Record;
} | {
code?: 'DUPLICATE_RIBBON_IN_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
} | {
code?: 'DUPLICATE_RIBBON_IN_PRIMARY_AND_ADDITIONAL';
description?: string;
data?: DuplicateRibbonErrorData;
};
/** @docsIgnore */
type BulkUpdateProductsByFilterValidationErrors = {
ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';
} | {
ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';
} | {
ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';
} | {
ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkDeleteProductsValidationErrors = {
ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';
};
/** @docsIgnore */
type GetProductApplicationErrors = {
code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';
description?: string;
data?: Record;
} | {
code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';
description?: string;
data?: Record;
};
/** @docsIgnore */
type GetProductBySlugApplicationErrors = {
code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';
description?: string;
data?: Record;
} | {
code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';
description?: string;
data?: Record;
};
/** @docsIgnore */
type SearchProductsApplicationErrors = {
code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';
description?: string;
data?: Record;
} | {
code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';
description?: string;
data?: Record;
};
/** @docsIgnore */
type QueryProductsApplicationErrors = {
code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';
description?: string;
data?: Record;
} | {
code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';
description?: string;
data?: Record;
};
/** @docsIgnore */
type CountProductsApplicationErrors = {
code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';
description?: string;
data?: Record;
} | {
code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';
description?: string;
data?: Record;
};
/** @docsIgnore */
type BulkUpdateProductVariantsByFilterApplicationErrors = {
code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';
description?: string;
data?: UnsupportedFieldMasks;
} | {
code?: 'VARIANT_ID_ALREADY_EXISTS';
description?: string;
data?: Record;
} | {
code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';
description?: string;
data?: Record;
};
/** @docsIgnore */
type BulkUpdateProductVariantsByFilterValidationErrors = {
ruleName?: 'EMPTY_FIELD_MASK';
} | {
ruleName?: 'CANNOT_REMOVE_VARIANT_ACTUAL_PRICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkAdjustProductVariantsByFilterApplicationErrors = {
code?: 'ADJUSTED_ACTUAL_PRICE_OUT_OF_RANGE';
description?: string;
data?: Record;
} | {
code?: 'ADJUSTED_COMPARE_AT_PRICE_OUT_OF_RANGE';
description?: string;
data?: Record;
} | {
code?: 'ADJUSTED_COST_OUT_OF_RANGE';
description?: string;
data?: Record;
} | {
code?: 'CANNOT_ADJUST_PRICE_RESTRICTED_VARIANT';
description?: string;
data?: Record;
};
/** @docsIgnore */
type BulkAdjustProductVariantsByFilterValidationErrors = {
ruleName?: 'NO_VARIANT_ADJUSTMENTS_PASSED';
} | {
ruleName?: 'INVALID_PRICES_ADJUSTMENTS';
} | {
ruleName?: 'MISSING_VARIANT_OPTION_CHOICE';
} | {
ruleName?: 'MISSING_VARIANT_OPTION';
};
/** @docsIgnore */
type BulkAddInfoSectionsToProductsByFilterApplicationErrors = {
code?: 'TOO_MANY_INFO_SECTIONS_ERROR';
description?: string;
data?: Record;
};
/** @docsIgnore */
type BulkAddInfoSectionsToProductsApplicationErrors = {
code?: 'TOO_MANY_INFO_SECTIONS_ERROR';
description?: string;
data?: Record;
};
/** @docsIgnore */
type BulkUpdateProductTagsApplicationErrors = {
code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';
description?: string;
data?: Record;
};
/** @docsIgnore */
type BulkUpdateProductTagsByFilterApplicationErrors = {
code?: 'EMPTY_ASSIGN_AND_UNASSIGN_LISTS';
description?: string;
data?: Record;
};
type __PublicMethodMetaInfo = {
getUrl: (context: any) => string;
httpMethod: K;
path: string;
pathParams: M;
__requestType: T;
__originalRequestType: S;
__responseType: Q;
__originalResponseType: R;
};
declare function createProduct(): __PublicMethodMetaInfo<'POST', {}, CreateProductRequest$1, CreateProductRequest, CreateProductResponse$1, CreateProductResponse>;
declare function createProductWithInventory(): __PublicMethodMetaInfo<'POST', {}, CreateProductWithInventoryRequest$1, CreateProductWithInventoryRequest, CreateProductWithInventoryResponse$1, CreateProductWithInventoryResponse>;
declare function updateProduct(): __PublicMethodMetaInfo<'PATCH', {
productId: string;
}, UpdateProductRequest$1, UpdateProductRequest, UpdateProductResponse$1, UpdateProductResponse>;
declare function updateProductWithInventory(): __PublicMethodMetaInfo<'PATCH', {
productId: string;
}, UpdateProductWithInventoryRequest$1, UpdateProductWithInventoryRequest, UpdateProductWithInventoryResponse$1, UpdateProductWithInventoryResponse>;
declare function bulkCreateProducts(): __PublicMethodMetaInfo<'POST', {}, BulkCreateProductsRequest$1, BulkCreateProductsRequest, BulkCreateProductsResponse$1, BulkCreateProductsResponse>;
declare function bulkCreateProductsWithInventory(): __PublicMethodMetaInfo<'POST', {}, BulkCreateProductsWithInventoryRequest$1, BulkCreateProductsWithInventoryRequest, BulkCreateProductsWithInventoryResponse$1, BulkCreateProductsWithInventoryResponse>;
declare function bulkUpdateProducts(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateProductsRequest$1, BulkUpdateProductsRequest, BulkUpdateProductsResponse$1, BulkUpdateProductsResponse>;
declare function bulkUpdateProductsWithInventory(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateProductsWithInventoryRequest$1, BulkUpdateProductsWithInventoryRequest, BulkUpdateProductsWithInventoryResponse$1, BulkUpdateProductsWithInventoryResponse>;
declare function bulkUpdateProductsByFilter(): __PublicMethodMetaInfo<'POST', {}, V3BulkUpdateProductsByFilterRequest$1, V3BulkUpdateProductsByFilterRequest, V3BulkUpdateProductsByFilterResponse$1, V3BulkUpdateProductsByFilterResponse>;
declare function deleteProduct(): __PublicMethodMetaInfo<'DELETE', {
productId: string;
}, V3DeleteProductRequest$1, V3DeleteProductRequest, V3DeleteProductResponse$1, V3DeleteProductResponse>;
declare function bulkDeleteProducts(): __PublicMethodMetaInfo<'POST', {}, V3BulkDeleteProductsRequest$1, V3BulkDeleteProductsRequest, V3BulkDeleteProductsResponse$1, V3BulkDeleteProductsResponse>;
declare function bulkDeleteProductsByFilter(): __PublicMethodMetaInfo<'POST', {}, V3BulkDeleteProductsByFilterRequest$1, V3BulkDeleteProductsByFilterRequest, V3BulkDeleteProductsByFilterResponse$1, V3BulkDeleteProductsByFilterResponse>;
declare function getProduct(): __PublicMethodMetaInfo<'GET', {
productId: string;
}, V3GetProductRequest$1, V3GetProductRequest, V3GetProductResponse$1, V3GetProductResponse>;
declare function getProductBySlug(): __PublicMethodMetaInfo<'GET', {
slug: string;
}, V3GetProductBySlugRequest$1, V3GetProductBySlugRequest, V3GetProductBySlugResponse$1, V3GetProductBySlugResponse>;
declare function searchProducts(): __PublicMethodMetaInfo<'GET', {}, V3SearchProductsRequest$1, V3SearchProductsRequest, V3SearchProductsResponse$1, V3SearchProductsResponse>;
declare function queryProducts(): __PublicMethodMetaInfo<'GET', {}, V3QueryProductsRequest$1, V3QueryProductsRequest, V3QueryProductsResponse$1, V3QueryProductsResponse>;
declare function countProducts(): __PublicMethodMetaInfo<'GET', {}, V3CountProductsRequest$1, V3CountProductsRequest, V3CountProductsResponse$1, V3CountProductsResponse>;
declare function bulkUpdateProductVariantsByFilter(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateProductVariantsByFilterRequest$1, BulkUpdateProductVariantsByFilterRequest, BulkUpdateProductVariantsByFilterResponse$1, BulkUpdateProductVariantsByFilterResponse>;
declare function bulkAdjustProductVariantsByFilter(): __PublicMethodMetaInfo<'POST', {}, V3BulkAdjustProductVariantsByFilterRequest$1, V3BulkAdjustProductVariantsByFilterRequest, V3BulkAdjustProductVariantsByFilterResponse$1, V3BulkAdjustProductVariantsByFilterResponse>;
declare function bulkAddInfoSectionsToProductsByFilter(): __PublicMethodMetaInfo<'POST', {}, V3BulkAddInfoSectionsToProductsByFilterRequest$1, V3BulkAddInfoSectionsToProductsByFilterRequest, V3BulkAddInfoSectionsToProductsByFilterResponse$1, V3BulkAddInfoSectionsToProductsByFilterResponse>;
declare function bulkAddInfoSectionsToProducts(): __PublicMethodMetaInfo<'POST', {}, V3BulkAddInfoSectionsToProductsRequest$1, V3BulkAddInfoSectionsToProductsRequest, V3BulkAddInfoSectionsToProductsResponse$1, V3BulkAddInfoSectionsToProductsResponse>;
declare function bulkRemoveInfoSectionsFromProductsByFilter(): __PublicMethodMetaInfo<'POST', {}, V3BulkRemoveInfoSectionsFromProductsByFilterRequest$1, V3BulkRemoveInfoSectionsFromProductsByFilterRequest, V3BulkRemoveInfoSectionsFromProductsByFilterResponse$1, V3BulkRemoveInfoSectionsFromProductsByFilterResponse>;
declare function bulkRemoveInfoSectionsFromProducts(): __PublicMethodMetaInfo<'POST', {}, V3BulkRemoveInfoSectionsFromProductsRequest$1, V3BulkRemoveInfoSectionsFromProductsRequest, V3BulkRemoveInfoSectionsFromProductsResponse$1, V3BulkRemoveInfoSectionsFromProductsResponse>;
declare function bulkAddProductsToCategoriesByFilter(): __PublicMethodMetaInfo<'POST', {}, BulkAddProductsToCategoriesByFilterRequest$1, BulkAddProductsToCategoriesByFilterRequest, BulkAddProductsToCategoriesByFilterResponse$1, BulkAddProductsToCategoriesByFilterResponse>;
declare function bulkRemoveProductsFromCategoriesByFilter(): __PublicMethodMetaInfo<'POST', {}, BulkRemoveProductsFromCategoriesByFilterRequest$1, BulkRemoveProductsFromCategoriesByFilterRequest, BulkRemoveProductsFromCategoriesByFilterResponse$1, BulkRemoveProductsFromCategoriesByFilterResponse>;
declare function getAllProductsCategory(): __PublicMethodMetaInfo<'GET', {}, GetAllProductsCategoryRequest$1, GetAllProductsCategoryRequest, GetAllProductsCategoryResponse$1, GetAllProductsCategoryResponse>;
declare function bulkUpdateProductTags(): __PublicMethodMetaInfo<'POST', {}, V3BulkUpdateProductTagsRequest$1, V3BulkUpdateProductTagsRequest, V3BulkUpdateProductTagsResponse$1, V3BulkUpdateProductTagsResponse>;
declare function bulkUpdateProductTagsByFilter(): __PublicMethodMetaInfo<'POST', {}, V3BulkUpdateProductTagsByFilterRequest$1, V3BulkUpdateProductTagsByFilterRequest, V3BulkUpdateProductTagsByFilterResponse$1, V3BulkUpdateProductTagsByFilterResponse>;
export { type AccountInfo as AccountInfoOriginal, type ActionEvent as ActionEventOriginal, type AddressLocation as AddressLocationOriginal, type AdjustValueAdjustValueOneOf as AdjustValueAdjustValueOneOfOriginal, type AdjustValue as AdjustValueOriginal, type AggregationDataAggregationResults as AggregationDataAggregationResultsOriginal, type AggregationDataAggregationResultsResultOneOf as AggregationDataAggregationResultsResultOneOfOriginal, type AggregationDataAggregationResultsScalarResult as AggregationDataAggregationResultsScalarResultOriginal, type AggregationData as AggregationDataOriginal, AggregationDateHistogramAggregationInterval as AggregationDateHistogramAggregationIntervalOriginal, type AggregationDateHistogramAggregationIntervalWithLiterals as AggregationDateHistogramAggregationIntervalWithLiteralsOriginal, type AggregationDateHistogramAggregation as AggregationDateHistogramAggregationOriginal, type AggregationKindOneOf as AggregationKindOneOfOriginal, type AggregationNestedAggregationNestedAggregationItemKindOneOf as AggregationNestedAggregationNestedAggregationItemKindOneOfOriginal, type AggregationNestedAggregationNestedAggregationItem as AggregationNestedAggregationNestedAggregationItemOriginal, AggregationNestedAggregationNestedAggregationType as AggregationNestedAggregationNestedAggregationTypeOriginal, type AggregationNestedAggregationNestedAggregationTypeWithLiterals as AggregationNestedAggregationNestedAggregationTypeWithLiteralsOriginal, type AggregationNestedAggregation as AggregationNestedAggregationOriginal, type Aggregation as AggregationOriginal, type AggregationRangeAggregation as AggregationRangeAggregationOriginal, type AggregationRangeAggregationRangeBucket as AggregationRangeAggregationRangeBucketOriginal, type AggregationResultsDateHistogramResults as AggregationResultsDateHistogramResultsOriginal, type AggregationResultsGroupByValueResults as AggregationResultsGroupByValueResultsOriginal, type AggregationResultsNestedAggregationResults as AggregationResultsNestedAggregationResultsOriginal, type AggregationResultsNestedAggregationResultsResultOneOf as AggregationResultsNestedAggregationResultsResultOneOfOriginal, type AggregationResultsNestedResults as AggregationResultsNestedResultsOriginal, type AggregationResults as AggregationResultsOriginal, type AggregationResultsRangeResults as AggregationResultsRangeResultsOriginal, type AggregationResultsResultOneOf as AggregationResultsResultOneOfOriginal, type AggregationResultsScalarResult as AggregationResultsScalarResultOriginal, type AggregationResultsValueResults as AggregationResultsValueResultsOriginal, type AggregationScalarAggregation as AggregationScalarAggregationOriginal, AggregationType as AggregationTypeOriginal, type AggregationTypeWithLiterals as AggregationTypeWithLiteralsOriginal, type AggregationValueAggregationIncludeMissingValuesOptions as AggregationValueAggregationIncludeMissingValuesOptionsOriginal, AggregationValueAggregationMissingValues as AggregationValueAggregationMissingValuesOriginal, type AggregationValueAggregationMissingValuesWithLiterals as AggregationValueAggregationMissingValuesWithLiteralsOriginal, type AggregationValueAggregationOptionsOneOf as AggregationValueAggregationOptionsOneOfOriginal, type AggregationValueAggregation as AggregationValueAggregationOriginal, AggregationValueAggregationSortDirection as AggregationValueAggregationSortDirectionOriginal, type AggregationValueAggregationSortDirectionWithLiterals as AggregationValueAggregationSortDirectionWithLiteralsOriginal, AggregationValueAggregationSortType as AggregationValueAggregationSortTypeOriginal, type AggregationValueAggregationSortTypeWithLiterals as AggregationValueAggregationSortTypeWithLiteralsOriginal, Alignment as AlignmentOriginal, type AlignmentWithLiterals as AlignmentWithLiteralsOriginal, type AnchorData as AnchorDataOriginal, type AppEmbedDataAppDataOneOf as AppEmbedDataAppDataOneOfOriginal, type AppEmbedData as AppEmbedDataOriginal, type App as AppOriginal, AppType as AppTypeOriginal, type AppTypeWithLiterals as AppTypeWithLiteralsOriginal, type ApplicationError as ApplicationErrorOriginal, AspectRatio as AspectRatioOriginal, type AspectRatioWithLiterals as AspectRatioWithLiteralsOriginal, type AudioData as AudioDataOriginal, AvailabilityStatus as AvailabilityStatusOriginal, type AvailabilityStatusWithLiterals as AvailabilityStatusWithLiteralsOriginal, type Backdrop as BackdropOriginal, BackdropType as BackdropTypeOriginal, type BackdropTypeWithLiterals as BackdropTypeWithLiteralsOriginal, type BackgroundGradient as BackgroundGradientOriginal, type BackgroundImage as BackgroundImageOriginal, type Background as BackgroundOriginal, BackgroundType as BackgroundTypeOriginal, type BackgroundTypeWithLiterals as BackgroundTypeWithLiteralsOriginal, type Banner as BannerOriginal, BannerPosition as BannerPositionOriginal, type BannerPositionWithLiterals as BannerPositionWithLiteralsOriginal, type BlockquoteData as BlockquoteDataOriginal, type BookingData as BookingDataOriginal, type BorderColors as BorderColorsOriginal, type Border as BorderOriginal, type BorderWidths as BorderWidthsOriginal, type Brand as BrandOriginal, type BreadCrumb as BreadCrumbOriginal, type BreadcrumbsInfo as BreadcrumbsInfoOriginal, type BulkActionMetadata as BulkActionMetadataOriginal, type BulkAddInfoSectionsToProductsApplicationErrors as BulkAddInfoSectionsToProductsApplicationErrorsOriginal, type BulkAddInfoSectionsToProductsByFilterApplicationErrors as BulkAddInfoSectionsToProductsByFilterApplicationErrorsOriginal, type BulkAddInfoSectionsToProductsByFilterRequest as BulkAddInfoSectionsToProductsByFilterRequestOriginal, type BulkAddInfoSectionsToProductsByFilterResponse as BulkAddInfoSectionsToProductsByFilterResponseOriginal, type BulkAddInfoSectionsToProductsRequest as BulkAddInfoSectionsToProductsRequestOriginal, type BulkAddInfoSectionsToProductsResponse as BulkAddInfoSectionsToProductsResponseOriginal, type BulkAddProductsToCategoriesByFilterRequest as BulkAddProductsToCategoriesByFilterRequestOriginal, type BulkAddProductsToCategoriesByFilterResponse as BulkAddProductsToCategoriesByFilterResponseOriginal, type BulkAdjustProductVariantsByFilterApplicationErrors as BulkAdjustProductVariantsByFilterApplicationErrorsOriginal, type BulkAdjustProductVariantsByFilterRequest as BulkAdjustProductVariantsByFilterRequestOriginal, BulkAdjustProductVariantsByFilterRequestRoundingStrategy as BulkAdjustProductVariantsByFilterRequestRoundingStrategyOriginal, type BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals as BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiteralsOriginal, type BulkAdjustProductVariantsByFilterResponse as BulkAdjustProductVariantsByFilterResponseOriginal, type BulkAdjustProductVariantsByFilterValidationErrors as BulkAdjustProductVariantsByFilterValidationErrorsOriginal, type BulkCreateProductsApplicationErrors as BulkCreateProductsApplicationErrorsOriginal, type BulkCreateProductsForMigrationRequest as BulkCreateProductsForMigrationRequestOriginal, type BulkCreateProductsForMigrationResponse as BulkCreateProductsForMigrationResponseOriginal, type BulkCreateProductsRequest as BulkCreateProductsRequestOriginal, type BulkCreateProductsResponse as BulkCreateProductsResponseOriginal, type BulkCreateProductsValidationErrors as BulkCreateProductsValidationErrorsOriginal, type BulkCreateProductsWithInventoryApplicationErrors as BulkCreateProductsWithInventoryApplicationErrorsOriginal, type BulkCreateProductsWithInventoryForMigrationRequest as BulkCreateProductsWithInventoryForMigrationRequestOriginal, type BulkCreateProductsWithInventoryForMigrationResponse as BulkCreateProductsWithInventoryForMigrationResponseOriginal, type BulkCreateProductsWithInventoryRequest as BulkCreateProductsWithInventoryRequestOriginal, type BulkCreateProductsWithInventoryResponse as BulkCreateProductsWithInventoryResponseOriginal, type BulkCreateProductsWithInventoryValidationErrors as BulkCreateProductsWithInventoryValidationErrorsOriginal, type BulkDeleteProductsByFilterRequest as BulkDeleteProductsByFilterRequestOriginal, type BulkDeleteProductsByFilterResponse as BulkDeleteProductsByFilterResponseOriginal, type BulkDeleteProductsRequest as BulkDeleteProductsRequestOriginal, type BulkDeleteProductsResponseBulkProductResult as BulkDeleteProductsResponseBulkProductResultOriginal, type BulkDeleteProductsResponse as BulkDeleteProductsResponseOriginal, type BulkDeleteProductsValidationErrors as BulkDeleteProductsValidationErrorsOriginal, type BulkInventoryItemAction as BulkInventoryItemActionOriginal, type BulkInventoryItemResult as BulkInventoryItemResultOriginal, type BulkInventoryItemResults as BulkInventoryItemResultsOriginal, type BulkProductResult as BulkProductResultOriginal, type BulkProductResults as BulkProductResultsOriginal, type BulkRemoveInfoSectionsFromProductsByFilterRequest as BulkRemoveInfoSectionsFromProductsByFilterRequestOriginal, type BulkRemoveInfoSectionsFromProductsByFilterResponse as BulkRemoveInfoSectionsFromProductsByFilterResponseOriginal, type BulkRemoveInfoSectionsFromProductsRequest as BulkRemoveInfoSectionsFromProductsRequestOriginal, type BulkRemoveInfoSectionsFromProductsResponse as BulkRemoveInfoSectionsFromProductsResponseOriginal, type BulkRemoveProductsFromCategoriesByFilterRequest as BulkRemoveProductsFromCategoriesByFilterRequestOriginal, type BulkRemoveProductsFromCategoriesByFilterResponse as BulkRemoveProductsFromCategoriesByFilterResponseOriginal, type BulkUpdateProductTagsApplicationErrors as BulkUpdateProductTagsApplicationErrorsOriginal, type BulkUpdateProductTagsByFilterApplicationErrors as BulkUpdateProductTagsByFilterApplicationErrorsOriginal, type BulkUpdateProductTagsByFilterRequest as BulkUpdateProductTagsByFilterRequestOriginal, type BulkUpdateProductTagsByFilterResponse as BulkUpdateProductTagsByFilterResponseOriginal, type BulkUpdateProductTagsRequest as BulkUpdateProductTagsRequestOriginal, type BulkUpdateProductTagsResponseBulkUpdateProductTagsResult as BulkUpdateProductTagsResponseBulkUpdateProductTagsResultOriginal, type BulkUpdateProductTagsResponse as BulkUpdateProductTagsResponseOriginal, type BulkUpdateProductTagsResult as BulkUpdateProductTagsResultOriginal, type BulkUpdateProductVariantsByFilterApplicationErrors as BulkUpdateProductVariantsByFilterApplicationErrorsOriginal, type BulkUpdateProductVariantsByFilterRequest as BulkUpdateProductVariantsByFilterRequestOriginal, type BulkUpdateProductVariantsByFilterResponse as BulkUpdateProductVariantsByFilterResponseOriginal, type BulkUpdateProductVariantsByFilterValidationErrors as BulkUpdateProductVariantsByFilterValidationErrorsOriginal, type BulkUpdateProductsApplicationErrors as BulkUpdateProductsApplicationErrorsOriginal, type BulkUpdateProductsByFilterApplicationErrors as BulkUpdateProductsByFilterApplicationErrorsOriginal, type BulkUpdateProductsByFilterRequest as BulkUpdateProductsByFilterRequestOriginal, type BulkUpdateProductsByFilterResponse as BulkUpdateProductsByFilterResponseOriginal, type BulkUpdateProductsByFilterValidationErrors as BulkUpdateProductsByFilterValidationErrorsOriginal, type BulkUpdateProductsRequest as BulkUpdateProductsRequestOriginal, type BulkUpdateProductsResponse as BulkUpdateProductsResponseOriginal, type BulkUpdateProductsValidationErrors as BulkUpdateProductsValidationErrorsOriginal, type BulkUpdateProductsWithInventoryApplicationErrors as BulkUpdateProductsWithInventoryApplicationErrorsOriginal, type BulkUpdateProductsWithInventoryRequest as BulkUpdateProductsWithInventoryRequestOriginal, type BulkUpdateProductsWithInventoryResponse as BulkUpdateProductsWithInventoryResponseOriginal, type BulkUpdateProductsWithInventoryValidationErrors as BulkUpdateProductsWithInventoryValidationErrorsOriginal, type BulkUpdateVariantsByFilterRequest as BulkUpdateVariantsByFilterRequestOriginal, type BulkUpdateVariantsByFilterResponse as BulkUpdateVariantsByFilterResponseOriginal, type BulletedListData as BulletedListDataOriginal, type ButtonData as ButtonDataOriginal, ButtonDataType as ButtonDataTypeOriginal, type ButtonDataTypeWithLiterals as ButtonDataTypeWithLiteralsOriginal, type ButtonStyles as ButtonStylesOriginal, type CalculateProductInventorPreorderStatusAsyncRequest as CalculateProductInventorPreorderStatusAsyncRequestOriginal, type CalculateProductInventorPreorderStatusAsyncResponse as CalculateProductInventorPreorderStatusAsyncResponseOriginal, type CaptionData as CaptionDataOriginal, type CardDataBackground as CardDataBackgroundOriginal, CardDataBackgroundType as CardDataBackgroundTypeOriginal, type CardDataBackgroundTypeWithLiterals as CardDataBackgroundTypeWithLiteralsOriginal, type CardData as CardDataOriginal, type CardStyles as CardStylesOriginal, type CatalogRollbackRequested as CatalogRollbackRequestedOriginal, type CatalogV3BulkProductResult as CatalogV3BulkProductResultOriginal, type CellStyle as CellStyleOriginal, type CheckboxListData as CheckboxListDataOriginal, ChoiceType as ChoiceTypeOriginal, type ChoiceTypeWithLiterals as ChoiceTypeWithLiteralsOriginal, type ChoicesSettings as ChoicesSettingsOriginal, type CodeBlockData as CodeBlockDataOriginal, type CollapsibleListData as CollapsibleListDataOriginal, type ColorData as ColorDataOriginal, type Colors as ColorsOriginal, ColumnSize as ColumnSizeOriginal, type ColumnSizeWithLiterals as ColumnSizeWithLiteralsOriginal, type CommonAggregationData as CommonAggregationDataOriginal, type CommonAggregationDateHistogramAggregation as CommonAggregationDateHistogramAggregationOriginal, type CommonAggregationKindOneOf as CommonAggregationKindOneOfOriginal, type CommonAggregationNestedAggregation as CommonAggregationNestedAggregationOriginal, type CommonAggregation as CommonAggregationOriginal, type CommonAggregationRangeAggregation as CommonAggregationRangeAggregationOriginal, type CommonAggregationScalarAggregation as CommonAggregationScalarAggregationOriginal, CommonAggregationType as CommonAggregationTypeOriginal, type CommonAggregationTypeWithLiterals as CommonAggregationTypeWithLiteralsOriginal, type CommonAggregationValueAggregationOptionsOneOf as CommonAggregationValueAggregationOptionsOneOfOriginal, type CommonAggregationValueAggregation as CommonAggregationValueAggregationOriginal, type CommonBulkActionMetadata as CommonBulkActionMetadataOriginal, type CommonCursorPagingMetadata as CommonCursorPagingMetadataOriginal, type CommonCursorPaging as CommonCursorPagingOriginal, type CommonCursorQuery as CommonCursorQueryOriginal, type CommonCursorQueryPagingMethodOneOf as CommonCursorQueryPagingMethodOneOfOriginal, type CommonCursorSearch as CommonCursorSearchOriginal, type CommonCursorSearchPagingMethodOneOf as CommonCursorSearchPagingMethodOneOfOriginal, type CommonCursors as CommonCursorsOriginal, type CommonItemMetadata as CommonItemMetadataOriginal, CommonScalarType as CommonScalarTypeOriginal, type CommonScalarTypeWithLiterals as CommonScalarTypeWithLiteralsOriginal, CommonSearchDetailsMode as CommonSearchDetailsModeOriginal, type CommonSearchDetailsModeWithLiterals as CommonSearchDetailsModeWithLiteralsOriginal, type CommonSearchDetails as CommonSearchDetailsOriginal, CommonSortOrder as CommonSortOrderOriginal, type CommonSortOrderWithLiterals as CommonSortOrderWithLiteralsOriginal, type CommonSorting as CommonSortingOriginal, type ConnectedModifierChoice as ConnectedModifierChoiceOriginal, type ConnectedModifierChoiceValueOneOf as ConnectedModifierChoiceValueOneOfOriginal, type ConnectedModifierModifierSettingsOneOf as ConnectedModifierModifierSettingsOneOfOriginal, type ConnectedModifier as ConnectedModifierOriginal, type ConnectedOptionChoice as ConnectedOptionChoiceOriginal, type ConnectedOptionChoiceValueOneOf as ConnectedOptionChoiceValueOneOfOriginal, type ConnectedOptionOptionSettingsOneOf as ConnectedOptionOptionSettingsOneOfOriginal, type ConnectedOption as ConnectedOptionOriginal, type CountProductsApplicationErrors as CountProductsApplicationErrorsOriginal, type CountProductsRequest as CountProductsRequestOriginal, type CountProductsResponse as CountProductsResponseOriginal, type CreateProductApplicationErrors as CreateProductApplicationErrorsOriginal, type CreateProductRequest as CreateProductRequestOriginal, type CreateProductResponse as CreateProductResponseOriginal, type CreateProductValidationErrors as CreateProductValidationErrorsOriginal, type CreateProductWithInventoryApplicationErrors as CreateProductWithInventoryApplicationErrorsOriginal, type CreateProductWithInventoryRequest as CreateProductWithInventoryRequestOriginal, type CreateProductWithInventoryResponse as CreateProductWithInventoryResponseOriginal, type CreateProductWithInventoryValidationErrors as CreateProductWithInventoryValidationErrorsOriginal, Crop as CropOriginal, type CropWithLiterals as CropWithLiteralsOriginal, type CursorPagingMetadata as CursorPagingMetadataOriginal, type CursorPaging as CursorPagingOriginal, type CursorQuery as CursorQueryOriginal, type CursorQueryPagingMethodOneOf as CursorQueryPagingMethodOneOfOriginal, type CursorSearch as CursorSearchOriginal, type CursorSearchPagingMethodOneOf as CursorSearchPagingMethodOneOfOriginal, type Cursors as CursorsOriginal, type CustomTag as CustomTagOriginal, DateHistogramAggregationInterval as DateHistogramAggregationIntervalOriginal, type DateHistogramAggregationIntervalWithLiterals as DateHistogramAggregationIntervalWithLiteralsOriginal, type DateHistogramAggregation as DateHistogramAggregationOriginal, type DateHistogramResult as DateHistogramResultOriginal, type DateHistogramResultsDateHistogramResult as DateHistogramResultsDateHistogramResultOriginal, type DateHistogramResults as DateHistogramResultsOriginal, type DecorationDataOneOf as DecorationDataOneOfOriginal, type Decoration as DecorationOriginal, DecorationType as DecorationTypeOriginal, type DecorationTypeWithLiterals as DecorationTypeWithLiteralsOriginal, type DeleteByFilterOperation as DeleteByFilterOperationOriginal, type DeleteByIdsOperation as DeleteByIdsOperationOriginal, type DeleteProductRequest as DeleteProductRequestOriginal, type DeleteProductResponse as DeleteProductResponseOriginal, type DeprecatedSearchProductsWithOffsetRequest as DeprecatedSearchProductsWithOffsetRequestOriginal, type DeprecatedSearchProductsWithOffsetResponse as DeprecatedSearchProductsWithOffsetResponseOriginal, type Design as DesignOriginal, DesignTarget as DesignTargetOriginal, type DesignTargetWithLiterals as DesignTargetWithLiteralsOriginal, type Dimensions as DimensionsOriginal, DimensionsUnit as DimensionsUnitOriginal, type DimensionsUnitWithLiterals as DimensionsUnitWithLiteralsOriginal, Direction as DirectionOriginal, type DirectionWithLiterals as DirectionWithLiteralsOriginal, type DiscountInfo as DiscountInfoOriginal, DiscountType as DiscountTypeOriginal, type DiscountTypeWithLiterals as DiscountTypeWithLiteralsOriginal, DividerDataAlignment as DividerDataAlignmentOriginal, type DividerDataAlignmentWithLiterals as DividerDataAlignmentWithLiteralsOriginal, type DividerData as DividerDataOriginal, type DoNotCallBulkCreateProductsRequest as DoNotCallBulkCreateProductsRequestOriginal, type DoNotCallBulkCreateProductsResponse as DoNotCallBulkCreateProductsResponseOriginal, type DoNotCallBulkUpdateProductsRequest as DoNotCallBulkUpdateProductsRequestOriginal, type DoNotCallBulkUpdateProductsResponse as DoNotCallBulkUpdateProductsResponseOriginal, type DoNotCallCreateProductRequest as DoNotCallCreateProductRequestOriginal, type DoNotCallCreateProductResponse as DoNotCallCreateProductResponseOriginal, type DoNotCallUpdateProductRequest as DoNotCallUpdateProductRequestOriginal, type DoNotCallUpdateProductResponse as DoNotCallUpdateProductResponseOriginal, type DocumentImage as DocumentImageOriginal, type DocumentPayload as DocumentPayloadOriginal, type DocumentStyle as DocumentStyleOriginal, type DocumentUpdateOperation as DocumentUpdateOperationOriginal, type DomainEventBodyOneOf as DomainEventBodyOneOfOriginal, type DomainEvent as DomainEventOriginal, type DuplicateMediaIdAssignedToProduct as DuplicateMediaIdAssignedToProductOriginal, type DuplicateRibbonErrorData as DuplicateRibbonErrorDataOriginal, type EmbedData as EmbedDataOriginal, type Empty as EmptyOriginal, type EntityCreatedEvent as EntityCreatedEventOriginal, type EntityDeletedEvent as EntityDeletedEventOriginal, type EntityUpdatedEvent as EntityUpdatedEventOriginal, Enum as EnumOriginal, type EnumWithLiterals as EnumWithLiteralsOriginal, type EventData as EventDataOriginal, EventType as EventTypeOriginal, type EventTypeWithLiterals as EventTypeWithLiteralsOriginal, type EventuallyConsistentQueryProductsRequest as EventuallyConsistentQueryProductsRequestOriginal, type EventuallyConsistentQueryProductsResponse as EventuallyConsistentQueryProductsResponseOriginal, type ExtendedFields as ExtendedFieldsOriginal, type FileData as FileDataOriginal, type File as FileOriginal, type FileSourceDataOneOf as FileSourceDataOneOfOriginal, type FileSource as FileSourceOriginal, FileType as FileTypeOriginal, type FileTypeWithLiterals as FileTypeWithLiteralsOriginal, type FixedMonetaryAmount as FixedMonetaryAmountOriginal, type FontFamilyData as FontFamilyDataOriginal, type FontSizeData as FontSizeDataOriginal, FontType as FontTypeOriginal, type FontTypeWithLiterals as FontTypeWithLiteralsOriginal, type FreeTextSettings as FreeTextSettingsOriginal, type FulfillerDeleted as FulfillerDeletedOriginal, type GIFData as GIFDataOriginal, type GIF as GIFOriginal, GIFType as GIFTypeOriginal, type GIFTypeWithLiterals as GIFTypeWithLiteralsOriginal, type GalleryData as GalleryDataOriginal, type GalleryOptionsLayout as GalleryOptionsLayoutOriginal, type GalleryOptions as GalleryOptionsOriginal, type GeotileGridAggregation as GeotileGridAggregationOriginal, type GetAllProductsCategoryRequest as GetAllProductsCategoryRequestOriginal, type GetAllProductsCategoryResponse as GetAllProductsCategoryResponseOriginal, type GetProductApplicationErrors as GetProductApplicationErrorsOriginal, type GetProductBySlugApplicationErrors as GetProductBySlugApplicationErrorsOriginal, type GetProductBySlugRequest as GetProductBySlugRequestOriginal, type GetProductBySlugResponse as GetProductBySlugResponseOriginal, type GetProductRequest as GetProductRequestOriginal, type GetProductResponse as GetProductResponseOriginal, type Gradient as GradientOriginal, GradientType as GradientTypeOriginal, type GradientTypeWithLiterals as GradientTypeWithLiteralsOriginal, type GroupByAggregationKindOneOf as GroupByAggregationKindOneOfOriginal, type GroupByAggregation as GroupByAggregationOriginal, type GroupByValueResultsNestedValueAggregationResult as GroupByValueResultsNestedValueAggregationResultOriginal, type GroupByValueResults as GroupByValueResultsOriginal, type HTMLDataDataOneOf as HTMLDataDataOneOfOriginal, type HTMLData as HTMLDataOriginal, type HeadingData as HeadingDataOriginal, type Height as HeightOriginal, type IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal, type IdentificationData as IdentificationDataOriginal, type ImageDataCrop as ImageDataCropOriginal, type ImageData as ImageDataOriginal, type ImageDataStyles as ImageDataStylesOriginal, type Image as ImageOriginal, ImagePosition as ImagePositionOriginal, ImagePositionPosition as ImagePositionPositionOriginal, type ImagePositionPositionWithLiterals as ImagePositionPositionWithLiteralsOriginal, type ImagePositionWithLiterals as ImagePositionWithLiteralsOriginal, ImageScalingScaling as ImageScalingScalingOriginal, type ImageScalingScalingWithLiterals as ImageScalingScalingWithLiteralsOriginal, type ImageStyles as ImageStylesOriginal, type IncludeMissingValuesOptions as IncludeMissingValuesOptionsOriginal, Indentation as IndentationOriginal, type IndentationWithLiterals as IndentationWithLiteralsOriginal, type IndexDocument as IndexDocumentOriginal, type InfoSection as InfoSectionOriginal, InitialExpandedItems as InitialExpandedItemsOriginal, type InitialExpandedItemsWithLiterals as InitialExpandedItemsWithLiteralsOriginal, Interval as IntervalOriginal, type IntervalWithLiterals as IntervalWithLiteralsOriginal, type InvalidDigitalFileIds as InvalidDigitalFileIdsOriginal, type InvalidateCacheGetByOneOf as InvalidateCacheGetByOneOfOriginal, type InvalidateCache as InvalidateCacheOriginal, InventoryAvailabilityStatus as InventoryAvailabilityStatusOriginal, type InventoryAvailabilityStatusWithLiterals as InventoryAvailabilityStatusWithLiteralsOriginal, type InventoryItemCompositeForMigration as InventoryItemCompositeForMigrationOriginal, type InventoryItemCompositeForMigrationTrackingMethodOneOf as InventoryItemCompositeForMigrationTrackingMethodOneOfOriginal, type InventoryItemComposite as InventoryItemCompositeOriginal, type InventoryItemCompositeTrackingMethodOneOf as InventoryItemCompositeTrackingMethodOneOfOriginal, type InventoryItem as InventoryItemOriginal, type InventoryItemTrackingMethodOneOf as InventoryItemTrackingMethodOneOfOriginal, type Inventory as InventoryOriginal, type InventoryStatus as InventoryStatusOriginal, type ItemDataOneOf as ItemDataOneOfOriginal, type ItemImage as ItemImageOriginal, type ItemMetadata as ItemMetadataOriginal, type Item as ItemOriginal, type ItemStyle as ItemStyleOriginal, type Keyword as KeywordOriginal, type LayoutCellData as LayoutCellDataOriginal, type LayoutDataBackgroundImage as LayoutDataBackgroundImageOriginal, type LayoutDataBackground as LayoutDataBackgroundOriginal, LayoutDataBackgroundType as LayoutDataBackgroundTypeOriginal, type LayoutDataBackgroundTypeWithLiterals as LayoutDataBackgroundTypeWithLiteralsOriginal, type LayoutData as LayoutDataOriginal, Layout as LayoutOriginal, LayoutType as LayoutTypeOriginal, type LayoutTypeWithLiterals as LayoutTypeWithLiteralsOriginal, type LayoutWithLiterals as LayoutWithLiteralsOriginal, LineStyle as LineStyleOriginal, type LineStyleWithLiterals as LineStyleWithLiteralsOriginal, type LinkDataOneOf as LinkDataOneOfOriginal, type LinkData as LinkDataOriginal, type Link as LinkOriginal, type LinkPreviewData as LinkPreviewDataOriginal, type LinkPreviewDataStyles as LinkPreviewDataStylesOriginal, type ListItemNodeData as ListItemNodeDataOriginal, ListStyle as ListStyleOriginal, type ListStyleWithLiterals as ListStyleWithLiteralsOriginal, type ListValue as ListValueOriginal, type MapData as MapDataOriginal, type MapSettings as MapSettingsOriginal, MapType as MapTypeOriginal, type MapTypeWithLiterals as MapTypeWithLiteralsOriginal, type MaskedProduct as MaskedProductOriginal, type MaskedProductWithInventory as MaskedProductWithInventoryOriginal, MeasurementUnit as MeasurementUnitOriginal, type MeasurementUnitWithLiterals as MeasurementUnitWithLiteralsOriginal, type MediaItemsInfo as MediaItemsInfoOriginal, type Media as MediaOriginal, type MediaReferenceIdentifierOneOf as MediaReferenceIdentifierOneOfOriginal, type MediaReference as MediaReferenceOriginal, type MediaReferences as MediaReferencesOriginal, MediaType as MediaTypeOriginal, type MediaTypeWithLiterals as MediaTypeWithLiteralsOriginal, type MentionData as MentionDataOriginal, type MessageEnvelope as MessageEnvelopeOriginal, type Metadata as MetadataOriginal, type MinVariantPriceInfo as MinVariantPriceInfoOriginal, MissingValues as MissingValuesOriginal, type MissingValuesWithLiterals as MissingValuesWithLiteralsOriginal, type MissingVariantOptionChoiceErrorData as MissingVariantOptionChoiceErrorDataOriginal, type MissingVariantOptionErrorData as MissingVariantOptionErrorDataOriginal, Mode as ModeOriginal, type ModeWithLiterals as ModeWithLiteralsOriginal, type ModifierChoicesSettings as ModifierChoicesSettingsOriginal, ModifierRenderType as ModifierRenderTypeOriginal, type ModifierRenderTypeWithLiterals as ModifierRenderTypeWithLiteralsOriginal, type MultipleColors as MultipleColorsOriginal, type NestedAggregationItemKindOneOf as NestedAggregationItemKindOneOfOriginal, type NestedAggregationItem as NestedAggregationItemOriginal, type NestedAggregationNestedAggregationItemKindOneOf as NestedAggregationNestedAggregationItemKindOneOfOriginal, type NestedAggregationNestedAggregationItem as NestedAggregationNestedAggregationItemOriginal, NestedAggregationNestedAggregationType as NestedAggregationNestedAggregationTypeOriginal, type NestedAggregationNestedAggregationTypeWithLiterals as NestedAggregationNestedAggregationTypeWithLiteralsOriginal, type NestedAggregation as NestedAggregationOriginal, type NestedAggregationResults as NestedAggregationResultsOriginal, type NestedAggregationResultsResultOneOf as NestedAggregationResultsResultOneOfOriginal, NestedAggregationType as NestedAggregationTypeOriginal, type NestedAggregationTypeWithLiterals as NestedAggregationTypeWithLiteralsOriginal, type NestedResultValue as NestedResultValueOriginal, type NestedResultValueResultOneOf as NestedResultValueResultOneOfOriginal, type NestedResultsNestedResultValue as NestedResultsNestedResultValueOriginal, type NestedResultsNestedResultValueResultOneOf as NestedResultsNestedResultValueResultOneOfOriginal, type NestedResults as NestedResultsOriginal, type NestedResultsRangeResult as NestedResultsRangeResultOriginal, type NestedResultsResults as NestedResultsResultsOriginal, type NestedResultsScalarResult as NestedResultsScalarResultOriginal, type NestedResultsValueResult as NestedResultsValueResultOriginal, type NestedValueAggregationResult as NestedValueAggregationResultOriginal, type NodeDataOneOf as NodeDataOneOfOriginal, type Node as NodeOriginal, type NodeStyle as NodeStyleOriginal, NodeType as NodeTypeOriginal, type NodeTypeWithLiterals as NodeTypeWithLiteralsOriginal, NullValue as NullValueOriginal, type NullValueWithLiterals as NullValueWithLiteralsOriginal, type Oembed as OembedOriginal, type OptionChoiceIdsForMigration as OptionChoiceIdsForMigrationOriginal, type OptionChoiceIds as OptionChoiceIdsOriginal, type OptionChoiceNames as OptionChoiceNamesOriginal, type OptionChoice as OptionChoiceOriginal, type OptionChoiceReferencesForMigration as OptionChoiceReferencesForMigrationOriginal, type OptionChoiceReferences as OptionChoiceReferencesOriginal, type OptionDesign as OptionDesignOriginal, type OptionLayout as OptionLayoutOriginal, type Option as OptionOriginal, type OrderedListData as OrderedListDataOriginal, Orientation as OrientationOriginal, type OrientationWithLiterals as OrientationWithLiteralsOriginal, Origin as OriginOriginal, type OriginWithLiterals as OriginWithLiteralsOriginal, type PDFSettings as PDFSettingsOriginal, type Page as PageOriginal, type PageUrlV2 as PageUrlV2Original, type Pages as PagesOriginal, type PagingMetadata as PagingMetadataOriginal, type ParagraphData as ParagraphDataOriginal, type Permissions as PermissionsOriginal, type PhysicalProperties as PhysicalPropertiesOriginal, Placement as PlacementOriginal, type PlacementWithLiterals as PlacementWithLiteralsOriginal, type PlatformOffsetSearch as PlatformOffsetSearchOriginal, type PlatformOffsetSearchPagingMethodOneOf as PlatformOffsetSearchPagingMethodOneOfOriginal, type PlatformPaging as PlatformPagingOriginal, type PlaybackOptions as PlaybackOptionsOriginal, PluginContainerDataAlignment as PluginContainerDataAlignmentOriginal, type PluginContainerDataAlignmentWithLiterals as PluginContainerDataAlignmentWithLiteralsOriginal, type PluginContainerData as PluginContainerDataOriginal, type PluginContainerDataWidthDataOneOf as PluginContainerDataWidthDataOneOfOriginal, type PluginContainerDataWidth as PluginContainerDataWidthOriginal, type PollDataLayout as PollDataLayoutOriginal, type PollData as PollDataOriginal, type PollDesignBackgroundBackgroundOneOf as PollDesignBackgroundBackgroundOneOfOriginal, type PollDesignBackground as PollDesignBackgroundOriginal, PollDesignBackgroundType as PollDesignBackgroundTypeOriginal, type PollDesignBackgroundTypeWithLiterals as PollDesignBackgroundTypeWithLiteralsOriginal, type PollDesign as PollDesignOriginal, PollLayoutDirection as PollLayoutDirectionOriginal, type PollLayoutDirectionWithLiterals as PollLayoutDirectionWithLiteralsOriginal, type PollLayout as PollLayoutOriginal, PollLayoutType as PollLayoutTypeOriginal, type PollLayoutTypeWithLiterals as PollLayoutTypeWithLiteralsOriginal, type Poll as PollOriginal, type PollSettings as PollSettingsOriginal, Position as PositionOriginal, type PositionWithLiterals as PositionWithLiteralsOriginal, type PreorderInfo as PreorderInfoOriginal, PreorderStatus as PreorderStatusOriginal, type PreorderStatusWithLiterals as PreorderStatusWithLiteralsOriginal, type PriceInfo as PriceInfoOriginal, type PricePerUnit as PricePerUnitOriginal, type PricePerUnitRange as PricePerUnitRangeOriginal, type PricePerUnitRangePricePerUnit as PricePerUnitRangePricePerUnitOriginal, type PricePerUnitSettings as PricePerUnitSettingsOriginal, type PriceRange as PriceRangeOriginal, type PricingData as PricingDataOriginal, type ProductCategoriesInfo as ProductCategoriesInfoOriginal, type ProductCategoryIdsInfo as ProductCategoryIdsInfoOriginal, type ProductCategory as ProductCategoryOriginal, type ProductIdWithRevision as ProductIdWithRevisionOriginal, type ProductMediaMediaOneOf as ProductMediaMediaOneOfOriginal, type ProductMedia as ProductMediaOriginal, type ProductMediaSetByOneOf as ProductMediaSetByOneOfOriginal, ProductOptionRenderType as ProductOptionRenderTypeOriginal, type ProductOptionRenderTypeWithLiterals as ProductOptionRenderTypeWithLiteralsOriginal, type Product as ProductOriginal, ProductPreorderAvailability as ProductPreorderAvailabilityOriginal, type ProductPreorderAvailabilityWithLiterals as ProductPreorderAvailabilityWithLiteralsOriginal, type ProductTagsModified as ProductTagsModifiedOriginal, ProductType as ProductTypeOriginal, type ProductTypeWithLiterals as ProductTypeWithLiteralsOriginal, type ProductVariantIds as ProductVariantIdsOriginal, type ProductVariants as ProductVariantsOriginal, type ProductWithInventoryForMigration as ProductWithInventoryForMigrationOriginal, type ProductWithInventoryForMigrationTypedPropertiesOneOf as ProductWithInventoryForMigrationTypedPropertiesOneOfOriginal, type ProductWithInventory as ProductWithInventoryOriginal, type ProductWithInventoryTypedPropertiesOneOf as ProductWithInventoryTypedPropertiesOneOfOriginal, type PuffUpProductMediaRequest as PuffUpProductMediaRequestOriginal, type PuffUpProductMediaResponse as PuffUpProductMediaResponseOriginal, type PurchaseEligibility as PurchaseEligibilityOriginal, type QueryProductsApplicationErrors as QueryProductsApplicationErrorsOriginal, type QueryProductsRequest as QueryProductsRequestOriginal, type QueryProductsResponse as QueryProductsResponseOriginal, type RangeAggregation as RangeAggregationOriginal, type RangeAggregationRangeBucket as RangeAggregationRangeBucketOriginal, type RangeAggregationResult as RangeAggregationResultOriginal, type RangeBucket as RangeBucketOriginal, type RangeResult as RangeResultOriginal, type RangeResults as RangeResultsOriginal, type RangeResultsRangeAggregationResult as RangeResultsRangeAggregationResultOriginal, type ReconcileStaleCategorySortIndicesRequest as ReconcileStaleCategorySortIndicesRequestOriginal, type ReconcileStaleCategorySortIndicesResponse as ReconcileStaleCategorySortIndicesResponseOriginal, type Rel as RelOriginal, RequestedFields as RequestedFieldsOriginal, type RequestedFieldsWithLiterals as RequestedFieldsWithLiteralsOriginal, Resizing as ResizingOriginal, type ResizingWithLiterals as ResizingWithLiteralsOriginal, ResponsivenessBehaviour as ResponsivenessBehaviourOriginal, type ResponsivenessBehaviourWithLiterals as ResponsivenessBehaviourWithLiteralsOriginal, type RestoreInfo as RestoreInfoOriginal, type Results as ResultsOriginal, type RetrieveVariantsRequest as RetrieveVariantsRequestOriginal, type RetrieveVariantsResponse as RetrieveVariantsResponseOriginal, type RevenueDetails as RevenueDetailsOriginal, type Ribbon as RibbonOriginal, type RibbonStyles as RibbonStylesOriginal, type RichContent as RichContentOriginal, RoundingStrategy as RoundingStrategyOriginal, type RoundingStrategyWithLiterals as RoundingStrategyWithLiteralsOriginal, type ScalarAggregation as ScalarAggregationOriginal, type ScalarResult as ScalarResultOriginal, ScalarType as ScalarTypeOriginal, type ScalarTypeWithLiterals as ScalarTypeWithLiteralsOriginal, Scaling as ScalingOriginal, type ScalingWithLiterals as ScalingWithLiteralsOriginal, SearchDetailsMode as SearchDetailsModeOriginal, type SearchDetailsModeWithLiterals as SearchDetailsModeWithLiteralsOriginal, type SearchDetails as SearchDetailsOriginal, type SearchIndexingNotification as SearchIndexingNotificationOriginal, type SearchProductsApplicationErrors as SearchProductsApplicationErrorsOriginal, type SearchProductsRequest as SearchProductsRequestOriginal, type SearchProductsResponse as SearchProductsResponseOriginal, type SearchRelatedDetails as SearchRelatedDetailsOriginal, type SearchRelated as SearchRelatedOriginal, type SearchRelatedProductsRequest as SearchRelatedProductsRequestOriginal, type SearchRelatedProductsResponse as SearchRelatedProductsResponseOriginal, type SecuredMedia as SecuredMediaOriginal, type SeoSchema as SeoSchemaOriginal, type Settings as SettingsOriginal, type ShapeData as ShapeDataOriginal, type ShapeDataStyles as ShapeDataStylesOriginal, SingleEntityOpsRequestedFields as SingleEntityOpsRequestedFieldsOriginal, type SingleEntityOpsRequestedFieldsWithLiterals as SingleEntityOpsRequestedFieldsWithLiteralsOriginal, type SketchData as SketchDataOriginal, SketchDataVariant as SketchDataVariantOriginal, type SketchDataVariantWithLiterals as SketchDataVariantWithLiteralsOriginal, type SmartBlockCellData as SmartBlockCellDataOriginal, type SmartBlockData as SmartBlockDataOriginal, SmartBlockDataType as SmartBlockDataTypeOriginal, type SmartBlockDataTypeWithLiterals as SmartBlockDataTypeWithLiteralsOriginal, SortDirection as SortDirectionOriginal, type SortDirectionWithLiterals as SortDirectionWithLiteralsOriginal, SortOrder as SortOrderOriginal, type SortOrderWithLiterals as SortOrderWithLiteralsOriginal, SortType as SortTypeOriginal, type SortTypeWithLiterals as SortTypeWithLiteralsOriginal, type Sorting as SortingOriginal, Source as SourceOriginal, type SourceWithLiterals as SourceWithLiteralsOriginal, type SpoilerData as SpoilerDataOriginal, type Spoiler as SpoilerOriginal, State as StateOriginal, type StateWithLiterals as StateWithLiteralsOriginal, type Stop as StopOriginal, type StylesBorder as StylesBorderOriginal, type Styles as StylesOriginal, StylesPosition as StylesPositionOriginal, type StylesPositionWithLiterals as StylesPositionWithLiteralsOriginal, type SubscriptionCyclesOneOf as SubscriptionCyclesOneOfOriginal, type SubscriptionDetails as SubscriptionDetailsOriginal, type SubscriptionDiscountDiscountOneOf as SubscriptionDiscountDiscountOneOfOriginal, type SubscriptionDiscount as SubscriptionDiscountOriginal, SubscriptionFrequency as SubscriptionFrequencyOriginal, type SubscriptionFrequencyWithLiterals as SubscriptionFrequencyWithLiteralsOriginal, type Subscription as SubscriptionOriginal, type SubscriptionPrice as SubscriptionPriceOriginal, type SubscriptionPricePerUnit as SubscriptionPricePerUnitOriginal, type SubscriptionPricesInfo as SubscriptionPricesInfoOriginal, type TableCellData as TableCellDataOriginal, type TableDataDimensions as TableDataDimensionsOriginal, type TableData as TableDataOriginal, type TagList as TagListOriginal, type Tag as TagOriginal, type Tags as TagsOriginal, Target as TargetOriginal, type TargetWithLiterals as TargetWithLiteralsOriginal, TextAlignment as TextAlignmentOriginal, type TextAlignmentWithLiterals as TextAlignmentWithLiteralsOriginal, type TextData as TextDataOriginal, type TextNodeStyle as TextNodeStyleOriginal, type TextStyle as TextStyleOriginal, type Thumbnail as ThumbnailOriginal, ThumbnailsAlignment as ThumbnailsAlignmentOriginal, type ThumbnailsAlignmentWithLiterals as ThumbnailsAlignmentWithLiteralsOriginal, type Thumbnails as ThumbnailsOriginal, type TocData as TocDataOriginal, type TreeReference as TreeReferenceOriginal, Type as TypeOriginal, type TypeWithLiterals as TypeWithLiteralsOriginal, type URI as URIOriginal, type URIs as URIsOriginal, type UnsignedAdjustValueAdjustValueOneOf as UnsignedAdjustValueAdjustValueOneOfOriginal, type UnsignedAdjustValue as UnsignedAdjustValueOriginal, type UnsupportedFieldMasks as UnsupportedFieldMasksOriginal, type UpdateByFilterOperation as UpdateByFilterOperationOriginal, type UpdateDocumentsEventOperationOneOf as UpdateDocumentsEventOperationOneOfOriginal, type UpdateDocumentsEvent as UpdateDocumentsEventOriginal, type UpdateExistingOperation as UpdateExistingOperationOriginal, type UpdateProductApplicationErrors as UpdateProductApplicationErrorsOriginal, type UpdateProductRequest as UpdateProductRequestOriginal, type UpdateProductResponse as UpdateProductResponseOriginal, type UpdateProductValidationErrors as UpdateProductValidationErrorsOriginal, type UpdateProductWithInventoryApplicationErrors as UpdateProductWithInventoryApplicationErrorsOriginal, type UpdateProductWithInventoryRequest as UpdateProductWithInventoryRequestOriginal, type UpdateProductWithInventoryResponse as UpdateProductWithInventoryResponseOriginal, type UpdateProductWithInventoryValidationErrors as UpdateProductWithInventoryValidationErrorsOriginal, UserCriteria as UserCriteriaOriginal, type UserCriteriaWithLiterals as UserCriteriaWithLiteralsOriginal, type V1Media as V1MediaOriginal, type V3AdjustValueAdjustValueOneOf as V3AdjustValueAdjustValueOneOfOriginal, type V3AdjustValue as V3AdjustValueOriginal, type V3Brand as V3BrandOriginal, type V3BulkAddInfoSectionsToProductsByFilterRequest as V3BulkAddInfoSectionsToProductsByFilterRequestOriginal, type V3BulkAddInfoSectionsToProductsByFilterResponse as V3BulkAddInfoSectionsToProductsByFilterResponseOriginal, type V3BulkAddInfoSectionsToProductsRequest as V3BulkAddInfoSectionsToProductsRequestOriginal, type V3BulkAddInfoSectionsToProductsResponse as V3BulkAddInfoSectionsToProductsResponseOriginal, type V3BulkAdjustProductVariantsByFilterRequest as V3BulkAdjustProductVariantsByFilterRequestOriginal, type V3BulkAdjustProductVariantsByFilterResponse as V3BulkAdjustProductVariantsByFilterResponseOriginal, type V3BulkDeleteProductsByFilterRequest as V3BulkDeleteProductsByFilterRequestOriginal, type V3BulkDeleteProductsByFilterResponse as V3BulkDeleteProductsByFilterResponseOriginal, type V3BulkDeleteProductsRequest as V3BulkDeleteProductsRequestOriginal, type V3BulkDeleteProductsResponse as V3BulkDeleteProductsResponseOriginal, type V3BulkProductResult as V3BulkProductResultOriginal, type V3BulkRemoveInfoSectionsFromProductsByFilterRequest as V3BulkRemoveInfoSectionsFromProductsByFilterRequestOriginal, type V3BulkRemoveInfoSectionsFromProductsByFilterResponse as V3BulkRemoveInfoSectionsFromProductsByFilterResponseOriginal, type V3BulkRemoveInfoSectionsFromProductsRequest as V3BulkRemoveInfoSectionsFromProductsRequestOriginal, type V3BulkRemoveInfoSectionsFromProductsResponse as V3BulkRemoveInfoSectionsFromProductsResponseOriginal, type V3BulkUpdateProductTagsByFilterRequest as V3BulkUpdateProductTagsByFilterRequestOriginal, type V3BulkUpdateProductTagsByFilterResponse as V3BulkUpdateProductTagsByFilterResponseOriginal, type V3BulkUpdateProductTagsRequest as V3BulkUpdateProductTagsRequestOriginal, type V3BulkUpdateProductTagsResponse as V3BulkUpdateProductTagsResponseOriginal, type V3BulkUpdateProductsByFilterRequest as V3BulkUpdateProductsByFilterRequestOriginal, type V3BulkUpdateProductsByFilterResponse as V3BulkUpdateProductsByFilterResponseOriginal, type V3CountProductsRequest as V3CountProductsRequestOriginal, type V3CountProductsResponse as V3CountProductsResponseOriginal, type V3DeleteProductRequest as V3DeleteProductRequestOriginal, type V3DeleteProductResponse as V3DeleteProductResponseOriginal, type V3GetProductBySlugRequest as V3GetProductBySlugRequestOriginal, type V3GetProductBySlugResponse as V3GetProductBySlugResponseOriginal, type V3GetProductRequest as V3GetProductRequestOriginal, type V3GetProductResponse as V3GetProductResponseOriginal, type V3MaskedProduct as V3MaskedProductOriginal, type V3OptionChoiceIds as V3OptionChoiceIdsOriginal, type V3OptionChoiceNames as V3OptionChoiceNamesOriginal, type V3ProductIdWithRevision as V3ProductIdWithRevisionOriginal, type V3Product as V3ProductOriginal, type V3ProductTypedPropertiesOneOf as V3ProductTypedPropertiesOneOfOriginal, type V3QueryProductsRequest as V3QueryProductsRequestOriginal, type V3QueryProductsResponse as V3QueryProductsResponseOriginal, type V3SearchProductsRequest as V3SearchProductsRequestOriginal, type V3SearchProductsResponse as V3SearchProductsResponseOriginal, type V3UnsignedAdjustValueAdjustValueOneOf as V3UnsignedAdjustValueAdjustValueOneOfOriginal, type V3UnsignedAdjustValue as V3UnsignedAdjustValueOriginal, type V3VariantsInfo as V3VariantsInfoOriginal, type ValueAggregationIncludeMissingValuesOptions as ValueAggregationIncludeMissingValuesOptionsOriginal, ValueAggregationMissingValues as ValueAggregationMissingValuesOriginal, type ValueAggregationMissingValuesWithLiterals as ValueAggregationMissingValuesWithLiteralsOriginal, type ValueAggregationOptionsOneOf as ValueAggregationOptionsOneOfOriginal, type ValueAggregation as ValueAggregationOriginal, type ValueAggregationResult as ValueAggregationResultOriginal, ValueAggregationSortDirection as ValueAggregationSortDirectionOriginal, type ValueAggregationSortDirectionWithLiterals as ValueAggregationSortDirectionWithLiteralsOriginal, ValueAggregationSortType as ValueAggregationSortTypeOriginal, type ValueAggregationSortTypeWithLiterals as ValueAggregationSortTypeWithLiteralsOriginal, type ValueResult as ValueResultOriginal, type ValueResults as ValueResultsOriginal, type ValueResultsValueAggregationResult as ValueResultsValueAggregationResultOriginal, type VariantDigitalProperties as VariantDigitalPropertiesOriginal, type VariantNotAlignedWithProduct as VariantNotAlignedWithProductOriginal, type Variant as VariantOriginal, type VariantPhysicalProperties as VariantPhysicalPropertiesOriginal, type VariantSummary as VariantSummaryOriginal, type VariantTypedPropertiesOneOf as VariantTypedPropertiesOneOfOriginal, type VariantWithInventoryForMigration as VariantWithInventoryForMigrationOriginal, type VariantWithInventoryForMigrationTypedPropertiesOneOf as VariantWithInventoryForMigrationTypedPropertiesOneOfOriginal, type VariantWithInventory as VariantWithInventoryOriginal, type VariantWithInventoryTypedPropertiesOneOf as VariantWithInventoryTypedPropertiesOneOfOriginal, type VariantsCursorPaging as VariantsCursorPagingOriginal, type VariantsInfoForMigration as VariantsInfoForMigrationOriginal, type VariantsInfo as VariantsInfoOriginal, type VariantsNotAlignedWithProduct as VariantsNotAlignedWithProductOriginal, VariantsOpsRequestedFields as VariantsOpsRequestedFieldsOriginal, type VariantsOpsRequestedFieldsWithLiterals as VariantsOpsRequestedFieldsWithLiteralsOriginal, type VariantsRemoved as VariantsRemovedOriginal, VerticalAlignmentAlignment as VerticalAlignmentAlignmentOriginal, type VerticalAlignmentAlignmentWithLiterals as VerticalAlignmentAlignmentWithLiteralsOriginal, VerticalAlignment as VerticalAlignmentOriginal, type VerticalAlignmentWithLiterals as VerticalAlignmentWithLiteralsOriginal, type VideoData as VideoDataOriginal, type Video as VideoOriginal, type VideoResolution as VideoResolutionOriginal, type VideoV2 as VideoV2Original, ViewMode as ViewModeOriginal, type ViewModeWithLiterals as ViewModeWithLiteralsOriginal, ViewRole as ViewRoleOriginal, type ViewRoleWithLiterals as ViewRoleWithLiteralsOriginal, VoteRole as VoteRoleOriginal, type VoteRoleWithLiterals as VoteRoleWithLiteralsOriginal, WebhookIdentityType as WebhookIdentityTypeOriginal, type WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal, type WeightMeasurementUnitInfo as WeightMeasurementUnitInfoOriginal, type WeightRange as WeightRangeOriginal, WeightUnit as WeightUnitOriginal, type WeightUnitWithLiterals as WeightUnitWithLiteralsOriginal, Width as WidthOriginal, WidthType as WidthTypeOriginal, type WidthTypeWithLiterals as WidthTypeWithLiteralsOriginal, type WidthWithLiterals as WidthWithLiteralsOriginal, type WixCommonAggregationKindOneOf as WixCommonAggregationKindOneOfOriginal, type WixCommonAggregation as WixCommonAggregationOriginal, WixCommonAggregationType as WixCommonAggregationTypeOriginal, type WixCommonAggregationTypeWithLiterals as WixCommonAggregationTypeWithLiteralsOriginal, type WixCommonItemMetadata as WixCommonItemMetadataOriginal, WixCommonScalarType as WixCommonScalarTypeOriginal, type WixCommonScalarTypeWithLiterals as WixCommonScalarTypeWithLiteralsOriginal, type WixCommonSearchDetails as WixCommonSearchDetailsOriginal, WixCommonSortOrder as WixCommonSortOrderOriginal, type WixCommonSortOrderWithLiterals as WixCommonSortOrderWithLiteralsOriginal, type WixCommonSorting as WixCommonSortingOriginal, type __PublicMethodMetaInfo, bulkAddInfoSectionsToProducts, bulkAddInfoSectionsToProductsByFilter, bulkAddProductsToCategoriesByFilter, bulkAdjustProductVariantsByFilter, bulkCreateProducts, bulkCreateProductsWithInventory, bulkDeleteProducts, bulkDeleteProductsByFilter, bulkRemoveInfoSectionsFromProducts, bulkRemoveInfoSectionsFromProductsByFilter, bulkRemoveProductsFromCategoriesByFilter, bulkUpdateProductTags, bulkUpdateProductTagsByFilter, bulkUpdateProductVariantsByFilter, bulkUpdateProducts, bulkUpdateProductsByFilter, bulkUpdateProductsWithInventory, countProducts, createProduct, createProductWithInventory, deleteProduct, getAllProductsCategory, getProduct, getProductBySlug, queryProducts, searchProducts, updateProduct, updateProductWithInventory };