@wix/auto_sdk_stores_products-v-3 1.0.66 → 1.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts","../../src/stores-catalog-v3-product-products-v-3.public.ts","../../src/stores-catalog-v3-product-products-v-3.universal.ts","../../src/stores-catalog-v3-product-products-v-3.http.ts","../../src/stores-catalog-v3-product-products-v-3.context.ts"],"sourcesContent":["export * from './src/stores-catalog-v3-product-products-v-3.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTPageURLV2ToSDKPageURLV2 } from '@wix/sdk-runtime/transformations/page-url-v2';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { transformRESTVideoV2ToSDKVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n BulkAddInfoSectionsToProductsApplicationErrors,\n BulkAddInfoSectionsToProductsByFilterApplicationErrors,\n BulkAddInfoSectionsToProductsByFilterOptions,\n BulkAddInfoSectionsToProductsOptions,\n BulkAddProductsToCategoriesByFilterOptions,\n BulkAddProductsToCategoriesByFilterResponse,\n BulkAdjustProductVariantsByFilterApplicationErrors,\n BulkAdjustProductVariantsByFilterOptions,\n BulkAdjustProductVariantsByFilterValidationErrors,\n BulkCreateProductsApplicationErrors,\n BulkCreateProductsOptions,\n BulkCreateProductsResponse,\n BulkCreateProductsValidationErrors,\n BulkCreateProductsWithInventoryApplicationErrors,\n BulkCreateProductsWithInventoryOptions,\n BulkCreateProductsWithInventoryResponse,\n BulkCreateProductsWithInventoryValidationErrors,\n BulkDeleteProductsByFilterOptions,\n BulkDeleteProductsValidationErrors,\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n BulkRemoveInfoSectionsFromProductsOptions,\n BulkRemoveProductsFromCategoriesByFilterOptions,\n BulkRemoveProductsFromCategoriesByFilterResponse,\n BulkUpdateProductVariantsByFilterApplicationErrors,\n BulkUpdateProductVariantsByFilterOptions,\n BulkUpdateProductVariantsByFilterResponse,\n BulkUpdateProductVariantsByFilterValidationErrors,\n BulkUpdateProductsApplicationErrors,\n BulkUpdateProductsByFilterApplicationErrors,\n BulkUpdateProductsByFilterOptions,\n BulkUpdateProductsByFilterValidationErrors,\n BulkUpdateProductsOptions,\n BulkUpdateProductsResponse,\n BulkUpdateProductsValidationErrors,\n BulkUpdateProductsWithInventoryApplicationErrors,\n BulkUpdateProductsWithInventoryOptions,\n BulkUpdateProductsWithInventoryResponse,\n BulkUpdateProductsWithInventoryValidationErrors,\n CountProductsApplicationErrors,\n CountProductsOptions,\n CreateProductApplicationErrors,\n CreateProductOptions,\n CreateProductValidationErrors,\n CreateProductWithInventoryApplicationErrors,\n CreateProductWithInventoryOptions,\n CreateProductWithInventoryResponse,\n CreateProductWithInventoryValidationErrors,\n GetAllProductsCategoryResponse,\n GetProductApplicationErrors,\n GetProductBySlugApplicationErrors,\n GetProductBySlugOptions,\n GetProductOptions,\n MaskedProductWithInventory,\n ProductCreatedEnvelope,\n ProductDeletedEnvelope,\n ProductUpdatedEnvelope,\n ProductWithInventory,\n ProductsQueryBuilder,\n QueryProductsOptions,\n SearchProductsApplicationErrors,\n SearchProductsOptions,\n UpdateProduct,\n UpdateProductApplicationErrors,\n UpdateProductOptions,\n UpdateProductValidationErrors,\n UpdateProductWithInventoryApplicationErrors,\n UpdateProductWithInventoryOptions,\n UpdateProductWithInventoryProduct,\n UpdateProductWithInventoryResponse,\n UpdateProductWithInventoryValidationErrors,\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n V3BulkAddInfoSectionsToProductsResponse,\n V3BulkAdjustProductVariantsByFilterResponse,\n V3BulkDeleteProductsByFilterResponse,\n V3BulkDeleteProductsResponse,\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n V3BulkRemoveInfoSectionsFromProductsResponse,\n V3BulkUpdateProductsByFilterResponse,\n V3CountProductsResponse,\n V3GetProductBySlugResponse,\n V3MaskedProduct,\n V3Product,\n V3ProductIdWithRevision,\n V3ProductSearch,\n V3SearchProductsResponse,\n bulkAddInfoSectionsToProducts as universalBulkAddInfoSectionsToProducts,\n bulkAddInfoSectionsToProductsByFilter as universalBulkAddInfoSectionsToProductsByFilter,\n bulkAddProductsToCategoriesByFilter as universalBulkAddProductsToCategoriesByFilter,\n bulkAdjustProductVariantsByFilter as universalBulkAdjustProductVariantsByFilter,\n bulkCreateProducts as universalBulkCreateProducts,\n bulkCreateProductsWithInventory as universalBulkCreateProductsWithInventory,\n bulkDeleteProducts as universalBulkDeleteProducts,\n bulkDeleteProductsByFilter as universalBulkDeleteProductsByFilter,\n bulkRemoveInfoSectionsFromProducts as universalBulkRemoveInfoSectionsFromProducts,\n bulkRemoveInfoSectionsFromProductsByFilter as universalBulkRemoveInfoSectionsFromProductsByFilter,\n bulkRemoveProductsFromCategoriesByFilter as universalBulkRemoveProductsFromCategoriesByFilter,\n bulkUpdateProductVariantsByFilter as universalBulkUpdateProductVariantsByFilter,\n bulkUpdateProducts as universalBulkUpdateProducts,\n bulkUpdateProductsByFilter as universalBulkUpdateProductsByFilter,\n bulkUpdateProductsWithInventory as universalBulkUpdateProductsWithInventory,\n countProducts as universalCountProducts,\n createProduct as universalCreateProduct,\n createProductWithInventory as universalCreateProductWithInventory,\n deleteProduct as universalDeleteProduct,\n getAllProductsCategory as universalGetAllProductsCategory,\n getProduct as universalGetProduct,\n getProductBySlug as universalGetProductBySlug,\n queryProducts as universalQueryProducts,\n searchProducts as universalSearchProducts,\n updateProduct as universalUpdateProduct,\n updateProductWithInventory as universalUpdateProductWithInventory,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/stores' };\n\nexport function createProduct(httpClient: HttpClient): CreateProductSignature {\n return (\n product: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductOptions\n ) =>\n universalCreateProduct(\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateProductSignature {\n /**\n * Creates a new product.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param - Product to create.\n *\n * At least 1 variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n * @returns Created product.\n */\n (\n product: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductOptions\n ): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: CreateProductApplicationErrors;\n __validationErrorsType?: CreateProductValidationErrors;\n }\n >;\n}\n\nexport function createProductWithInventory(\n httpClient: HttpClient\n): CreateProductWithInventorySignature {\n return (\n product: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductWithInventoryOptions\n ) =>\n universalCreateProductWithInventory(\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateProductWithInventorySignature {\n /**\n * Creates a new product, and can create the product's inventory in the variants' default locations.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param - Product to create with inventory.\n *\n * At least one variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n */\n (\n product: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n CreateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: CreateProductWithInventoryApplicationErrors;\n __validationErrorsType?: CreateProductWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function updateProduct(httpClient: HttpClient): UpdateProductSignature {\n return (\n _id: string,\n product: NonNullablePaths<\n UpdateProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductOptions\n ) =>\n universalUpdateProduct(\n _id,\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateProductSignature {\n /**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants and options are mutually dependant and must be aligned.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * > + Updating media per variant is not supported. Instead, assign media items to product option choices using the `linkedMedia` field. You must use preexisting product media.\n * @param - Product ID.\n * @returns Updated product.\n */\n (\n _id: string,\n product: NonNullablePaths<\n UpdateProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductOptions\n ): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: UpdateProductApplicationErrors;\n __validationErrorsType?: UpdateProductValidationErrors;\n }\n >;\n}\n\nexport function updateProductWithInventory(\n httpClient: HttpClient\n): UpdateProductWithInventorySignature {\n return (\n _id: string,\n product: NonNullablePaths<\n UpdateProductWithInventoryProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductWithInventoryOptions\n ) =>\n universalUpdateProductWithInventory(\n _id,\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateProductWithInventorySignature {\n /**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants depend on options, and options depend on variants.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * @param - Product ID.\n */\n (\n _id: string,\n product: NonNullablePaths<\n UpdateProductWithInventoryProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n UpdateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: UpdateProductWithInventoryApplicationErrors;\n __validationErrorsType?: UpdateProductWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function bulkCreateProducts(\n httpClient: HttpClient\n): BulkCreateProductsSignature {\n return (\n products: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsOptions\n ) =>\n universalBulkCreateProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateProductsSignature {\n /**\n * Creates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to create.\n */\n (\n products: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsOptions\n ): Promise<\n NonNullablePaths<\n BulkCreateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateProductsApplicationErrors;\n __validationErrorsType?: BulkCreateProductsValidationErrors;\n }\n >;\n}\n\nexport function bulkCreateProductsWithInventory(\n httpClient: HttpClient\n): BulkCreateProductsWithInventorySignature {\n return (\n products: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsWithInventoryOptions\n ) =>\n universalBulkCreateProductsWithInventory(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateProductsWithInventorySignature {\n /**\n * Creates up to 100 products, and can create the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to create with inventory.\n */\n (\n products: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n BulkCreateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkCreateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkCreateProductsWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProducts(\n httpClient: HttpClient\n): BulkUpdateProductsSignature {\n return (\n products: NonNullablePaths<\n V3MaskedProduct,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsOptions\n ) =>\n universalBulkUpdateProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductsSignature {\n /**\n * Updates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to update.\n */\n (\n products: NonNullablePaths<\n V3MaskedProduct,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsOptions\n ): Promise<\n NonNullablePaths<\n BulkUpdateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateProductsApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsValidationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProductsWithInventory(\n httpClient: HttpClient\n): BulkUpdateProductsWithInventorySignature {\n return (\n products: NonNullablePaths<\n MaskedProductWithInventory,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsWithInventoryOptions\n ) =>\n universalBulkUpdateProductsWithInventory(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductsWithInventorySignature {\n /**\n * Updates up to 100 products, and can update the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to update.\n */\n (\n products: NonNullablePaths<\n MaskedProductWithInventory,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n BulkUpdateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkUpdateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProductsByFilter(\n httpClient: HttpClient\n): BulkUpdateProductsByFilterSignature {\n return (\n options?: NonNullablePaths<\n BulkUpdateProductsByFilterOptions,\n | `product`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`,\n 7\n >\n ) =>\n universalBulkUpdateProductsByFilter(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductsByFilterSignature {\n /**\n * Updates multiple products, given the provided filter.\n *\n * To update `infoSections`, `brand` or `ribbon` fields, you must also pass their existing `id`.\n *\n * > **Note:**\n * > The following fields cannot be updated with this endpoint:\n * > + `slug`\n * > + `options`\n * > + `modifiers`\n * > + `variantsInfo`\n * >\n * > To update these fields, use [Bulk Update Products](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/bulk-update-products).\n */\n (\n options?: NonNullablePaths<\n BulkUpdateProductsByFilterOptions,\n | `product`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`,\n 7\n >\n ): Promise<\n NonNullablePaths<V3BulkUpdateProductsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsByFilterValidationErrors;\n }\n >;\n}\n\nexport function deleteProduct(httpClient: HttpClient): DeleteProductSignature {\n return (productId: string) =>\n universalDeleteProduct(\n productId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteProductSignature {\n /**\n * Deletes a product and all its variants.\n * @param - Product ID.\n */\n (productId: string): Promise<void>;\n}\n\nexport function bulkDeleteProducts(\n httpClient: HttpClient\n): BulkDeleteProductsSignature {\n return (productIds: string[]) =>\n universalBulkDeleteProducts(\n productIds,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkDeleteProductsSignature {\n /**\n * Deletes multiple products.\n * @param - IDs of products to delete.\n */\n (productIds: string[]): Promise<\n NonNullablePaths<\n V3BulkDeleteProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __validationErrorsType?: BulkDeleteProductsValidationErrors;\n }\n >;\n}\n\nexport function bulkDeleteProductsByFilter(\n httpClient: HttpClient\n): BulkDeleteProductsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkDeleteProductsByFilterOptions\n ) =>\n universalBulkDeleteProductsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkDeleteProductsByFilterSignature {\n /**\n * Delete multiple products, given the provided filter.\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: BulkDeleteProductsByFilterOptions\n ): Promise<\n NonNullablePaths<V3BulkDeleteProductsByFilterResponse, `jobId`, 2>\n >;\n}\n\nexport function getProduct(httpClient: HttpClient): GetProductSignature {\n return (productId: string, options?: GetProductOptions) =>\n universalGetProduct(\n productId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetProductSignature {\n /**\n * Retrieves a product.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param - Product ID.\n * @returns Product.\n */\n (productId: string, options?: GetProductOptions): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: GetProductApplicationErrors;\n }\n >;\n}\n\nexport function getProductBySlug(\n httpClient: HttpClient\n): GetProductBySlugSignature {\n return (slug: string, options?: GetProductBySlugOptions) =>\n universalGetProductBySlug(\n slug,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetProductBySlugSignature {\n /**\n * Retrieves a product by slug.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param - Product slug.\n */\n (slug: string, options?: GetProductBySlugOptions): Promise<\n NonNullablePaths<\n V3GetProductBySlugResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`,\n 8\n > & {\n __applicationErrorsType?: GetProductBySlugApplicationErrors;\n }\n >;\n}\n\nexport function searchProducts(\n httpClient: HttpClient\n): SearchProductsSignature {\n return (search: V3ProductSearch, options?: SearchProductsOptions) =>\n universalSearchProducts(\n search,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface SearchProductsSignature {\n /**\n * Retrieves a list of up to 100 products, given the provided filtering, search expression, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param - Search options.\n */\n (search: V3ProductSearch, options?: SearchProductsOptions): Promise<\n NonNullablePaths<\n V3SearchProductsResponse,\n | `products`\n | `products.${number}.physicalProperties.pricePerUnit.quantity`\n | `products.${number}.physicalProperties.pricePerUnit.measurementUnit`\n | `products.${number}.physicalProperties.shippingWeightRange.minValue`\n | `products.${number}.physicalProperties.shippingWeightRange.maxValue`\n | `products.${number}.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `products.${number}.media.main._id`\n | `products.${number}.media.main.url`\n | `products.${number}.media.main.mediaType`\n | `products.${number}.media.main.uploadId`\n | `products.${number}.seoData.settings.preventAutoRedirect`\n | `products.${number}.costRange.minValue.amount`\n | `products.${number}.inventory.availabilityStatus`\n | `products.${number}.inventory.preorderStatus`\n | `products.${number}.inventory.preorderAvailability`\n | `products.${number}.productType`\n | `products.${number}.variantSummary.variantCount`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n > & {\n __applicationErrorsType?: SearchProductsApplicationErrors;\n }\n >;\n}\n\nexport function queryProducts(httpClient: HttpClient): QueryProductsSignature {\n return (options?: QueryProductsOptions) =>\n universalQueryProducts(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryProductsSignature {\n /**\n * Retrieves a list of up to 100 products, given the provided filtering, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n (options?: QueryProductsOptions): ProductsQueryBuilder;\n}\n\nexport function countProducts(httpClient: HttpClient): CountProductsSignature {\n return (options?: CountProductsOptions) =>\n universalCountProducts(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CountProductsSignature {\n /**\n * Counts the number of products that match the provided filtering.\n */\n (options?: CountProductsOptions): Promise<\n NonNullablePaths<V3CountProductsResponse, `count`, 2> & {\n __applicationErrorsType?: CountProductsApplicationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProductVariantsByFilter(\n httpClient: HttpClient\n): BulkUpdateProductVariantsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkUpdateProductVariantsByFilterOptions,\n `variant`,\n 2\n >\n ) =>\n universalBulkUpdateProductVariantsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductVariantsByFilterSignature {\n /**\n * Updates a variant of multiple products, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be updated:\n * + `visible`\n * + `price`\n * + `revenueDetails.cost`\n * + `physicalOptions`\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkUpdateProductVariantsByFilterOptions,\n `variant`,\n 2\n >\n ): Promise<\n NonNullablePaths<BulkUpdateProductVariantsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductVariantsByFilterValidationErrors;\n }\n >;\n}\n\nexport function bulkAdjustProductVariantsByFilter(\n httpClient: HttpClient\n): BulkAdjustProductVariantsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkAdjustProductVariantsByFilterOptions\n ) =>\n universalBulkAdjustProductVariantsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAdjustProductVariantsByFilterSignature {\n /**\n * Adjusts the price and cost of multiple variants, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be increased/decreased by amount or percentage:\n * + `compareAtPrice`\n * + `actualPrice`\n * + `cost`\n * + `compareAtPriceDiscount`\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: BulkAdjustProductVariantsByFilterOptions\n ): Promise<\n NonNullablePaths<\n V3BulkAdjustProductVariantsByFilterResponse,\n `jobId`,\n 2\n > & {\n __applicationErrorsType?: BulkAdjustProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkAdjustProductVariantsByFilterValidationErrors;\n }\n >;\n}\n\nexport function bulkAddInfoSectionsToProductsByFilter(\n httpClient: HttpClient\n): BulkAddInfoSectionsToProductsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkAddInfoSectionsToProductsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAddInfoSectionsToProductsByFilterSignature {\n /**\n * Adds info sections to multiple products, given the provided filter and search expression.\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n `jobId`,\n 2\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsByFilterApplicationErrors;\n }\n >;\n}\n\nexport function bulkAddInfoSectionsToProducts(\n httpClient: HttpClient\n): BulkAddInfoSectionsToProductsSignature {\n return (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkAddInfoSectionsToProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAddInfoSectionsToProductsSignature {\n /**\n * Adds info sections to multiple products.\n * @param - List of product IDs and revisions.\n */\n (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsApplicationErrors;\n }\n >;\n}\n\nexport function bulkRemoveInfoSectionsFromProductsByFilter(\n httpClient: HttpClient\n): BulkRemoveInfoSectionsFromProductsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkRemoveInfoSectionsFromProductsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkRemoveInfoSectionsFromProductsByFilterSignature {\n /**\n * Removes info sections from multiple products, given the provided filter and search expression.\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n `jobId`,\n 2\n >\n >;\n}\n\nexport function bulkRemoveInfoSectionsFromProducts(\n httpClient: HttpClient\n): BulkRemoveInfoSectionsFromProductsSignature {\n return (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkRemoveInfoSectionsFromProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkRemoveInfoSectionsFromProductsSignature {\n /**\n * Removes info sections from multiple products.\n * @param - List of product IDs and revisions.\n */\n (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n >\n >;\n}\n\nexport function bulkAddProductsToCategoriesByFilter(\n httpClient: HttpClient\n): BulkAddProductsToCategoriesByFilterSignature {\n return (\n options?: NonNullablePaths<\n BulkAddProductsToCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ) =>\n universalBulkAddProductsToCategoriesByFilter(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAddProductsToCategoriesByFilterSignature {\n /**\n * Adds multiple products, given the provided filter and search expression, to up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\n (\n options?: NonNullablePaths<\n BulkAddProductsToCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<BulkAddProductsToCategoriesByFilterResponse, `jobId`, 2>\n >;\n}\n\nexport function bulkRemoveProductsFromCategoriesByFilter(\n httpClient: HttpClient\n): BulkRemoveProductsFromCategoriesByFilterSignature {\n return (\n options?: NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ) =>\n universalBulkRemoveProductsFromCategoriesByFilter(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkRemoveProductsFromCategoriesByFilterSignature {\n /**\n * Removes multiple products, given the provided filter and search expression, from up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\n (\n options?: NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterResponse,\n `jobId`,\n 2\n >\n >;\n}\n\nexport function getAllProductsCategory(\n httpClient: HttpClient\n): GetAllProductsCategorySignature {\n return () =>\n universalGetAllProductsCategory(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetAllProductsCategorySignature {\n /**\n * Retrieves the id of \"All Products\" category which is automatically assigned to all products.\n */\n (): Promise<\n NonNullablePaths<\n GetAllProductsCategoryResponse,\n `categoryId` | `treeReference.appNamespace`,\n 3\n >\n >;\n}\n\nexport const onProductCreated = EventDefinition(\n 'wix.stores.catalog.v3.product_created',\n true,\n (event: ProductCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.description.metadata.createdTimestamp' },\n { path: 'entity.description.metadata.updatedTimestamp' },\n {\n path: 'entity.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'entity.infoSections.description.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'entity.url' }],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.physicalProperties.pricePerUnit.quantity' },\n { path: 'entity.physicalProperties.shippingWeightRange.minValue' },\n { path: 'entity.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'entity.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'entity.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'entity.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'entity.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'entity.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'entity.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'entity.description.nodes.galleryData.options.item.ratio' },\n { path: 'entity.description.nodes.imageData.image.duration' },\n { path: 'entity.description.nodes.mapData.mapSettings.lat' },\n { path: 'entity.description.nodes.mapData.mapSettings.lng' },\n { path: 'entity.description.nodes.pollData.poll.image.duration' },\n {\n path: 'entity.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'entity.description.nodes.appEmbedData.image.duration' },\n { path: 'entity.description.nodes.videoData.video.duration' },\n { path: 'entity.description.nodes.videoData.thumbnail.duration' },\n { path: 'entity.description.nodes.audioData.audio.duration' },\n { path: 'entity.description.nodes.audioData.coverImage.duration' },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'entity.variantsInfo.variants.physicalProperties.weight' },\n { path: 'entity.minVariantPriceInfo.weight' },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.media.main.image' },\n { path: 'entity.media.itemsInfo.items.image' },\n { path: 'entity.options.choicesSettings.choices.image' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.modifiers.choicesSettings.choices.image' },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.media.main.video' },\n { path: 'entity.media.itemsInfo.items.video' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'entity.variantsInfo.variants.media.video' },\n ],\n },\n ])\n )\n)<ProductCreatedEnvelope>();\nexport const onProductDeleted = EventDefinition(\n 'wix.stores.catalog.v3.product_deleted',\n true,\n (event: ProductDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.description.metadata.createdTimestamp' },\n { path: 'entity.description.metadata.updatedTimestamp' },\n {\n path: 'entity.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'entity.infoSections.description.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'entity.url' }],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.physicalProperties.pricePerUnit.quantity' },\n { path: 'entity.physicalProperties.shippingWeightRange.minValue' },\n { path: 'entity.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'entity.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'entity.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'entity.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'entity.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'entity.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'entity.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'entity.description.nodes.galleryData.options.item.ratio' },\n { path: 'entity.description.nodes.imageData.image.duration' },\n { path: 'entity.description.nodes.mapData.mapSettings.lat' },\n { path: 'entity.description.nodes.mapData.mapSettings.lng' },\n { path: 'entity.description.nodes.pollData.poll.image.duration' },\n {\n path: 'entity.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'entity.description.nodes.appEmbedData.image.duration' },\n { path: 'entity.description.nodes.videoData.video.duration' },\n { path: 'entity.description.nodes.videoData.thumbnail.duration' },\n { path: 'entity.description.nodes.audioData.audio.duration' },\n { path: 'entity.description.nodes.audioData.coverImage.duration' },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'entity.variantsInfo.variants.physicalProperties.weight' },\n { path: 'entity.minVariantPriceInfo.weight' },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.media.main.image' },\n { path: 'entity.media.itemsInfo.items.image' },\n { path: 'entity.options.choicesSettings.choices.image' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.modifiers.choicesSettings.choices.image' },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.media.main.video' },\n { path: 'entity.media.itemsInfo.items.video' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'entity.variantsInfo.variants.media.video' },\n ],\n },\n ])\n )\n)<ProductDeletedEnvelope>();\nexport const onProductUpdated = EventDefinition(\n 'wix.stores.catalog.v3.product_updated',\n true,\n (event: ProductUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.description.metadata.createdTimestamp' },\n { path: 'entity.description.metadata.updatedTimestamp' },\n {\n path: 'entity.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'entity.infoSections.description.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'entity.url' }],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.physicalProperties.pricePerUnit.quantity' },\n { path: 'entity.physicalProperties.shippingWeightRange.minValue' },\n { path: 'entity.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'entity.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'entity.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'entity.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'entity.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'entity.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'entity.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'entity.description.nodes.galleryData.options.item.ratio' },\n { path: 'entity.description.nodes.imageData.image.duration' },\n { path: 'entity.description.nodes.mapData.mapSettings.lat' },\n { path: 'entity.description.nodes.mapData.mapSettings.lng' },\n { path: 'entity.description.nodes.pollData.poll.image.duration' },\n {\n path: 'entity.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'entity.description.nodes.appEmbedData.image.duration' },\n { path: 'entity.description.nodes.videoData.video.duration' },\n { path: 'entity.description.nodes.videoData.thumbnail.duration' },\n { path: 'entity.description.nodes.audioData.audio.duration' },\n { path: 'entity.description.nodes.audioData.coverImage.duration' },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'entity.variantsInfo.variants.physicalProperties.weight' },\n { path: 'entity.minVariantPriceInfo.weight' },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.media.main.image' },\n { path: 'entity.media.itemsInfo.items.image' },\n { path: 'entity.options.choicesSettings.choices.image' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.modifiers.choicesSettings.choices.image' },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.media.main.video' },\n { path: 'entity.media.itemsInfo.items.video' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'entity.variantsInfo.variants.media.video' },\n ],\n },\n ])\n )\n)<ProductUpdatedEnvelope>();\n\nexport {\n ActionEvent,\n AdjustValue,\n AdjustValueAdjustValueOneOf,\n Aggregation,\n AggregationData,\n AggregationDataAggregationResults,\n AggregationDataAggregationResultsResultOneOf,\n AggregationDataAggregationResultsScalarResult,\n AggregationDateHistogramAggregation,\n AggregationDateHistogramAggregationInterval,\n AggregationKindOneOf,\n AggregationNestedAggregation,\n AggregationNestedAggregationNestedAggregationItem,\n AggregationNestedAggregationNestedAggregationItemKindOneOf,\n AggregationNestedAggregationNestedAggregationType,\n AggregationRangeAggregation,\n AggregationRangeAggregationRangeBucket,\n AggregationResults,\n AggregationResultsDateHistogramResults,\n AggregationResultsGroupByValueResults,\n AggregationResultsNestedAggregationResults,\n AggregationResultsNestedAggregationResultsResultOneOf,\n AggregationResultsNestedResults,\n AggregationResultsRangeResults,\n AggregationResultsResultOneOf,\n AggregationResultsScalarResult,\n AggregationResultsValueResults,\n AggregationScalarAggregation,\n AggregationType,\n AggregationValueAggregation,\n AggregationValueAggregationIncludeMissingValuesOptions,\n AggregationValueAggregationMissingValues,\n AggregationValueAggregationOptionsOneOf,\n AggregationValueAggregationSortDirection,\n AggregationValueAggregationSortType,\n Alignment,\n AnchorData,\n App,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n AppType,\n ApplicationError,\n AspectRatio,\n AudioData,\n AvailabilityStatus,\n Background,\n BackgroundBackgroundOneOf,\n BackgroundType,\n BaseEventMetadata,\n BlockquoteData,\n BookingData,\n Border,\n BorderColors,\n Brand,\n BreadCrumb,\n BreadcrumbsInfo,\n BulkActionMetadata,\n BulkAddInfoSectionsToProductsByFilterOptions,\n BulkAddInfoSectionsToProductsByFilterRequest,\n BulkAddInfoSectionsToProductsByFilterResponse,\n BulkAddInfoSectionsToProductsOptions,\n BulkAddInfoSectionsToProductsRequest,\n BulkAddInfoSectionsToProductsResponse,\n BulkAddProductsToBatchRequest,\n BulkAddProductsToBatchResponse,\n BulkAddProductsToCategoriesByFilterOptions,\n BulkAddProductsToCategoriesByFilterRequest,\n BulkAddProductsToCategoriesByFilterResponse,\n BulkAdjustProductVariantsByFilterOptions,\n BulkAdjustProductVariantsByFilterRequest,\n BulkAdjustProductVariantsByFilterRequestRoundingStrategy,\n BulkAdjustProductVariantsByFilterResponse,\n BulkCreateProductsOptions,\n BulkCreateProductsRequest,\n BulkCreateProductsResponse,\n BulkCreateProductsWithInventoryOptions,\n BulkCreateProductsWithInventoryRequest,\n BulkCreateProductsWithInventoryResponse,\n BulkDeleteProductsByFilterOptions,\n BulkDeleteProductsByFilterRequest,\n BulkDeleteProductsByFilterResponse,\n BulkDeleteProductsRequest,\n BulkDeleteProductsResponse,\n BulkDeleteProductsResponseBulkProductResult,\n BulkInventoryItemAction,\n BulkInventoryItemResult,\n BulkInventoryItemResults,\n BulkItemResult,\n BulkProductResult,\n BulkProductResults,\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n BulkRemoveInfoSectionsFromProductsByFilterRequest,\n BulkRemoveInfoSectionsFromProductsByFilterResponse,\n BulkRemoveInfoSectionsFromProductsOptions,\n BulkRemoveInfoSectionsFromProductsRequest,\n BulkRemoveInfoSectionsFromProductsResponse,\n BulkRemoveProductsFromCategoriesByFilterOptions,\n BulkRemoveProductsFromCategoriesByFilterRequest,\n BulkRemoveProductsFromCategoriesByFilterResponse,\n BulkUpdateProductVariantsByFilterOptions,\n BulkUpdateProductVariantsByFilterRequest,\n BulkUpdateProductVariantsByFilterResponse,\n BulkUpdateProductsByFilterOptions,\n BulkUpdateProductsByFilterRequest,\n BulkUpdateProductsByFilterResponse,\n BulkUpdateProductsOptions,\n BulkUpdateProductsRequest,\n BulkUpdateProductsResponse,\n BulkUpdateProductsWithInventoryOptions,\n BulkUpdateProductsWithInventoryRequest,\n BulkUpdateProductsWithInventoryResponse,\n BulkUpdateVariantsByFilterRequest,\n BulkUpdateVariantsByFilterResponse,\n BulletedListData,\n ButtonData,\n ButtonDataType,\n ButtonStyles,\n CalculateProductInventorPreorderStatusAsyncRequest,\n CalculateProductInventorPreorderStatusAsyncResponse,\n CaptionData,\n CardStyles,\n CatalogV3BulkProductResult,\n CellStyle,\n ChoiceType,\n ChoicesSettings,\n CodeBlockData,\n CollapsibleListData,\n ColorData,\n Colors,\n CommonAggregation,\n CommonAggregationData,\n CommonAggregationDateHistogramAggregation,\n CommonAggregationKindOneOf,\n CommonAggregationNestedAggregation,\n CommonAggregationRangeAggregation,\n CommonAggregationScalarAggregation,\n CommonAggregationType,\n CommonAggregationValueAggregation,\n CommonAggregationValueAggregationOptionsOneOf,\n CommonBulkActionMetadata,\n CommonCursorPaging,\n CommonCursorPagingMetadata,\n CommonCursorQuery,\n CommonCursorQueryPagingMethodOneOf,\n CommonCursorSearch,\n CommonCursorSearchPagingMethodOneOf,\n CommonCursors,\n CommonItemMetadata,\n CommonScalarType,\n CommonSearchDetails,\n CommonSearchDetailsMode,\n CommonSortOrder,\n CommonSorting,\n ConnectedModifier,\n ConnectedModifierChoice,\n ConnectedModifierChoiceValueOneOf,\n ConnectedModifierModifierSettingsOneOf,\n ConnectedOption,\n ConnectedOptionChoice,\n ConnectedOptionChoiceValueOneOf,\n ConnectedOptionOptionSettingsOneOf,\n CountProductsOptions,\n CountProductsRequest,\n CountProductsResponse,\n CreateBatchRequest,\n CreateBatchResponse,\n CreateProductOptions,\n CreateProductRequest,\n CreateProductResponse,\n CreateProductWithInventoryOptions,\n CreateProductWithInventoryRequest,\n CreateProductWithInventoryResponse,\n Crop,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Cursors,\n CustomTag,\n DateHistogramAggregation,\n DateHistogramAggregationInterval,\n DateHistogramResult,\n DateHistogramResults,\n DateHistogramResultsDateHistogramResult,\n Decoration,\n DecorationDataOneOf,\n DecorationType,\n DeleteByFilterOperation,\n DeleteByIdsOperation,\n DeleteProductRequest,\n DeleteProductResponse,\n DeprecatedSearchProductsWithOffsetRequest,\n DeprecatedSearchProductsWithOffsetResponse,\n Design,\n Dimensions,\n Direction,\n DiscountType,\n DividerData,\n DividerDataAlignment,\n DoNotCallBulkCreateProductsRequest,\n DoNotCallBulkCreateProductsResponse,\n DoNotCallBulkUpdateProductsRequest,\n DoNotCallBulkUpdateProductsResponse,\n DoNotCallCreateProductRequest,\n DoNotCallCreateProductResponse,\n DoNotCallUpdateProductRequest,\n DoNotCallUpdateProductResponse,\n DocumentImage,\n DocumentPayload,\n DocumentStyle,\n DocumentUpdateOperation,\n DomainEvent,\n DomainEventBodyOneOf,\n DuplicateMediaIdAssignedToProduct,\n EmbedData,\n Empty,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n Enum,\n EventData,\n EventMetadata,\n EventType,\n EventuallyConsistentQueryProductsRequest,\n EventuallyConsistentQueryProductsResponse,\n ExtendedFields,\n File,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n FileType,\n FixedMonetaryAmount,\n FontSizeData,\n FontType,\n FreeTextSettings,\n FulfillerDeleted,\n GIF,\n GIFData,\n GIFType,\n GalleryData,\n GalleryOptions,\n GalleryOptionsLayout,\n GetAllProductsCategoryRequest,\n GetAllProductsCategoryResponse,\n GetProductBySlugOptions,\n GetProductBySlugRequest,\n GetProductBySlugResponse,\n GetProductOptions,\n GetProductRequest,\n GetProductResponse,\n Gradient,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n GroupByValueResults,\n GroupByValueResultsNestedValueAggregationResult,\n HTMLData,\n HTMLDataDataOneOf,\n HeadingData,\n Height,\n IdentificationData,\n IdentificationDataIdOneOf,\n Image,\n ImageData,\n ImageDataStyles,\n ImageStyles,\n IncludeMissingValuesOptions,\n IndexDocument,\n InfoSection,\n InitialExpandedItems,\n Interval,\n InvalidDigitalFileIds,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n Inventory,\n InventoryAvailabilityStatus,\n InventoryItem,\n InventoryItemComposite,\n InventoryItemCompositeTrackingMethodOneOf,\n InventoryItemTrackingMethodOneOf,\n InventoryStatus,\n Item,\n ItemDataOneOf,\n ItemMetadata,\n ItemStyle,\n Keyword,\n Layout,\n LayoutCellData,\n LayoutType,\n LineStyle,\n Link,\n LinkData,\n LinkDataOneOf,\n LinkPreviewData,\n LinkPreviewDataStyles,\n ListValue,\n MapData,\n MapSettings,\n MapType,\n MaskedProduct,\n MaskedProductWithInventory,\n MeasurementUnit,\n Media,\n MediaItemsInfo,\n MediaType,\n MentionData,\n MessageEnvelope,\n Metadata,\n MinVariantPriceInfo,\n MissingValues,\n Mode,\n ModifierChoicesSettings,\n ModifierRenderType,\n MultipleColors,\n NestedAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregationNestedAggregationItem,\n NestedAggregationNestedAggregationItemKindOneOf,\n NestedAggregationNestedAggregationType,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n NestedAggregationType,\n NestedResultValue,\n NestedResultValueResultOneOf,\n NestedResults,\n NestedResultsNestedResultValue,\n NestedResultsNestedResultValueResultOneOf,\n NestedResultsRangeResult,\n NestedResultsResults,\n NestedResultsScalarResult,\n NestedResultsValueResult,\n NestedValueAggregationResult,\n Node,\n NodeDataOneOf,\n NodeStyle,\n NodeType,\n NullValue,\n Oembed,\n Option,\n OptionChoice,\n OptionChoiceIds,\n OptionChoiceNames,\n OptionChoiceReferences,\n OptionDesign,\n OptionLayout,\n OrderedListData,\n Orientation,\n PDFSettings,\n Page,\n PagingMetadata,\n ParagraphData,\n Permissions,\n PhysicalProperties,\n Placement,\n PlatformOffsetSearch,\n PlatformOffsetSearchPagingMethodOneOf,\n PlatformPaging,\n PlaybackOptions,\n PluginContainerData,\n PluginContainerDataAlignment,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Poll,\n PollData,\n PollDataLayout,\n PollDesign,\n PollLayout,\n PollLayoutDirection,\n PollLayoutType,\n PollSettings,\n Position,\n PreorderInfo,\n PreorderStatus,\n PriceInfo,\n PricePerUnit,\n PricePerUnitRange,\n PricePerUnitRangePricePerUnit,\n PricePerUnitSettings,\n PriceRange,\n PricingData,\n Product,\n ProductCategoriesInfo,\n ProductCategory,\n ProductCategoryIdsInfo,\n ProductCreatedEnvelope,\n ProductDeletedEnvelope,\n ProductIdWithRevision,\n ProductItem,\n ProductMedia,\n ProductMediaMediaOneOf,\n ProductMediaSetByOneOf,\n ProductOptionRenderType,\n ProductPreorderAvailability,\n ProductType,\n ProductUpdatedEnvelope,\n ProductVariantIds,\n ProductVariants,\n ProductWithInventory,\n ProductWithInventoryTypedPropertiesOneOf,\n ProductsQueryBuilder,\n ProductsQueryResult,\n QueryProductsOptions,\n QueryProductsRequest,\n QueryProductsResponse,\n RangeAggregation,\n RangeAggregationRangeBucket,\n RangeAggregationResult,\n RangeBucket,\n RangeResult,\n RangeResults,\n RangeResultsRangeAggregationResult,\n Rel,\n RequestedFields,\n Resizing,\n RestoreInfo,\n Results,\n RetrieveVariantsRequest,\n RetrieveVariantsResponse,\n RevenueDetails,\n Ribbon,\n RibbonStyles,\n RichContent,\n RoundingStrategy,\n ScalarAggregation,\n ScalarResult,\n ScalarType,\n SearchDetails,\n SearchDetailsMode,\n SearchIndexingNotification,\n SearchProductsOptions,\n SearchProductsRequest,\n SearchProductsResponse,\n SearchRelated,\n SearchRelatedDetails,\n SearchRelatedProductsRequest,\n SearchRelatedProductsResponse,\n SecuredMedia,\n SeoSchema,\n Settings,\n SingleEntityOpsRequestedFields,\n SortDirection,\n SortOrder,\n SortType,\n Sorting,\n Source,\n Spoiler,\n SpoilerData,\n State,\n Styles,\n StylesBorder,\n StylesPosition,\n SubmitBatchRequest,\n SubmitBatchResponse,\n Subscription,\n SubscriptionCyclesOneOf,\n SubscriptionDetails,\n SubscriptionDiscount,\n SubscriptionDiscountDiscountOneOf,\n SubscriptionFrequency,\n SubscriptionPrice,\n SubscriptionPricePerUnit,\n SubscriptionPricesInfo,\n TableCellData,\n TableData,\n Tag,\n Target,\n TextAlignment,\n TextData,\n TextNodeStyle,\n TextStyle,\n Thumbnail,\n Thumbnails,\n ThumbnailsAlignment,\n TreeReference,\n Type,\n URI,\n UnsignedAdjustValue,\n UnsignedAdjustValueAdjustValueOneOf,\n UnsupportedFieldMasks,\n UpdateByFilterOperation,\n UpdateDocumentsEvent,\n UpdateDocumentsEventOperationOneOf,\n UpdateExistingOperation,\n UpdateProduct,\n UpdateProductOptions,\n UpdateProductRequest,\n UpdateProductResponse,\n UpdateProductWithInventoryOptions,\n UpdateProductWithInventoryProduct,\n UpdateProductWithInventoryRequest,\n UpdateProductWithInventoryResponse,\n UpstreamWixCommonItemMetadata,\n V1Media,\n V3AdjustValue,\n V3AdjustValueAdjustValueOneOf,\n V3BulkAddInfoSectionsToProductsByFilterRequest,\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n V3BulkAddInfoSectionsToProductsRequest,\n V3BulkAddInfoSectionsToProductsResponse,\n V3BulkAdjustProductVariantsByFilterRequest,\n V3BulkAdjustProductVariantsByFilterResponse,\n V3BulkDeleteProductsByFilterRequest,\n V3BulkDeleteProductsByFilterResponse,\n V3BulkDeleteProductsRequest,\n V3BulkDeleteProductsResponse,\n V3BulkProductResult,\n V3BulkRemoveInfoSectionsFromProductsByFilterRequest,\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n V3BulkRemoveInfoSectionsFromProductsRequest,\n V3BulkRemoveInfoSectionsFromProductsResponse,\n V3BulkUpdateProductsByFilterRequest,\n V3BulkUpdateProductsByFilterResponse,\n V3CountProductsRequest,\n V3CountProductsResponse,\n V3DeleteProductRequest,\n V3DeleteProductResponse,\n V3GetProductBySlugRequest,\n V3GetProductBySlugResponse,\n V3GetProductRequest,\n V3GetProductResponse,\n V3MaskedProduct,\n V3OptionChoiceIds,\n V3OptionChoiceNames,\n V3Product,\n V3ProductCategoryIdsInfo,\n V3ProductIdWithRevision,\n V3ProductSearchSpec,\n V3ProductTypedPropertiesOneOf,\n V3QueryProductsRequest,\n V3QueryProductsResponse,\n V3SearchProductsRequest,\n V3SearchProductsResponse,\n V3UnsignedAdjustValue,\n V3UnsignedAdjustValueAdjustValueOneOf,\n V3VariantsInfo,\n ValueAggregation,\n ValueAggregationIncludeMissingValuesOptions,\n ValueAggregationMissingValues,\n ValueAggregationOptionsOneOf,\n ValueAggregationResult,\n ValueAggregationSortDirection,\n ValueAggregationSortType,\n ValueResult,\n ValueResults,\n ValueResultsValueAggregationResult,\n Variant,\n VariantDigitalProperties,\n VariantNotAlignedWithProduct,\n VariantPhysicalProperties,\n VariantSummary,\n VariantTypedPropertiesOneOf,\n VariantWithInventory,\n VariantWithInventoryTypedPropertiesOneOf,\n VariantsCursorPaging,\n VariantsInfo,\n VariantsNotAlignedWithProduct,\n VariantsOpsRequestedFields,\n VariantsRemoved,\n VerticalAlignment,\n Video,\n VideoData,\n VideoResolution,\n ViewMode,\n ViewRole,\n VoteRole,\n WebhookIdentityType,\n WeightMeasurementUnitInfo,\n WeightRange,\n WeightUnit,\n Width,\n WidthType,\n WixCommonAggregation,\n WixCommonAggregationKindOneOf,\n WixCommonAggregationType,\n WixCommonBulkActionMetadata,\n WixCommonItemMetadata,\n WixCommonScalarType,\n WixCommonSearchDetails,\n WixCommonSortOrder,\n WixCommonSorting,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n HttpClient,\n HttpResponse,\n Search as SearchSdkType,\n NonNullablePaths,\n SearchSpec,\n} from '@wix/sdk-types';\nimport * as ambassadorWixStoresCatalogV3Product from './stores-catalog-v3-product-products-v-3.http.js';\n// @ts-ignore\nimport { transformSDKImageToRESTImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformSDKVideoV2ToRESTVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { transformRESTVideoV2ToSDKVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { transformSDKPageURLV2ToRESTPageURLV2 } from '@wix/sdk-runtime/transformations/page-url-v2';\nimport { transformRESTPageURLV2ToSDKPageURLV2 } from '@wix/sdk-runtime/transformations/page-url-v2';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\n\nexport interface V3Product extends V3ProductTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the product was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the product was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Product name. Translatable.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * URL to the site's product page.\n *\n * > **Note:** Returned only when you pass `\"URL\"` to the `fields` array in Products API requests.\n * @readonly\n */\n url?: string;\n /**\n * Product description using rich content.\n * > **Note:** Returned only when you pass `\"DESCRIPTION\"` to the `fields` array in Products API requests.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" plugins=\"indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor\" exampleid=\"7dc9240e-d548-417a-abcf-0291b68b4303\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n */\n description?: RichContent;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows the customer to customize the product. For example, selecting color, size, and more.\n *\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * Product modifiers.\n *\n * Allows the customer to customize product, e.g. select Color, Size and so on similarly to `options` but with one main difference - `modifiers` never generate any variants.\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * List of categories that directly contain this product.\n *\n * 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.\n * > **Note:** Returned only when you pass `\"DIRECT_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n directCategoriesInfo?: ProductCategoriesInfo;\n /**\n * List of categories that directly contain this product, as well as their parent categories.\n * > **Note:** Returned only when you pass `\"ALL_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n allCategoriesInfo?: ProductCategoriesInfo;\n /**\n * 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\".\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product cost range - minimum and maximum costs of all product variants.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @readonly\n */\n costRange?: PriceRange;\n /**\n * Product inventory info.\n * @readonly\n */\n inventory?: Inventory;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /**\n * 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.\n *\n * Defaults to the currency defined in the site settings, unless specified in `x-wix-currency` header.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @format CURRENCY\n * @readonly\n */\n currency?: string | null;\n /**\n * Breadcrumbs of the `mainCategoryId`. Used to navigate to parent categories.\n * > **Note:** Returned only when you pass `\"BREADCRUMBS_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n breadcrumbsInfo?: BreadcrumbsInfo;\n /**\n * Product actualPrice range - minimum and maximum prices of all product variants.\n * @readonly\n */\n actualPriceRange?: PriceRange;\n /**\n * Product compareAtPrice range - minimum and maximum compare at prices of all product variants.\n * @readonly\n */\n compareAtPriceRange?: PriceRange;\n /**\n * Product variants. Each variant must reference all product options via its `choices` array.\n * Each choice references an option using `optionChoiceNames` for all requests.\n */\n variantsInfo?: VariantsInfo;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the app dashboard before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n /** Product subscriptions. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * The total number of variants for the product.\n * @readonly\n */\n variantSummary?: VariantSummary;\n}\n\n/** @oneof */\nexport interface V3ProductTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n}\n\nexport interface RichContent {\n /** Node objects representing a rich content document. */\n nodes?: Node[];\n /** Object metadata. */\n metadata?: Metadata;\n /** Global styling for header, paragraph, block quote, and code block nodes in the object. */\n documentStyle?: DocumentStyle;\n}\n\nexport interface Node extends NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */\n layoutCellData?: LayoutCellData;\n /** 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. */\n type?: NodeTypeWithLiterals;\n /** Node ID. */\n id?: string;\n /** A list of child nodes. */\n nodes?: Node[];\n /** Padding and background color styling for the node. */\n style?: NodeStyle;\n}\n\n/** @oneof */\nexport interface NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */\n layoutCellData?: LayoutCellData;\n}\n\nexport enum NodeType {\n PARAGRAPH = 'PARAGRAPH',\n TEXT = 'TEXT',\n HEADING = 'HEADING',\n BULLETED_LIST = 'BULLETED_LIST',\n ORDERED_LIST = 'ORDERED_LIST',\n LIST_ITEM = 'LIST_ITEM',\n BLOCKQUOTE = 'BLOCKQUOTE',\n CODE_BLOCK = 'CODE_BLOCK',\n VIDEO = 'VIDEO',\n DIVIDER = 'DIVIDER',\n FILE = 'FILE',\n GALLERY = 'GALLERY',\n GIF = 'GIF',\n HTML = 'HTML',\n IMAGE = 'IMAGE',\n LINK_PREVIEW = 'LINK_PREVIEW',\n /** @deprecated */\n MAP = 'MAP',\n POLL = 'POLL',\n APP_EMBED = 'APP_EMBED',\n BUTTON = 'BUTTON',\n COLLAPSIBLE_LIST = 'COLLAPSIBLE_LIST',\n TABLE = 'TABLE',\n EMBED = 'EMBED',\n COLLAPSIBLE_ITEM = 'COLLAPSIBLE_ITEM',\n COLLAPSIBLE_ITEM_TITLE = 'COLLAPSIBLE_ITEM_TITLE',\n COLLAPSIBLE_ITEM_BODY = 'COLLAPSIBLE_ITEM_BODY',\n TABLE_CELL = 'TABLE_CELL',\n TABLE_ROW = 'TABLE_ROW',\n EXTERNAL = 'EXTERNAL',\n AUDIO = 'AUDIO',\n CAPTION = 'CAPTION',\n LAYOUT = 'LAYOUT',\n LAYOUT_CELL = 'LAYOUT_CELL',\n}\n\n/** @enumType */\nexport type NodeTypeWithLiterals =\n | NodeType\n | 'PARAGRAPH'\n | 'TEXT'\n | 'HEADING'\n | 'BULLETED_LIST'\n | 'ORDERED_LIST'\n | 'LIST_ITEM'\n | 'BLOCKQUOTE'\n | 'CODE_BLOCK'\n | 'VIDEO'\n | 'DIVIDER'\n | 'FILE'\n | 'GALLERY'\n | 'GIF'\n | 'HTML'\n | 'IMAGE'\n | 'LINK_PREVIEW'\n | 'MAP'\n | 'POLL'\n | 'APP_EMBED'\n | 'BUTTON'\n | 'COLLAPSIBLE_LIST'\n | 'TABLE'\n | 'EMBED'\n | 'COLLAPSIBLE_ITEM'\n | 'COLLAPSIBLE_ITEM_TITLE'\n | 'COLLAPSIBLE_ITEM_BODY'\n | 'TABLE_CELL'\n | 'TABLE_ROW'\n | 'EXTERNAL'\n | 'AUDIO'\n | 'CAPTION'\n | 'LAYOUT'\n | 'LAYOUT_CELL';\n\nexport interface NodeStyle {\n /** The top padding value in pixels. */\n paddingTop?: string | null;\n /** The bottom padding value in pixels. */\n paddingBottom?: string | null;\n /** The background color as a hexadecimal value. */\n backgroundColor?: string | null;\n}\n\nexport interface ButtonData {\n /** Styling for the button's container. */\n containerData?: PluginContainerData;\n /** The button type. */\n type?: ButtonDataTypeWithLiterals;\n /** Styling for the button. */\n styles?: Styles;\n /** The text to display on the button. */\n text?: string | null;\n /** Button link details. */\n link?: Link;\n}\n\nexport interface Border {\n /**\n * Deprecated: Use `borderWidth` in `styles` instead.\n * @deprecated\n */\n width?: number | null;\n /**\n * Deprecated: Use `borderRadius` in `styles` instead.\n * @deprecated\n */\n radius?: number | null;\n}\n\nexport interface Colors {\n /**\n * Deprecated: Use `textColor` in `styles` instead.\n * @deprecated\n */\n text?: string | null;\n /**\n * Deprecated: Use `borderColor` in `styles` instead.\n * @deprecated\n */\n border?: string | null;\n /**\n * Deprecated: Use `backgroundColor` in `styles` instead.\n * @deprecated\n */\n background?: string | null;\n}\n\nexport interface PluginContainerData {\n /** The width of the node when it's displayed. */\n width?: PluginContainerDataWidth;\n /** The node's alignment within its container. */\n alignment?: PluginContainerDataAlignmentWithLiterals;\n /** Spoiler cover settings for the node. */\n spoiler?: Spoiler;\n /** The height of the node when it's displayed. */\n height?: Height;\n /** 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`. */\n textWrap?: boolean | null;\n}\n\nexport enum WidthType {\n /** Width matches the content width */\n CONTENT = 'CONTENT',\n /** Small Width */\n SMALL = 'SMALL',\n /** Width will match the original asset width */\n ORIGINAL = 'ORIGINAL',\n /** coast-to-coast display */\n FULL_WIDTH = 'FULL_WIDTH',\n}\n\n/** @enumType */\nexport type WidthTypeWithLiterals =\n | WidthType\n | 'CONTENT'\n | 'SMALL'\n | 'ORIGINAL'\n | 'FULL_WIDTH';\n\nexport interface PluginContainerDataWidth\n extends PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\n/** @oneof */\nexport interface PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\nexport enum PluginContainerDataAlignment {\n /** Center Alignment */\n CENTER = 'CENTER',\n /** Left Alignment */\n LEFT = 'LEFT',\n /** Right Alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type PluginContainerDataAlignmentWithLiterals =\n | PluginContainerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface Spoiler {\n /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */\n enabled?: boolean | null;\n /** The description displayed on top of the spoiler cover. */\n description?: string | null;\n /** The text for the button used to remove the spoiler cover. */\n buttonText?: string | null;\n}\n\nexport interface Height {\n /** A custom height value in pixels. */\n custom?: string | null;\n}\n\nexport enum ButtonDataType {\n /** Regular link button */\n LINK = 'LINK',\n /** Triggers custom action that is defined in plugin configuration by the consumer */\n ACTION = 'ACTION',\n}\n\n/** @enumType */\nexport type ButtonDataTypeWithLiterals = ButtonDataType | 'LINK' | 'ACTION';\n\nexport interface Styles {\n /**\n * Deprecated: Use `borderWidth` and `borderRadius` instead.\n * @deprecated\n */\n border?: Border;\n /**\n * Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead.\n * @deprecated\n */\n colors?: Colors;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /**\n * Deprecated: Use `borderWidth` for normal/hover states instead.\n * @deprecated\n */\n borderWidthHover?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface Link extends LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n /**\n * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:\n * `SELF` - Default. Opens the linked document in the same frame as the link.\n * `BLANK` - Opens the linked document in a new browser tab or window.\n * `PARENT` - Opens the linked document in the link's parent frame.\n * `TOP` - Opens the linked document in the full body of the link's browser tab or window.\n */\n target?: TargetWithLiterals;\n /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */\n rel?: Rel;\n /** A serialized object used for a custom or external link panel. */\n customData?: string | null;\n}\n\n/** @oneof */\nexport interface LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n}\n\nexport enum Target {\n /** Opens the linked document in the same frame as it was clicked (this is default) */\n SELF = 'SELF',\n /** Opens the linked document in a new window or tab */\n BLANK = 'BLANK',\n /** Opens the linked document in the parent frame */\n PARENT = 'PARENT',\n /** Opens the linked document in the full body of the window */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type TargetWithLiterals = Target | 'SELF' | 'BLANK' | 'PARENT' | 'TOP';\n\nexport interface Rel {\n /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */\n nofollow?: boolean | null;\n /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */\n sponsored?: boolean | null;\n /** 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`. */\n ugc?: boolean | null;\n /** Indicates that this link protect referral information from being passed to the target website. */\n noreferrer?: boolean | null;\n}\n\nexport interface CodeBlockData {\n /** Styling for the code block's text. */\n textStyle?: TextStyle;\n}\n\nexport interface TextStyle {\n /** Text alignment. Defaults to `AUTO`. */\n textAlignment?: TextAlignmentWithLiterals;\n /** 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. */\n lineHeight?: string | null;\n}\n\nexport enum TextAlignment {\n /** browser default, eqivalent to `initial` */\n AUTO = 'AUTO',\n /** Left align */\n LEFT = 'LEFT',\n /** Right align */\n RIGHT = 'RIGHT',\n /** Center align */\n CENTER = 'CENTER',\n /** 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 */\n JUSTIFY = 'JUSTIFY',\n}\n\n/** @enumType */\nexport type TextAlignmentWithLiterals =\n | TextAlignment\n | 'AUTO'\n | 'LEFT'\n | 'RIGHT'\n | 'CENTER'\n | 'JUSTIFY';\n\nexport interface DividerData {\n /** Styling for the divider's container. */\n containerData?: PluginContainerData;\n /** Divider line style. */\n lineStyle?: LineStyleWithLiterals;\n /** Divider width. */\n width?: WidthWithLiterals;\n /** Divider alignment. */\n alignment?: DividerDataAlignmentWithLiterals;\n}\n\nexport enum LineStyle {\n /** Single Line */\n SINGLE = 'SINGLE',\n /** Double Line */\n DOUBLE = 'DOUBLE',\n /** Dashed Line */\n DASHED = 'DASHED',\n /** Dotted Line */\n DOTTED = 'DOTTED',\n}\n\n/** @enumType */\nexport type LineStyleWithLiterals =\n | LineStyle\n | 'SINGLE'\n | 'DOUBLE'\n | 'DASHED'\n | 'DOTTED';\n\nexport enum Width {\n /** Large line */\n LARGE = 'LARGE',\n /** Medium line */\n MEDIUM = 'MEDIUM',\n /** Small line */\n SMALL = 'SMALL',\n}\n\n/** @enumType */\nexport type WidthWithLiterals = Width | 'LARGE' | 'MEDIUM' | 'SMALL';\n\nexport enum DividerDataAlignment {\n /** Center alignment */\n CENTER = 'CENTER',\n /** Left alignment */\n LEFT = 'LEFT',\n /** Right alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type DividerDataAlignmentWithLiterals =\n | DividerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface FileData {\n /** Styling for the file's container. */\n containerData?: PluginContainerData;\n /** The source for the file's data. */\n src?: FileSource;\n /** File name. */\n name?: string | null;\n /** File type. */\n type?: string | null;\n /**\n * Use `sizeInKb` instead.\n * @deprecated\n */\n size?: number | null;\n /** Settings for PDF files. */\n pdfSettings?: PDFSettings;\n /** File MIME type. */\n mimeType?: string | null;\n /** File path. */\n path?: string | null;\n /** File size in KB. */\n sizeInKb?: string | null;\n}\n\nexport enum ViewMode {\n /** No PDF view */\n NONE = 'NONE',\n /** Full PDF view */\n FULL = 'FULL',\n /** Mini PDF view */\n MINI = 'MINI',\n}\n\n/** @enumType */\nexport type ViewModeWithLiterals = ViewMode | 'NONE' | 'FULL' | 'MINI';\n\nexport interface FileSource extends FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n /** Indicates whether the file's source is private. Defaults to `false`. */\n private?: boolean | null;\n}\n\n/** @oneof */\nexport interface FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n}\n\nexport interface PDFSettings {\n /**\n * PDF view mode. One of the following:\n * `NONE` : The PDF isn't displayed.\n * `FULL` : A full page view of the PDF is displayed.\n * `MINI` : A mini view of the PDF is displayed.\n */\n viewMode?: ViewModeWithLiterals;\n /** Sets whether the PDF download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the PDF print button is disabled. Defaults to `false`. */\n disablePrint?: boolean | null;\n}\n\nexport interface GalleryData {\n /** Styling for the gallery's container. */\n containerData?: PluginContainerData;\n /** The items in the gallery. */\n items?: Item[];\n /** Options for defining the gallery's appearance. */\n options?: GalleryOptions;\n /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Sets whether the gallery's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n}\n\nexport interface V1Media {\n /** The source for the media's data. */\n src?: FileSource;\n /** Media width in pixels. */\n width?: number | null;\n /** Media height in pixels. */\n height?: number | null;\n /** Media duration in seconds. Only relevant for audio and video files. */\n duration?: number | null;\n}\n\nexport interface Image {\n /** Image file details. */\n media?: V1Media;\n /** Link details for images that are links. */\n link?: Link;\n}\n\nexport interface Video {\n /** Video file details. */\n media?: V1Media;\n /** Video thumbnail file details. */\n thumbnail?: V1Media;\n}\n\nexport interface Item extends ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n /** Item title. */\n title?: string | null;\n /** Item's alternative text. */\n altText?: string | null;\n}\n\n/** @oneof */\nexport interface ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n}\n\nexport interface GalleryOptions {\n /** Gallery layout. */\n layout?: GalleryOptionsLayout;\n /** Styling for gallery items. */\n item?: ItemStyle;\n /** Styling for gallery thumbnail images. */\n thumbnails?: Thumbnails;\n}\n\nexport enum LayoutType {\n /** Collage type */\n COLLAGE = 'COLLAGE',\n /** Masonry type */\n MASONRY = 'MASONRY',\n /** Grid type */\n GRID = 'GRID',\n /** Thumbnail type */\n THUMBNAIL = 'THUMBNAIL',\n /** Slider type */\n SLIDER = 'SLIDER',\n /** Slideshow type */\n SLIDESHOW = 'SLIDESHOW',\n /** Panorama type */\n PANORAMA = 'PANORAMA',\n /** Column type */\n COLUMN = 'COLUMN',\n /** Magic type */\n MAGIC = 'MAGIC',\n /** Fullsize images type */\n FULLSIZE = 'FULLSIZE',\n}\n\n/** @enumType */\nexport type LayoutTypeWithLiterals =\n | LayoutType\n | 'COLLAGE'\n | 'MASONRY'\n | 'GRID'\n | 'THUMBNAIL'\n | 'SLIDER'\n | 'SLIDESHOW'\n | 'PANORAMA'\n | 'COLUMN'\n | 'MAGIC'\n | 'FULLSIZE';\n\nexport enum Orientation {\n /** Rows Orientation */\n ROWS = 'ROWS',\n /** Columns Orientation */\n COLUMNS = 'COLUMNS',\n}\n\n/** @enumType */\nexport type OrientationWithLiterals = Orientation | 'ROWS' | 'COLUMNS';\n\nexport enum Crop {\n /** Crop to fill */\n FILL = 'FILL',\n /** Crop to fit */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type CropWithLiterals = Crop | 'FILL' | 'FIT';\n\nexport enum ThumbnailsAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Right alignment */\n RIGHT = 'RIGHT',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n /** Left alignment */\n LEFT = 'LEFT',\n /** No thumbnail */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type ThumbnailsAlignmentWithLiterals =\n | ThumbnailsAlignment\n | 'TOP'\n | 'RIGHT'\n | 'BOTTOM'\n | 'LEFT'\n | 'NONE';\n\nexport interface GalleryOptionsLayout {\n /** Gallery layout type. */\n type?: LayoutTypeWithLiterals;\n /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */\n horizontalScroll?: boolean | null;\n /** Gallery orientation. */\n orientation?: OrientationWithLiterals;\n /** The number of columns to display on full size screens. */\n numberOfColumns?: number | null;\n /** The number of columns to display on mobile screens. */\n mobileNumberOfColumns?: number | null;\n}\n\nexport interface ItemStyle {\n /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */\n targetSize?: number | null;\n /** Item ratio */\n ratio?: number | null;\n /** Sets how item images are cropped. */\n crop?: CropWithLiterals;\n /** The spacing between items in pixels. */\n spacing?: number | null;\n}\n\nexport interface Thumbnails {\n /** Thumbnail alignment. */\n placement?: ThumbnailsAlignmentWithLiterals;\n /** Spacing between thumbnails in pixels. */\n spacing?: number | null;\n}\n\nexport interface GIFData {\n /** Styling for the GIF's container. */\n containerData?: PluginContainerData;\n /** The source of the full size GIF. */\n original?: GIF;\n /** The source of the downsized GIF. */\n downsized?: GIF;\n /** Height in pixels. */\n height?: number;\n /** Width in pixels. */\n width?: number;\n /** Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. */\n gifType?: GIFTypeWithLiterals;\n}\n\nexport interface GIF {\n /**\n * GIF format URL.\n * @format WEB_URL\n */\n gif?: string | null;\n /**\n * MP4 format URL.\n * @format WEB_URL\n */\n mp4?: string | null;\n /**\n * Thumbnail URL.\n * @format WEB_URL\n */\n still?: string | null;\n}\n\nexport enum GIFType {\n NORMAL = 'NORMAL',\n STICKER = 'STICKER',\n}\n\n/** @enumType */\nexport type GIFTypeWithLiterals = GIFType | 'NORMAL' | 'STICKER';\n\nexport interface HeadingData {\n /** Heading level from 1-6. */\n level?: number;\n /** Styling for the heading text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n}\n\nexport interface HTMLData extends HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n /** Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. */\n containerData?: PluginContainerData;\n /** The type of HTML code. */\n source?: SourceWithLiterals;\n /** If container height is aligned with its content height. Defaults to `true`. */\n autoHeight?: boolean | null;\n}\n\n/** @oneof */\nexport interface HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n}\n\nexport enum Source {\n HTML = 'HTML',\n ADSENSE = 'ADSENSE',\n}\n\n/** @enumType */\nexport type SourceWithLiterals = Source | 'HTML' | 'ADSENSE';\n\nexport interface ImageData {\n /** Styling for the image's container. */\n containerData?: PluginContainerData;\n /** Image file details. */\n image?: V1Media;\n /** Link details for images that are links. */\n link?: Link;\n /** Sets whether the image expands to full screen when clicked. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Image's alternative text. */\n altText?: string | null;\n /**\n * Deprecated: use Caption node instead.\n * @deprecated\n */\n caption?: string | null;\n /** Sets whether the image's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the image is decorative and does not need an explanation. Defaults to `false`. */\n decorative?: boolean | null;\n /** Styling for the image. */\n styles?: ImageDataStyles;\n}\n\nexport interface StylesBorder {\n /** Border width in pixels. */\n width?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** Border radius in pixels. */\n radius?: number | null;\n}\n\nexport interface ImageDataStyles {\n /** Border attributes. */\n border?: StylesBorder;\n}\n\nexport interface LinkPreviewData {\n /** Styling for the link preview's container. */\n containerData?: PluginContainerData;\n /** Link details. */\n link?: Link;\n /** Preview title. */\n title?: string | null;\n /** Preview thumbnail URL. */\n thumbnailUrl?: string | null;\n /** Preview description. */\n description?: string | null;\n /** The preview content as HTML. */\n html?: string | null;\n /** Styling for the link preview. */\n styles?: LinkPreviewDataStyles;\n}\n\nexport enum StylesPosition {\n /** Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Thumbnail positioned at the top */\n TOP = 'TOP',\n /** Thumbnail hidden and not displayed */\n HIDDEN = 'HIDDEN',\n}\n\n/** @enumType */\nexport type StylesPositionWithLiterals =\n | StylesPosition\n | 'START'\n | 'END'\n | 'TOP'\n | 'HIDDEN';\n\nexport interface LinkPreviewDataStyles {\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Title color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Subtitle color as a hexadecimal value.\n * @format COLOR_HEX\n */\n subtitleColor?: string | null;\n /**\n * Link color as a hexadecimal value.\n * @format COLOR_HEX\n */\n linkColor?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Position of thumbnail. Defaults to `START`. */\n thumbnailPosition?: StylesPositionWithLiterals;\n}\n\nexport interface MapData {\n /** Styling for the map's container. */\n containerData?: PluginContainerData;\n /** Map settings. */\n mapSettings?: MapSettings;\n}\n\nexport interface MapSettings {\n /** The address to display on the map. */\n address?: string | null;\n /** Sets whether the map is draggable. */\n draggable?: boolean | null;\n /** Sets whether the location marker is visible. */\n marker?: boolean | null;\n /** Sets whether street view control is enabled. */\n streetViewControl?: boolean | null;\n /** Sets whether zoom control is enabled. */\n zoomControl?: boolean | null;\n /** Location latitude. */\n lat?: number | null;\n /** Location longitude. */\n lng?: number | null;\n /** Location name. */\n locationName?: string | null;\n /** Sets whether view mode control is enabled. */\n viewModeControl?: boolean | null;\n /** Initial zoom value. */\n initialZoom?: number | null;\n /** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */\n mapType?: MapTypeWithLiterals;\n}\n\nexport enum MapType {\n /** Roadmap map type */\n ROADMAP = 'ROADMAP',\n /** Satellite map type */\n SATELITE = 'SATELITE',\n /** Hybrid map type */\n HYBRID = 'HYBRID',\n /** Terrain map type */\n TERRAIN = 'TERRAIN',\n}\n\n/** @enumType */\nexport type MapTypeWithLiterals =\n | MapType\n | 'ROADMAP'\n | 'SATELITE'\n | 'HYBRID'\n | 'TERRAIN';\n\nexport interface ParagraphData {\n /** Styling for the paragraph text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n /** Paragraph level */\n level?: number | null;\n}\n\nexport interface PollData {\n /** Styling for the poll's container. */\n containerData?: PluginContainerData;\n /** Poll data. */\n poll?: Poll;\n /** Layout settings for the poll and voting options. */\n layout?: PollDataLayout;\n /** Styling for the poll and voting options. */\n design?: Design;\n}\n\nexport enum ViewRole {\n /** Only Poll creator can view the results */\n CREATOR = 'CREATOR',\n /** Anyone who voted can see the results */\n VOTERS = 'VOTERS',\n /** Anyone can see the results, even if one didn't vote */\n EVERYONE = 'EVERYONE',\n}\n\n/** @enumType */\nexport type ViewRoleWithLiterals = ViewRole | 'CREATOR' | 'VOTERS' | 'EVERYONE';\n\nexport enum VoteRole {\n /** Logged in member */\n SITE_MEMBERS = 'SITE_MEMBERS',\n /** Anyone */\n ALL = 'ALL',\n}\n\n/** @enumType */\nexport type VoteRoleWithLiterals = VoteRole | 'SITE_MEMBERS' | 'ALL';\n\nexport interface Permissions {\n /** Sets who can view the poll results. */\n view?: ViewRoleWithLiterals;\n /** Sets who can vote. */\n vote?: VoteRoleWithLiterals;\n /** Sets whether one voter can vote multiple times. Defaults to `false`. */\n allowMultipleVotes?: boolean | null;\n}\n\nexport interface Option {\n /** Option ID. */\n id?: string | null;\n /** Option title. */\n title?: string | null;\n /** The image displayed with the option. */\n image?: V1Media;\n}\n\nexport interface PollSettings {\n /** Permissions settings for voting. */\n permissions?: Permissions;\n /** Sets whether voters are displayed in the vote results. Defaults to `true`. */\n showVoters?: boolean | null;\n /** Sets whether the vote count is displayed. Defaults to `true`. */\n showVotesCount?: boolean | null;\n}\n\nexport enum PollLayoutType {\n /** List */\n LIST = 'LIST',\n /** Grid */\n GRID = 'GRID',\n}\n\n/** @enumType */\nexport type PollLayoutTypeWithLiterals = PollLayoutType | 'LIST' | 'GRID';\n\nexport enum PollLayoutDirection {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type PollLayoutDirectionWithLiterals =\n | PollLayoutDirection\n | 'LTR'\n | 'RTL';\n\nexport interface PollLayout {\n /** The layout for displaying the voting options. */\n type?: PollLayoutTypeWithLiterals;\n /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */\n direction?: PollLayoutDirectionWithLiterals;\n /** Sets whether to display the main poll image. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport interface OptionLayout {\n /** Sets whether to display option images. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport enum BackgroundType {\n /** Color background type */\n COLOR = 'COLOR',\n /** Image background type */\n IMAGE = 'IMAGE',\n /** Gradiant background type */\n GRADIENT = 'GRADIENT',\n}\n\n/** @enumType */\nexport type BackgroundTypeWithLiterals =\n | BackgroundType\n | 'COLOR'\n | 'IMAGE'\n | 'GRADIENT';\n\nexport interface Gradient {\n /** The gradient angle in degrees. */\n angle?: number | null;\n /**\n * The start color as a hexademical value.\n * @format COLOR_HEX\n */\n startColor?: string | null;\n /**\n * The end color as a hexademical value.\n * @format COLOR_HEX\n */\n lastColor?: string | null;\n}\n\nexport interface Background extends BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: V1Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n /** Background type. For each option, include the relevant details. */\n type?: BackgroundTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: V1Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n}\n\nexport interface PollDesign {\n /** Background styling. */\n background?: Background;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface OptionDesign {\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface Poll {\n /** Poll ID. */\n id?: string | null;\n /** Poll title. */\n title?: string | null;\n /** Poll creator ID. */\n creatorId?: string | null;\n /** Main poll image. */\n image?: V1Media;\n /** Voting options. */\n options?: Option[];\n /** The poll's permissions and display settings. */\n settings?: PollSettings;\n}\n\nexport interface PollDataLayout {\n /** Poll layout settings. */\n poll?: PollLayout;\n /** Voting otpions layout settings. */\n options?: OptionLayout;\n}\n\nexport interface Design {\n /** Styling for the poll. */\n poll?: PollDesign;\n /** Styling for voting options. */\n options?: OptionDesign;\n}\n\nexport interface TextData {\n /** The text to apply decorations to. */\n text?: string;\n /** The decorations to apply. */\n decorations?: Decoration[];\n}\n\n/** Adds appearence changes to text */\nexport interface Decoration extends DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n /** The type of decoration to apply. */\n type?: DecorationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n}\n\nexport enum DecorationType {\n BOLD = 'BOLD',\n ITALIC = 'ITALIC',\n UNDERLINE = 'UNDERLINE',\n SPOILER = 'SPOILER',\n ANCHOR = 'ANCHOR',\n MENTION = 'MENTION',\n LINK = 'LINK',\n COLOR = 'COLOR',\n FONT_SIZE = 'FONT_SIZE',\n EXTERNAL = 'EXTERNAL',\n STRIKETHROUGH = 'STRIKETHROUGH',\n SUPERSCRIPT = 'SUPERSCRIPT',\n SUBSCRIPT = 'SUBSCRIPT',\n}\n\n/** @enumType */\nexport type DecorationTypeWithLiterals =\n | DecorationType\n | 'BOLD'\n | 'ITALIC'\n | 'UNDERLINE'\n | 'SPOILER'\n | 'ANCHOR'\n | 'MENTION'\n | 'LINK'\n | 'COLOR'\n | 'FONT_SIZE'\n | 'EXTERNAL'\n | 'STRIKETHROUGH'\n | 'SUPERSCRIPT'\n | 'SUBSCRIPT';\n\nexport interface AnchorData {\n /** The target node's ID. */\n anchor?: string;\n}\n\nexport interface ColorData {\n /** The text's background color as a hexadecimal value. */\n background?: string | null;\n /** The text's foreground color as a hexadecimal value. */\n foreground?: string | null;\n}\n\nexport interface LinkData {\n /** Link details. */\n link?: Link;\n}\n\nexport interface MentionData {\n /** The mentioned user's name. */\n name?: string;\n /** The version of the user's name that appears after the `@` character in the mention. */\n slug?: string;\n /** Mentioned user's ID. */\n id?: string | null;\n}\n\nexport interface FontSizeData {\n /** The units used for the font size. */\n unit?: FontTypeWithLiterals;\n /** Font size value. */\n value?: number | null;\n}\n\nexport enum FontType {\n PX = 'PX',\n EM = 'EM',\n}\n\n/** @enumType */\nexport type FontTypeWithLiterals = FontType | 'PX' | 'EM';\n\nexport interface SpoilerData {\n /** Spoiler ID. */\n id?: string | null;\n}\n\nexport interface AppEmbedData extends AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n /** The type of Wix App content being embedded. */\n type?: AppTypeWithLiterals;\n /** The ID of the embedded content. */\n itemId?: string | null;\n /** The name of the embedded content. */\n name?: string | null;\n /**\n * Deprecated: Use `image` instead.\n * @deprecated\n */\n imageSrc?: string | null;\n /** The URL for the embedded content. */\n url?: string | null;\n /** An image for the embedded content. */\n image?: V1Media;\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Whether to hide the title. */\n hideTitle?: boolean | null;\n /** Whether to hide the price. */\n hidePrice?: boolean | null;\n /** Whether to hide the description (Event and Booking). */\n hideDescription?: boolean | null;\n /** Whether to hide the date and time (Event). */\n hideDateTime?: boolean | null;\n /** Whether to hide the location (Event). */\n hideLocation?: boolean | null;\n /** Whether to hide the duration (Booking). */\n hideDuration?: boolean | null;\n /** Whether to hide the button. */\n hideButton?: boolean | null;\n /** Whether to hide the ribbon. */\n hideRibbon?: boolean | null;\n /** Button styling options. */\n buttonStyles?: ButtonStyles;\n /** Image styling options. */\n imageStyles?: ImageStyles;\n /** Ribbon styling options. */\n ribbonStyles?: RibbonStyles;\n /** Card styling options. */\n cardStyles?: CardStyles;\n /** Styling for the app embed's container. */\n containerData?: PluginContainerData;\n /** Pricing data for embedded Wix App content. */\n pricingData?: PricingData;\n}\n\n/** @oneof */\nexport interface AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n}\n\nexport enum Position {\n /** Image positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Image positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Image positioned at the top */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type PositionWithLiterals = Position | 'START' | 'END' | 'TOP';\n\nexport enum AspectRatio {\n /** 1:1 aspect ratio */\n SQUARE = 'SQUARE',\n /** 16:9 aspect ratio */\n RECTANGLE = 'RECTANGLE',\n}\n\n/** @enumType */\nexport type AspectRatioWithLiterals = AspectRatio | 'SQUARE' | 'RECTANGLE';\n\nexport enum Resizing {\n /** Fill the container, may crop the image */\n FILL = 'FILL',\n /** Fit the image within the container */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type ResizingWithLiterals = Resizing | 'FILL' | 'FIT';\n\nexport enum Placement {\n /** Ribbon placed on the image */\n IMAGE = 'IMAGE',\n /** Ribbon placed on the product information */\n PRODUCT_INFO = 'PRODUCT_INFO',\n}\n\n/** @enumType */\nexport type PlacementWithLiterals = Placement | 'IMAGE' | 'PRODUCT_INFO';\n\nexport enum Type {\n /** Card with visible border and background */\n CONTAINED = 'CONTAINED',\n /** Card without visible border */\n FRAMELESS = 'FRAMELESS',\n}\n\n/** @enumType */\nexport type TypeWithLiterals = Type | 'CONTAINED' | 'FRAMELESS';\n\nexport enum Alignment {\n /** Content aligned to start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Content centered */\n CENTER = 'CENTER',\n /** Content aligned to end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n}\n\n/** @enumType */\nexport type AlignmentWithLiterals = Alignment | 'START' | 'CENTER' | 'END';\n\nexport enum Layout {\n /** Elements stacked vertically */\n STACKED = 'STACKED',\n /** Elements arranged horizontally */\n SIDE_BY_SIDE = 'SIDE_BY_SIDE',\n}\n\n/** @enumType */\nexport type LayoutWithLiterals = Layout | 'STACKED' | 'SIDE_BY_SIDE';\n\nexport enum AppType {\n PRODUCT = 'PRODUCT',\n EVENT = 'EVENT',\n BOOKING = 'BOOKING',\n}\n\n/** @enumType */\nexport type AppTypeWithLiterals = AppType | 'PRODUCT' | 'EVENT' | 'BOOKING';\n\nexport interface BookingData {\n /** Booking duration in minutes. */\n durations?: string | null;\n}\n\nexport interface EventData {\n /** Event schedule. */\n scheduling?: string | null;\n /** Event location. */\n location?: string | null;\n}\n\nexport interface ButtonStyles {\n /** Text to display on the button. */\n buttonText?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface ImageStyles {\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Position of image. Defaults to `START`. */\n imagePosition?: PositionWithLiterals;\n /** Aspect ratio for the image. Defaults to `SQUARE`. */\n aspectRatio?: AspectRatioWithLiterals;\n /** How the image should be resized. Defaults to `FILL`. */\n resizing?: ResizingWithLiterals;\n /**\n * Image border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Image border width in pixels. */\n borderWidth?: number | null;\n /** Image border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface RibbonStyles {\n /** Text to display on the ribbon. */\n ribbonText?: string | null;\n /**\n * Ribbon background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Ribbon text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Ribbon border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Ribbon border width in pixels. */\n borderWidth?: number | null;\n /** Ribbon border radius in pixels. */\n borderRadius?: number | null;\n /** Placement of the ribbon. Defaults to `IMAGE`. */\n ribbonPlacement?: PlacementWithLiterals;\n}\n\nexport interface CardStyles {\n /**\n * Card background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Card border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Card border width in pixels. */\n borderWidth?: number | null;\n /** Card border radius in pixels. */\n borderRadius?: number | null;\n /** Card type. Defaults to `CONTAINED`. */\n type?: TypeWithLiterals;\n /** Content alignment. Defaults to `START`. */\n alignment?: AlignmentWithLiterals;\n /** Layout for title and price. Defaults to `STACKED`. */\n titlePriceLayout?: LayoutWithLiterals;\n /**\n * Title text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n}\n\nexport interface PricingData {\n /**\n * Minimum numeric price value as string (e.g., \"10.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueFrom?: string | null;\n /**\n * Maximum numeric price value as string (e.g., \"19.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueTo?: string | null;\n /**\n * Numeric price value as string after discount application (e.g., \"15.99\").\n * @decimalValue options { maxScale:2 }\n */\n discountedValue?: string | null;\n /**\n * Currency of the value in ISO 4217 format (e.g., \"USD\", \"EUR\").\n * @format CURRENCY\n */\n currency?: string | null;\n /**\n * Pricing plan ID.\n * @format GUID\n */\n pricingPlanId?: string | null;\n}\n\nexport interface VideoData {\n /** Styling for the video's container. */\n containerData?: PluginContainerData;\n /** Video details. */\n video?: V1Media;\n /** Video thumbnail details. */\n thumbnail?: V1Media;\n /** Sets whether the video's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Video title. */\n title?: string | null;\n /** Video options. */\n options?: PlaybackOptions;\n}\n\nexport interface PlaybackOptions {\n /** Sets whether the media will automatically start playing. */\n autoPlay?: boolean | null;\n /** Sets whether media's will be looped. */\n playInLoop?: boolean | null;\n /** Sets whether media's controls will be shown. */\n showControls?: boolean | null;\n}\n\nexport interface EmbedData {\n /** Styling for the oEmbed node's container. */\n containerData?: PluginContainerData;\n /** An [oEmbed](https://www.oembed.com) object. */\n oembed?: Oembed;\n /** Origin asset source. */\n src?: string | null;\n}\n\nexport interface Oembed {\n /** The resource type. */\n type?: string | null;\n /** The width of the resource specified in the `url` property in pixels. */\n width?: number | null;\n /** The height of the resource specified in the `url` property in pixels. */\n height?: number | null;\n /** Resource title. */\n title?: string | null;\n /** The source URL for the resource. */\n url?: string | null;\n /** HTML for embedding a video player. The HTML should have no padding or margins. */\n html?: string | null;\n /** The name of the author or owner of the resource. */\n authorName?: string | null;\n /** The URL for the author or owner of the resource. */\n authorUrl?: string | null;\n /** The name of the resource provider. */\n providerName?: string | null;\n /** The URL for the resource provider. */\n providerUrl?: string | null;\n /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */\n thumbnailUrl?: string | null;\n /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */\n thumbnailWidth?: string | null;\n /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */\n thumbnailHeight?: string | null;\n /** The URL for an embedded viedo. */\n videoUrl?: string | null;\n /** The oEmbed version number. This value must be `1.0`. */\n version?: string | null;\n}\n\nexport interface CollapsibleListData {\n /** Styling for the collapsible list's container. */\n containerData?: PluginContainerData;\n /** If `true`, only one item can be expanded at a time. Defaults to `false`. */\n expandOnlyOne?: boolean | null;\n /** Sets which items are expanded when the page loads. */\n initialExpandedItems?: InitialExpandedItemsWithLiterals;\n /** The direction of the text in the list. Either left-to-right or right-to-left. */\n direction?: DirectionWithLiterals;\n /** If `true`, The collapsible item will appear in search results as an FAQ. */\n isQapageData?: boolean | null;\n}\n\nexport enum InitialExpandedItems {\n /** First item will be expended initally */\n FIRST = 'FIRST',\n /** All items will expended initally */\n ALL = 'ALL',\n /** All items collapsed initally */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type InitialExpandedItemsWithLiterals =\n | InitialExpandedItems\n | 'FIRST'\n | 'ALL'\n | 'NONE';\n\nexport enum Direction {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type DirectionWithLiterals = Direction | 'LTR' | 'RTL';\n\nexport interface TableData {\n /** Styling for the table's container. */\n containerData?: PluginContainerData;\n /** The table's dimensions. */\n dimensions?: Dimensions;\n /**\n * Deprecated: Use `rowHeader` and `columnHeader` instead.\n * @deprecated\n */\n header?: boolean | null;\n /** Sets whether the table's first row is a header. Defaults to `false`. */\n rowHeader?: boolean | null;\n /** Sets whether the table's first column is a header. Defaults to `false`. */\n columnHeader?: boolean | null;\n}\n\nexport interface Dimensions {\n /** An array representing relative width of each column in relation to the other columns. */\n colsWidthRatio?: number[];\n /** An array representing the height of each row in pixels. */\n rowsHeight?: number[];\n /** An array representing the minimum width of each column in pixels. */\n colsMinWidth?: number[];\n}\n\nexport interface TableCellData {\n /** Styling for the cell's background color and text alignment. */\n cellStyle?: CellStyle;\n /** The cell's border colors. */\n borderColors?: BorderColors;\n}\n\nexport enum VerticalAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Middle alignment */\n MIDDLE = 'MIDDLE',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n}\n\n/** @enumType */\nexport type VerticalAlignmentWithLiterals =\n | VerticalAlignment\n | 'TOP'\n | 'MIDDLE'\n | 'BOTTOM';\n\nexport interface CellStyle {\n /** Vertical alignment for the cell's text. */\n verticalAlignment?: VerticalAlignmentWithLiterals;\n /**\n * Cell background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n}\n\nexport interface BorderColors {\n /**\n * Left border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n left?: string | null;\n /**\n * Right border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n right?: string | null;\n /**\n * Top border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n top?: string | null;\n /**\n * Bottom border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n bottom?: string | null;\n}\n\n/**\n * `NullValue` is a singleton enumeration to represent the null value for the\n * `Value` type union.\n *\n * The JSON representation for `NullValue` is JSON `null`.\n */\nexport enum NullValue {\n /** Null value. */\n NULL_VALUE = 'NULL_VALUE',\n}\n\n/** @enumType */\nexport type NullValueWithLiterals = NullValue | 'NULL_VALUE';\n\n/**\n * `ListValue` is a wrapper around a repeated field of values.\n *\n * The JSON representation for `ListValue` is JSON array.\n */\nexport interface ListValue {\n /** Repeated field of dynamically typed values. */\n values?: any[];\n}\n\nexport interface AudioData {\n /** Styling for the audio node's container. */\n containerData?: PluginContainerData;\n /** Audio file details. */\n audio?: V1Media;\n /** Sets whether the audio node's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Cover image. */\n coverImage?: V1Media;\n /** Track name. */\n name?: string | null;\n /** Author name. */\n authorName?: string | null;\n /** An HTML version of the audio node. */\n html?: string | null;\n}\n\nexport interface OrderedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n /** List start number. */\n start?: number | null;\n}\n\nexport interface BulletedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n}\n\nexport interface BlockquoteData {\n /** Indentation level from 1-4. */\n indentation?: number;\n}\n\nexport interface CaptionData {\n textStyle?: TextStyle;\n}\n\nexport interface LayoutCellData {\n /** Size of the cell in 12 columns grid. */\n colSpan?: number | null;\n}\n\nexport interface Metadata {\n /** Schema version. */\n version?: number;\n /**\n * When the object was created.\n * @readonly\n * @deprecated\n */\n createdTimestamp?: Date | null;\n /**\n * When the object was most recently updated.\n * @deprecated\n */\n updatedTimestamp?: Date | null;\n /** Object ID. */\n _id?: string | null;\n}\n\nexport interface DocumentStyle {\n /** Styling for H1 nodes. */\n headerOne?: TextNodeStyle;\n /** Styling for H2 nodes. */\n headerTwo?: TextNodeStyle;\n /** Styling for H3 nodes. */\n headerThree?: TextNodeStyle;\n /** Styling for H4 nodes. */\n headerFour?: TextNodeStyle;\n /** Styling for H5 nodes. */\n headerFive?: TextNodeStyle;\n /** Styling for H6 nodes. */\n headerSix?: TextNodeStyle;\n /** Styling for paragraph nodes. */\n paragraph?: TextNodeStyle;\n /** Styling for block quote nodes. */\n blockquote?: TextNodeStyle;\n /** Styling for code block nodes. */\n codeBlock?: TextNodeStyle;\n}\n\nexport interface TextNodeStyle {\n /** The decorations to apply to the node. */\n decorations?: Decoration[];\n /** Padding and background color for the node. */\n nodeStyle?: NodeStyle;\n /** Line height for text in the node. */\n lineHeight?: string | null;\n}\n\nexport interface Media {\n /**\n * Main media (image, video, etc.) associated with this product.\n * @readonly\n */\n main?: ProductMedia;\n /**\n * All media items.\n * > **Note:** Returned only when you pass `\"MEDIA_ITEMS_INFO\"` to the `fields` array in Products API requests.\n */\n itemsInfo?: MediaItemsInfo;\n}\n\nexport interface ProductMedia\n extends ProductMediaSetByOneOf,\n ProductMediaMediaOneOf {\n /**\n * Set media by ID of an existing file in Wix Media Manager.\n * @minLength 1\n * @maxLength 200\n */\n _id?: string;\n /**\n * Set media using an external media URL.\n * @format WEB_URL\n */\n url?: string;\n /**\n * Product image.\n * @readonly\n */\n image?: string;\n /**\n * Product video.\n * @readonly\n */\n video?: string;\n /**\n * Image alt text.\n * @minLength 1\n * @maxLength 1000\n */\n altText?: string | null;\n /**\n * Media display name.\n * Allows to override the default media name. Can be passed only when `setBy: url`.\n * @maxLength 80\n */\n displayName?: string | null;\n /**\n * Media type.\n * @readonly\n */\n mediaType?: MediaTypeWithLiterals;\n /**\n * Media thumbnail.\n * > **Note:** Returned only when you pass `\"THUMBNAIL\"` to the `fields` array in Products API requests.\n */\n thumbnail?: Thumbnail;\n /**\n * ID used to upload media to Wix Media Manager.\n * @readonly\n * @format GUID\n */\n uploadId?: string;\n}\n\n/** @oneof */\nexport interface ProductMediaSetByOneOf {\n /**\n * Set media by ID of an existing file in Wix Media Manager.\n * @minLength 1\n * @maxLength 200\n */\n _id?: string;\n /**\n * Set media using an external media URL.\n * @format WEB_URL\n */\n url?: string;\n}\n\n/** @oneof */\nexport interface ProductMediaMediaOneOf {\n /**\n * Product image.\n * @readonly\n */\n image?: string;\n /**\n * Product video.\n * @readonly\n */\n video?: string;\n}\n\nexport interface VideoResolution {\n /**\n * Video URL.\n * @format WEB_URL\n */\n url?: string;\n /** Video height. */\n height?: number;\n /** Video width. */\n width?: number;\n /**\n * Video format for example, mp4, hls.\n * @maxLength 200\n */\n format?: string;\n}\n\nexport enum MediaType {\n UNKNOWN_MEDIA_TYPE = 'UNKNOWN_MEDIA_TYPE',\n /** Image media type. */\n IMAGE = 'IMAGE',\n /** Video media type. */\n VIDEO = 'VIDEO',\n}\n\n/** @enumType */\nexport type MediaTypeWithLiterals =\n | MediaType\n | 'UNKNOWN_MEDIA_TYPE'\n | 'IMAGE'\n | 'VIDEO';\n\nexport interface Thumbnail {\n /**\n * Thumbnail url.\n * @format WEB_URL\n */\n url?: string;\n /** Thumbnail height. */\n height?: number;\n /** Thumbnail width. */\n width?: number;\n /**\n * Thumbnail alt text.\n * @minLength 1\n * @maxLength 1000\n */\n altText?: string | null;\n}\n\nexport interface MediaItemsInfo {\n /**\n * All media items (images, videos etc) associated with this product.\n * @maxSize 15\n */\n items?: ProductMedia[];\n}\n\n/**\n * 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.\n * The search engines use this information for ranking purposes, or to display snippets in the search results.\n * This data will override other sources of tags (for example patterns) and will be included in the <head> section of the HTML document, while not being displayed on the page itself.\n */\nexport interface SeoSchema {\n /** SEO tag information. */\n tags?: Tag[];\n /** SEO general settings. */\n settings?: Settings;\n}\n\nexport interface Keyword {\n /** Keyword value. */\n term?: string;\n /** Whether the keyword is the main focus keyword. */\n isMain?: boolean;\n /**\n * The source that added the keyword terms to the SEO settings.\n * @maxLength 1000\n */\n origin?: string | null;\n}\n\nexport interface Tag {\n /**\n * SEO tag type.\n *\n *\n * Supported values: `title`, `meta`, `script`, `link`.\n */\n type?: string;\n /**\n * A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\n * For example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.\n */\n props?: Record<string, any> | null;\n /** SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`. */\n meta?: Record<string, any> | null;\n /** SEO tag inner content. For example, `<title> inner content </title>`. */\n children?: string;\n /** Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages). */\n custom?: boolean;\n /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */\n disabled?: boolean;\n}\n\nexport interface Settings {\n /**\n * 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.\n *\n *\n * Default: `false` (automatical redirect is enabled).\n */\n preventAutoRedirect?: boolean;\n /**\n * User-selected keyword terms for a specific page.\n * @maxSize 5\n */\n keywords?: Keyword[];\n}\n\nexport interface ConnectedOption extends ConnectedOptionOptionSettingsOneOf {\n /** Choices settings. */\n choicesSettings?: ChoicesSettings;\n /**\n * ID of a customization with `customizationType: PRODUCT_OPTION`.\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /**\n * Option name.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /** Option render type. */\n optionRenderType?: ProductOptionRenderTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface ConnectedOptionOptionSettingsOneOf {\n /** Choices settings. */\n choicesSettings?: ChoicesSettings;\n}\n\nexport enum ProductOptionRenderType {\n /** Not implemented. */\n UNKNOWN_OPTION_RENDER_TYPE = 'UNKNOWN_OPTION_RENDER_TYPE',\n /** Text choices. */\n TEXT_CHOICES = 'TEXT_CHOICES',\n /** Swatch choices. */\n SWATCH_CHOICES = 'SWATCH_CHOICES',\n}\n\n/** @enumType */\nexport type ProductOptionRenderTypeWithLiterals =\n | ProductOptionRenderType\n | 'UNKNOWN_OPTION_RENDER_TYPE'\n | 'TEXT_CHOICES'\n | 'SWATCH_CHOICES';\n\nexport interface ChoicesSettings {\n /**\n * List of available choices for the option.\n * @minSize 1\n * @maxSize 100\n * @immutable\n */\n choices?: ConnectedOptionChoice[];\n}\n\nexport interface ConnectedOptionChoice extends ConnectedOptionChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n /**\n * The id of the choice.\n * @format GUID\n */\n choiceId?: string | null;\n /**\n * Product media overrides. When not empty only these images will be shown when such choices selected by customer. Otherwise all images of product.\n * When several choices from different options selected only media filter present in `media_overrides` of ALL choices will be shown.\n * For example if Color:red has images 1,2,3 and Material:Silk has images 2,3,5 then only images 2,3 will be shown when both of them selected.\n * @maxSize 100\n */\n linkedMedia?: ProductMedia[];\n /** The type of this choice. */\n choiceType?: ChoiceTypeWithLiterals;\n /**\n * Choice name.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /**\n * A flag that indicates if at least one variant with this choice is in stock in the default store's location.\n * For example, a product with 'Color' and 'Size' options with variants: [Blue, Small] which is out of stock and [Red Large] which is in stock. For choice 'Blue' ths flag will be 'false' and for 'Red' the flag will be true\n * @readonly\n */\n inStock?: boolean;\n /**\n * Whether at least one variant with this choice is visible.\n *\n * Default: `false`\n * @readonly\n */\n visible?: boolean;\n}\n\n/** @oneof */\nexport interface ConnectedOptionChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n}\n\nexport enum ChoiceType {\n UNKNOWN_CHOICE_TYPE = 'UNKNOWN_CHOICE_TYPE',\n /** Text choice. */\n CHOICE_TEXT = 'CHOICE_TEXT',\n /** Single color choice. */\n ONE_COLOR = 'ONE_COLOR',\n /** Multiple colors choice. */\n MULTIPLE_COLORS = 'MULTIPLE_COLORS',\n /** Image choice. */\n IMAGE = 'IMAGE',\n}\n\n/** @enumType */\nexport type ChoiceTypeWithLiterals =\n | ChoiceType\n | 'UNKNOWN_CHOICE_TYPE'\n | 'CHOICE_TEXT'\n | 'ONE_COLOR'\n | 'MULTIPLE_COLORS'\n | 'IMAGE';\n\nexport interface MultipleColors {\n /**\n * List of color codes.\n * @minLength 3\n * @maxLength 20\n * @minSize 2\n * @maxSize 2\n */\n colorCodes?: string[];\n}\n\nexport interface ConnectedModifier\n extends ConnectedModifierModifierSettingsOneOf {\n /** Free text modifier settings. */\n freeTextSettings?: FreeTextSettings;\n /** Choice settings. */\n choicesSettings?: ModifierChoicesSettings;\n /**\n * ID of a customization with `customizationType: MODIFIER`.\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /**\n * Modifier title.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /** Modifier render type. */\n modifierRenderType?: ModifierRenderTypeWithLiterals;\n /** Whether customer input is required for this modifier. */\n mandatory?: boolean;\n}\n\n/** @oneof */\nexport interface ConnectedModifierModifierSettingsOneOf {\n /** Free text modifier settings. */\n freeTextSettings?: FreeTextSettings;\n /** Choice settings. */\n choicesSettings?: ModifierChoicesSettings;\n}\n\nexport enum ModifierRenderType {\n /** Not implemented. */\n UNKNOWN_MODIFIER_RENDER_TYPE = 'UNKNOWN_MODIFIER_RENDER_TYPE',\n /** Free text. */\n FREE_TEXT = 'FREE_TEXT',\n /** Text choices. */\n TEXT_CHOICES = 'TEXT_CHOICES',\n /** Swatch choices. */\n SWATCH_CHOICES = 'SWATCH_CHOICES',\n}\n\n/** @enumType */\nexport type ModifierRenderTypeWithLiterals =\n | ModifierRenderType\n | 'UNKNOWN_MODIFIER_RENDER_TYPE'\n | 'FREE_TEXT'\n | 'TEXT_CHOICES'\n | 'SWATCH_CHOICES';\n\nexport interface FreeTextSettings {\n /** Minimum number of characters. */\n minCharCount?: number;\n /**\n * Maximum number of characters.\n * @max 500\n */\n maxCharCount?: number;\n /**\n * Default amount to be added to the product's price.\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n defaultAddedPrice?: string | null;\n /**\n * Title of the text to be input by the customer.\n * @minLength 1\n * @maxLength 150\n */\n title?: string;\n}\n\nexport interface ModifierChoicesSettings {\n /**\n * List of modifier choices.\n * @minSize 1\n * @maxSize 100\n * @immutable\n */\n choices?: ConnectedModifierChoice[];\n}\n\nexport interface ConnectedModifierChoice\n extends ConnectedModifierChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n /**\n * Choice ID.\n * @format GUID\n */\n choiceId?: string | null;\n /**\n * Product media.\n * @maxSize 100\n */\n linkedMedia?: ProductMedia[];\n /** Choice type. */\n choiceType?: ChoiceTypeWithLiterals;\n /**\n * Modifier key. Used for eCommerce integration.\n * @readonly\n * @minLength 1\n * @maxLength 50\n */\n key?: string;\n /**\n * Choice name.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /**\n * Added price.\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n addedPrice?: string | null;\n}\n\n/** @oneof */\nexport interface ConnectedModifierChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n}\n\nexport interface Brand {\n /**\n * Brand ID.\n * @format GUID\n */\n _id?: string | null;\n /**\n * Brand name.\n * @maxLength 50\n */\n name?: string | null;\n}\n\nexport interface InfoSection {\n /**\n * Info section ID.\n * @format GUID\n */\n _id?: string | null;\n /**\n * Info section unique name.\n * > **Note:** Returned only when you pass `\"INFO_SECTION\"` to the `fields` array in Products API requests.\n * @maxLength 100\n */\n uniqueName?: string | null;\n /**\n * Info section title.\n * > **Note:** Returned only when you pass `\"INFO_SECTION\"` to the `fields` array in Products API requests.\n * @minLength 1\n * @maxLength 50\n * @readonly\n */\n title?: string | null;\n /**\n * Info section description using rich content.\n * > **Note:** Returned only when you pass `\"INFO_SECTION_DESCRIPTION\"` to the `fields` array in Products API requests.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" plugins=\"indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor\" exampleid=\"7dc9240e-d548-417a-abcf-0291b68b4303\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n * @readonly\n */\n description?: RichContent;\n /**\n * Info section description in HTML.\n *\n * When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"INFO_SECTION_PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n}\n\nexport interface Ribbon {\n /**\n * Ribbon ID.\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /**\n * Ribbon name.\n * @maxLength 30\n */\n name?: string | null;\n}\n\nexport interface ProductCategoriesInfo {\n /**\n * A list of categories related to product.\n * @readonly\n * @maxSize 2000\n */\n categories?: ProductCategory[];\n}\n\nexport interface ProductCategory {\n /**\n * Category ID.\n * @format GUID\n */\n _id?: string;\n /**\n * Index location of the product within the category, which can be utilized for sorting products in a specific category. For detailed instructions on how to set this up, refer to the [Add and arrange products in category](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/sample-use-cases-and-flows#add-and-arrange-products-in-category) sample flow.\n * @max 200\n */\n index?: number | null;\n}\n\nexport interface ProductCategoryIdsInfo {\n /**\n * A list of category ids related to product.\n * @readonly\n * @maxSize 2000\n * @format GUID\n */\n categoryIds?: string[];\n}\n\nexport interface PriceRange {\n /** Minimum value. */\n minValue?: FixedMonetaryAmount;\n /** Maximum value. */\n maxValue?: FixedMonetaryAmount;\n}\n\nexport interface FixedMonetaryAmount {\n /**\n * Monetary amount. For example, `\"3.99\"`, or `\"-4.99\"` for a negative amount.\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n amount?: string;\n /**\n * Formatted monetary amount. For example, `\"$3.99\"`.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @readonly\n * @maxLength 20\n */\n formattedAmount?: string | null;\n}\n\nexport interface Inventory {\n /**\n * Current availability status.\n * @readonly\n */\n availabilityStatus?: InventoryAvailabilityStatusWithLiterals;\n /**\n * Current preorder status.\n * @readonly\n */\n preorderStatus?: PreorderStatusWithLiterals;\n /**\n * Preorder availability status.\n * @readonly\n */\n preorderAvailability?: ProductPreorderAvailabilityWithLiterals;\n}\n\nexport enum InventoryAvailabilityStatus {\n UNKNOWN_AVAILABILITY_STATUS = 'UNKNOWN_AVAILABILITY_STATUS',\n /** All variants are in stock and available for purchase. */\n IN_STOCK = 'IN_STOCK',\n /** All variants are out of stock. */\n OUT_OF_STOCK = 'OUT_OF_STOCK',\n /** Some variants are out of stock and some are in stock and available for purchase. */\n PARTIALLY_OUT_OF_STOCK = 'PARTIALLY_OUT_OF_STOCK',\n}\n\n/** @enumType */\nexport type InventoryAvailabilityStatusWithLiterals =\n | InventoryAvailabilityStatus\n | 'UNKNOWN_AVAILABILITY_STATUS'\n | 'IN_STOCK'\n | 'OUT_OF_STOCK'\n | 'PARTIALLY_OUT_OF_STOCK';\n\nexport enum PreorderStatus {\n UNKNOWN_PREORDER_STATUS = 'UNKNOWN_PREORDER_STATUS',\n /** All variants are enabled for preorder. */\n ENABLED = 'ENABLED',\n /** All variants are disabled for preorder. */\n DISABLED = 'DISABLED',\n /** Some variants are disabled and some are enabled for preorder. */\n PARTIALLY_ENABLED = 'PARTIALLY_ENABLED',\n}\n\n/** @enumType */\nexport type PreorderStatusWithLiterals =\n | PreorderStatus\n | 'UNKNOWN_PREORDER_STATUS'\n | 'ENABLED'\n | 'DISABLED'\n | 'PARTIALLY_ENABLED';\n\nexport enum ProductPreorderAvailability {\n UNKNOWN_PREORDER_AVAILABILITY_STATUS = 'UNKNOWN_PREORDER_AVAILABILITY_STATUS',\n /** All the product variants are available for preorder. */\n ALL_VARIANTS = 'ALL_VARIANTS',\n /** None of the product variants are available for preorder. */\n NO_VARIANTS = 'NO_VARIANTS',\n /** Some of the product variants are available for preorder. */\n SOME_VARIANTS = 'SOME_VARIANTS',\n}\n\n/** @enumType */\nexport type ProductPreorderAvailabilityWithLiterals =\n | ProductPreorderAvailability\n | 'UNKNOWN_PREORDER_AVAILABILITY_STATUS'\n | 'ALL_VARIANTS'\n | 'NO_VARIANTS'\n | 'SOME_VARIANTS';\n\nexport enum ProductType {\n /** Not implemented. */\n UNKNOWN_PRODUCT_TYPE = 'UNKNOWN_PRODUCT_TYPE',\n /** Physical product. */\n PHYSICAL = 'PHYSICAL',\n /** Digital product. */\n DIGITAL = 'DIGITAL',\n}\n\n/** @enumType */\nexport type ProductTypeWithLiterals =\n | ProductType\n | 'UNKNOWN_PRODUCT_TYPE'\n | 'PHYSICAL'\n | 'DIGITAL';\n\nexport interface PhysicalProperties {\n /**\n * Price per unit settings.\n * > **Note:** Use this field only when relevant. For example, for products that are sold by weight, volume, or length.\n */\n pricePerUnit?: PricePerUnitSettings;\n /**\n * Fulfiller ID.\n * @format GUID\n */\n fulfillerId?: string | null;\n /**\n * Product shipping weight range - Calculated from the lightest and heaviest variant shipping weights.\n * @readonly\n */\n shippingWeightRange?: WeightRange;\n /**\n * Product price per unit range. The minimum and maximum price per unit of all the variants.\n * @readonly\n */\n pricePerUnitRange?: PricePerUnitRange;\n /**\n * Weight measurement unit.\n * > **Note:** Returned only when you pass `\"WEIGHT_MEASUREMENT_UNIT_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n weightMeasurementUnitInfo?: WeightMeasurementUnitInfo;\n /**\n * Delivery profile ID.\n * @format GUID\n */\n deliveryProfileId?: string | null;\n}\n\nexport interface PricePerUnitSettings {\n /**\n * Quantity.\n * For example, to define price per per 100 grams, set this field to `100`.\n * @min 0.01\n * @max 999999999.99\n */\n quantity?: number;\n /**\n * Measurement unit.\n * For example, to define price per 100 grams, set this field to \"G\".\n */\n measurementUnit?: MeasurementUnitWithLiterals;\n}\n\nexport enum MeasurementUnit {\n UNSPECIFIED = 'UNSPECIFIED',\n ML = 'ML',\n CL = 'CL',\n L = 'L',\n CBM = 'CBM',\n MG = 'MG',\n G = 'G',\n KG = 'KG',\n MM = 'MM',\n CM = 'CM',\n M = 'M',\n SQM = 'SQM',\n OZ = 'OZ',\n LB = 'LB',\n FLOZ = 'FLOZ',\n PT = 'PT',\n QT = 'QT',\n GAL = 'GAL',\n IN = 'IN',\n FT = 'FT',\n YD = 'YD',\n SQFT = 'SQFT',\n}\n\n/** @enumType */\nexport type MeasurementUnitWithLiterals =\n | MeasurementUnit\n | 'UNSPECIFIED'\n | 'ML'\n | 'CL'\n | 'L'\n | 'CBM'\n | 'MG'\n | 'G'\n | 'KG'\n | 'MM'\n | 'CM'\n | 'M'\n | 'SQM'\n | 'OZ'\n | 'LB'\n | 'FLOZ'\n | 'PT'\n | 'QT'\n | 'GAL'\n | 'IN'\n | 'FT'\n | 'YD'\n | 'SQFT';\n\nexport interface WeightRange {\n /**\n * Minimum weight across all variants associated with this product.\n * @max 999999999.99\n */\n minValue?: number;\n /**\n * Maximum weight across all variants associated with this product.\n * @max 999999999.99\n */\n maxValue?: number;\n}\n\nexport interface PricePerUnitRange {\n /** Minimum price per unit across all variants. */\n minValue?: PricePerUnitRangePricePerUnit;\n /** Maximum price per unit across all variants. */\n maxValue?: PricePerUnitRangePricePerUnit;\n}\n\nexport interface PricePerUnitRangePricePerUnit {\n /**\n * Calculated value of price per unit. Takes into account pricePerUnit settings of product and variants and price of variants.\n * 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$).\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n value?: string;\n /**\n * Price per unit info in the format of variant specific data / product setting, for example €4.00 / 1 Kg.\n * > **Note:** This field is returned by the API only when you pass `fields: \"CURRENCY\"` in a request.\n * @readonly\n * @maxLength 100\n */\n description?: string | null;\n}\n\nexport interface WeightMeasurementUnitInfo {\n /**\n * Weight measurement unit.\n * @readonly\n */\n weightMeasurementUnit?: WeightUnitWithLiterals;\n}\n\nexport enum WeightUnit {\n /** Weight unit can't be classified due to an error. */\n UNSPECIFIED_WEIGHT_UNIT = 'UNSPECIFIED_WEIGHT_UNIT',\n /** Kilograms. */\n KG = 'KG',\n /** Pounds. */\n LB = 'LB',\n}\n\n/** @enumType */\nexport type WeightUnitWithLiterals =\n | WeightUnit\n | 'UNSPECIFIED_WEIGHT_UNIT'\n | 'KG'\n | 'LB';\n\nexport interface BreadcrumbsInfo {\n /**\n * Breadcrumbs.\n * @readonly\n * @maxSize 5\n */\n breadcrumbs?: BreadCrumb[];\n}\n\nexport interface BreadCrumb {\n /**\n * Category ID.\n * @format GUID\n */\n categoryId?: string;\n /**\n * Category name.\n * @minLength 1\n * @maxLength 80\n */\n categoryName?: string;\n /**\n * Category slug.\n * @minLength 1\n * @maxLength 100\n */\n categorySlug?: string;\n}\n\nexport interface VariantsInfo {\n /**\n * List of related variants.\n * @minSize 1\n * @maxSize 1000\n */\n variants?: Variant[];\n}\n\nexport interface Variant extends VariantTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n /**\n * Variant ID.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Whether the variant is visible to site visitors.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Variant SKU (stock keeping unit).\n * @minLength 1\n * @maxLength 40\n */\n sku?: string | null;\n /**\n * Variant barcode.\n * @minLength 1\n * @maxLength 40\n */\n barcode?: string | null;\n /**\n * List of choices that define the product's variant, which requires exactly one choice per product option.\n * Must use `optionChoiceNames` in all requests this field is required.\n * Empty only for default variants of unmanaged products.\n * @maxSize 6\n * @immutable\n */\n choices?: OptionChoice[];\n /** Variant price. */\n price?: PriceInfo;\n /**\n * Variant revenue details.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n revenueDetails?: RevenueDetails;\n /**\n * Variant media.\n * @readonly\n */\n media?: ProductMedia;\n /**\n * Subscription prices calculated by applying subscription discount to the variant `price.actual_price`.\n * > **Note:** Returned only when you pass `\"SUBSCRIPTION_PRICES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n subscriptionPricesInfo?: SubscriptionPricesInfo;\n /**\n * Variant inventory status.\n * @readonly\n */\n inventoryStatus?: InventoryStatus;\n}\n\n/** @oneof */\nexport interface VariantTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n}\n\nexport interface OptionChoice {\n /** Option and choice IDs. These match the IDs of the option and choice from the product's options field. */\n optionChoiceIds?: OptionChoiceIds;\n /**\n * Option and choice names.\n * This needs to be used in all requests `OptionChoice` is needed, and all `OptionChoiceNames` fields are required.\n * > **Note:** Returned only when you pass `\"VARIANT_OPTION_CHOICE_NAMES\"` to the `fields` array in Products API requests.\n */\n optionChoiceNames?: OptionChoiceNames;\n}\n\nexport interface OptionChoiceIds {\n /**\n * Option ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n */\n optionId?: string;\n /**\n * Choice ID.\n * @format GUID\n * @immutable\n */\n choiceId?: string;\n}\n\nexport interface OptionChoiceNames {\n /**\n * Option name.\n * @minLength 1\n */\n optionName?: string;\n /**\n * Choice name.\n * @minLength 1\n */\n choiceName?: string;\n /** Render type. */\n renderType?: ProductOptionRenderTypeWithLiterals;\n}\n\nexport interface PriceInfo {\n /** Variant price. Must be greater or equal to 0. */\n actualPrice?: FixedMonetaryAmount;\n /** 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. */\n compareAtPrice?: FixedMonetaryAmount;\n}\n\nexport interface RevenueDetails {\n /** Item cost. */\n cost?: FixedMonetaryAmount;\n /**\n * Profit. Calculated by reducing `cost` from `discountedPrice`.\n * @readonly\n */\n profit?: FixedMonetaryAmount;\n /**\n * Profit Margin. Calculated by dividing `profit` by `discountedPrice`.\n * The result is rounded to 4 decimal places.\n * @readonly\n * @max 1\n */\n profitMargin?: number;\n}\n\nexport interface VariantPhysicalProperties {\n /**\n * Variant shipping weight.\n * product.physicalProperties.shipping_weight_range values are taken from here.\n * @max 999999999.99\n */\n weight?: number | null;\n /**\n * Price per unit info, in order to show price per unit on the product page.\n * For example if one sells cheese and defines 100g here then we know that buying this variant buyer receives 100g of cheese.\n * But on product page price will be displayed for units defined on product level. See `pricePerUnit.value` to understand how it's calculated.\n */\n pricePerUnit?: PricePerUnit;\n}\n\nexport interface PricePerUnit {\n /**\n * Price per unit data for this variant.\n * `measurementUnit` value must correspond to the measurement unit set on the product.\n */\n settings?: PricePerUnitSettings;\n /**\n * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, of this variant, and discounted price of variant.\n * 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$).\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n value?: string;\n /**\n * Price per unit description.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @readonly\n * @maxLength 100\n */\n description?: string | null;\n}\n\nexport interface VariantDigitalProperties {\n /** Digital file which will be downloaded by customer after successful purchase. */\n digitalFile?: SecuredMedia;\n}\n\nexport interface SecuredMedia {\n /**\n * Media ID in media manager.\n * @minLength 1\n * @maxLength 100\n */\n _id?: string;\n /**\n * Original file name.\n * @minLength 1\n * @maxLength 1000\n * @readonly\n */\n fileName?: string;\n /**\n * Original file size.\n * @minLength 1\n * @maxLength 1000\n * @readonly\n * @format DECIMAL_VALUE\n * @decimalValue options { maxScale:0 }\n */\n fileSize?: string | null;\n /**\n * File type.\n * @readonly\n */\n fileType?: FileTypeWithLiterals;\n}\n\nexport enum FileType {\n /** Unspecified file type. */\n UNSPECIFIED = 'UNSPECIFIED',\n /** Secure picture file. */\n SECURE_PICTURE = 'SECURE_PICTURE',\n /** Secure video file. */\n SECURE_VIDEO = 'SECURE_VIDEO',\n /** Secure document file. */\n SECURE_DOCUMENT = 'SECURE_DOCUMENT',\n /** Secure music file. */\n SECURE_MUSIC = 'SECURE_MUSIC',\n /** Secure archive file. */\n SECURE_ARCHIVE = 'SECURE_ARCHIVE',\n}\n\n/** @enumType */\nexport type FileTypeWithLiterals =\n | FileType\n | 'UNSPECIFIED'\n | 'SECURE_PICTURE'\n | 'SECURE_VIDEO'\n | 'SECURE_DOCUMENT'\n | 'SECURE_MUSIC'\n | 'SECURE_ARCHIVE';\n\nexport interface SubscriptionPricesInfo {\n /**\n * Subscription prices.\n * @maxSize 6\n */\n subscriptionPrices?: SubscriptionPrice[];\n}\n\nexport interface SubscriptionPrice {\n /**\n * Subscription ID.\n * @format GUID\n * @readonly\n */\n subscriptionId?: string;\n /**\n * Subscription price calculated by applying subscription discount to the variant `price.actual_price`\n * @readonly\n */\n price?: FixedMonetaryAmount;\n /**\n * Price per unit info.\n * @readonly\n */\n pricePerUnit?: SubscriptionPricePerUnit;\n}\n\nexport interface SubscriptionPricePerUnit {\n /**\n * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n value?: string;\n /**\n * Price per unit description.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @readonly\n * @maxLength 20\n */\n description?: string | null;\n}\n\nexport interface InventoryStatus {\n /** Whether the variant is in stock. */\n inStock?: boolean;\n /** Whether preorder is enabled for this variant. */\n preorderEnabled?: boolean;\n}\n\nexport interface ExtendedFields {\n /**\n * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\n * The value of each key is structured according to the schema defined when the extended fields were configured.\n *\n * You can only access fields for which you have the appropriate permissions.\n *\n * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).\n */\n namespaces?: Record<string, Record<string, any>>;\n}\n\nexport interface SubscriptionDetails {\n /**\n * Subscriptions.\n * @minSize 1\n * @maxSize 6\n */\n subscriptions?: Subscription[];\n /**\n * Whether to allow one-time purchases in addition to subscription-based purchases.\n *\n * Default: `false`\n */\n allowOneTimePurchases?: boolean | null;\n /**\n * Whether to add a 'Cancel subscription' button to the My Subscriptions tab of the [Members Area page](https://support.wix.com/en/article/site-members-about-the-members-area).\n *\n * Default: `false`\n * @internal\n */\n enableCustomerCancellation?: boolean | null;\n}\n\nexport interface Subscription extends SubscriptionCyclesOneOf {\n /** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */\n autoRenewal?: boolean;\n /**\n * Number of billing cycles before subscription ends.\n * @min 2\n * @max 999\n */\n billingCycles?: number;\n /**\n * Subscription ID.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Subscription title.\n * @minLength 1\n * @maxLength 20\n */\n title?: string;\n /**\n * Subscription description.\n * @maxLength 60\n */\n description?: string | null;\n /**\n * Whether the subscription is visible to site visitors.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Frequency of recurring payment.\n * For example, if `frequency: MONTH` and `billingCycles: 6`; payment will be made monthly for 6 months.\n */\n frequency?: SubscriptionFrequencyWithLiterals;\n /**\n * 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.\n * @min 1\n * @max 50\n */\n interval?: number | null;\n /**\n * Discount info (optional).\n * For example, a $20 discount would be `amount: 20`, `type: AMOUNT`.\n */\n discount?: SubscriptionDiscount;\n}\n\n/** @oneof */\nexport interface SubscriptionCyclesOneOf {\n /** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */\n autoRenewal?: boolean;\n /**\n * Number of billing cycles before subscription ends.\n * @min 2\n * @max 999\n */\n billingCycles?: number;\n}\n\n/** Frequency unit of recurring payment */\nexport enum SubscriptionFrequency {\n UNDEFINED = 'UNDEFINED',\n DAY = 'DAY',\n WEEK = 'WEEK',\n MONTH = 'MONTH',\n YEAR = 'YEAR',\n}\n\n/** @enumType */\nexport type SubscriptionFrequencyWithLiterals =\n | SubscriptionFrequency\n | 'UNDEFINED'\n | 'DAY'\n | 'WEEK'\n | 'MONTH'\n | 'YEAR';\n\nexport interface SubscriptionDiscount\n extends SubscriptionDiscountDiscountOneOf {\n /**\n * Amount to discount from the variant discounted_price.\n * @decimalValue options { gt:0, lte:999999999, maxScale:3 }\n */\n amountOff?: string;\n /**\n * Percentage to discount from variant discounted_price.\n * @min 0.1\n * @max 99.9\n */\n percentOff?: number;\n /** Discount type. */\n type?: DiscountTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface SubscriptionDiscountDiscountOneOf {\n /**\n * Amount to discount from the variant discounted_price.\n * @decimalValue options { gt:0, lte:999999999, maxScale:3 }\n */\n amountOff?: string;\n /**\n * Percentage to discount from variant discounted_price.\n * @min 0.1\n * @max 99.9\n */\n percentOff?: number;\n}\n\nexport enum DiscountType {\n UNKNOWN_DISCOUNT = 'UNKNOWN_DISCOUNT',\n /** Discount by a specific amount. */\n AMOUNT = 'AMOUNT',\n /** Discount by a percentage. */\n PERCENT = 'PERCENT',\n}\n\n/** @enumType */\nexport type DiscountTypeWithLiterals =\n | DiscountType\n | 'UNKNOWN_DISCOUNT'\n | 'AMOUNT'\n | 'PERCENT';\n\nexport interface VariantSummary {\n /**\n * The total number of variants for the product.\n * @readonly\n */\n variantCount?: number;\n}\n\nexport interface MinVariantPriceInfo {\n /**\n * Subscription price calculated by applying subscription discount to the variant `price.actualPrice`\n * @readonly\n */\n minSubscriptionPrice?: FixedMonetaryAmount;\n /**\n * Subscription price per unit calculated value of price per unit.\n * Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n minSubscriptionPricePerUnit?: string | null;\n /**\n * Variant price per unit.\n * @readonly\n */\n pricePerUnitData?: PricePerUnit;\n /**\n * Variant SKU (stock keeping unit).\n * @readonly\n * @minLength 1\n * @maxLength 40\n */\n sku?: string | null;\n /**\n * Variant shipping weight.\n * @readonly\n * @max 999999999.99\n */\n weight?: number | null;\n /**\n * Variant revenue details.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @readonly\n */\n revenueDetails?: RevenueDetails;\n /** Variant price. Must be greater or equal to 0. */\n actualPrice?: FixedMonetaryAmount;\n /** 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. */\n compareAtPrice?: FixedMonetaryAmount;\n}\n\nexport interface CreateBatchRequest {}\n\nexport interface CreateBatchResponse {\n /**\n * Batch ID to use in subsequent BulkAddItems and SubmitBatch calls\n * @format GUID\n */\n batchId?: string;\n}\n\nexport interface BulkAddProductsToBatchRequest {\n /**\n * Batch ID from CreateBatch\n * @format GUID\n */\n batchId?: string;\n /**\n * Products to add to the batch session\n * @minSize 1\n * @maxSize 100\n */\n products?: ProductItem[];\n}\n\nexport interface ProductItem {\n /** Product to upsert - handle field is required for identification */\n product?: ProductWithInventory;\n /**\n * Categories to set for the product.\n * Overrides any existing category assignments.\n */\n categoryIdsInfo?: V3ProductCategoryIdsInfo;\n}\n\nexport interface ProductWithInventory\n extends ProductWithInventoryTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product with inventory.\n * @readonly\n */\n revision?: string | null;\n /**\n * Product name.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows buyer to customize product, e.g. select Color, Size and so on.\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * 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.\n * 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.\n * *None*: you cannot change name of existing option via this endpoint but you can do it by calling CustomizationService\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * 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.\n * 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.\n * 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.\n * *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\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * Main category ID.\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /** Product variants. */\n variantsInfo?: V3VariantsInfo;\n /** Subscription details. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the [app dashboard](https://dev.wix.com/dc3/my-apps/) before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n}\n\n/** @oneof */\nexport interface ProductWithInventoryTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n}\n\nexport interface V3VariantsInfo {\n /**\n * List of related variants.\n * Partial update of variants is not supported so on update you must pass all data for all of them.\n * 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.\n * @minSize 1\n * @maxSize 1000\n */\n variants?: VariantWithInventory[];\n}\n\nexport interface VariantWithInventory\n extends VariantWithInventoryTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n /**\n * Variant ID.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Whether the variant is visible to site visitors.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Variant SKU (stock keeping unit).\n * @minLength 1\n * @maxLength 40\n */\n sku?: string | null;\n /**\n * Variant barcode.\n * @minLength 1\n * @maxLength 40\n */\n barcode?: string | null;\n /** Variant price. */\n price?: PriceInfo;\n /**\n * Variant revenue details.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n revenueDetails?: RevenueDetails;\n /** Inventory item of the variant on the default location. */\n inventoryItem?: InventoryItemComposite;\n /**\n * List of choices.\n * @maxSize 6\n * @immutable\n */\n choices?: OptionChoiceReferences[];\n}\n\n/** @oneof */\nexport interface VariantWithInventoryTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n}\n\nexport interface InventoryItemComposite\n extends InventoryItemCompositeTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n /**\n * Inventory item ID.\n * If you want to update existing inventory item you must provide id,\n * otherwise new inventory item with different id will be created.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Inventory item revision.\n * @readonly\n */\n revision?: string | null;\n /** Item preorder info. */\n preorderInfo?: PreorderInfo;\n}\n\n/** @oneof */\nexport interface InventoryItemCompositeTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n}\n\nexport interface PreorderInfo {\n /**\n * Whether preorder is enabled for the product.\n *\n * Default: `false`\n */\n enabled?: boolean | null;\n /**\n * A message the customer will see when the item is out of stock and preorder is enabled.\n * @minLength 1\n * @maxLength 250\n */\n message?: string | null;\n /**\n * Number of products that can be preordered after stock reaches zero.\n * Supported only for inventory items with `trackQuantity = true`.\n *\n * Default: `100000`\n * @max 100000\n */\n limit?: number | null;\n /**\n * Number of times the product was preordered.\n *\n * Supported only for inventory items with `trackQuantity = true`.\n * @readonly\n * @max 99999\n */\n counter?: number | null;\n /**\n * Quantity of products that can be preordered.\n *\n * Supported only for inventory items with `trackQuantity = true`.\n * @readonly\n */\n quantity?: number | null;\n}\n\nexport interface OptionChoiceReferences {\n /** Option and choice IDs. */\n optionChoiceIds?: V3OptionChoiceIds;\n /** Option and choice names. */\n optionChoiceNames?: V3OptionChoiceNames;\n}\n\nexport interface V3OptionChoiceIds {\n /**\n * Option ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n */\n optionId?: string;\n /**\n * Choice ID.\n * @format GUID\n * @immutable\n */\n choiceId?: string;\n}\n\nexport interface V3OptionChoiceNames {\n /**\n * Option name.\n * @minLength 1\n */\n optionName?: string;\n /**\n * Choice name.\n * @minLength 1\n */\n choiceName?: string;\n /** Render type. */\n renderType?: ProductOptionRenderTypeWithLiterals;\n}\n\nexport interface V3ProductCategoryIdsInfo {\n /**\n * List of category IDs to set for the product\n * @maxSize 1000\n * @format GUID\n */\n categoryIds?: string[];\n}\n\nexport interface BulkAddProductsToBatchResponse {\n /**\n * Items added by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkItemResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: CommonBulkActionMetadata;\n}\n\nexport interface WixCommonItemMetadata {\n /**\n * Item ID. Provided only whenever possible. For example, `itemId` can't be provided when item creation has failed.\n * @format GUID\n */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action for this item was successful. When `false`, the `error` field is returned. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface ApplicationError {\n /** Error code. */\n code?: string;\n /** Description of the error. */\n description?: string;\n /** Data related to the error. */\n data?: Record<string, any> | null;\n}\n\nexport interface BulkItemResult {\n /** Bulk action metadata for item. */\n itemMetadata?: WixCommonItemMetadata;\n}\n\nexport interface CommonBulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface SubmitBatchRequest {\n /**\n * Batch ID from CreateBatch\n * @format GUID\n */\n batchId?: string;\n}\n\nexport interface SubmitBatchResponse {\n /**\n * Job ID for async operation tracking. Pass to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/get-async-job) or [List Async Job Items](https://dev.wix.com/docs/rest/business-management/async-job/list-async-job-items) to retrieve details and metadata\n * @format GUID\n */\n jobId?: string;\n /** Total number of products submitted for processing */\n totalProducts?: number;\n}\n\nexport interface UpdateDocumentsEvent\n extends UpdateDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: DocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update documents matching filter */\n updateByFilter?: UpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: UpdateExistingOperation;\n /**\n * application which owns documents\n * @minLength 2\n */\n appDefId?: string | null;\n /**\n * type of the documents\n * @minLength 2\n */\n documentType?: string | null;\n /**\n * language of the documents\n * @minLength 2\n */\n language?: string | null;\n /**\n * site documents belong to\n * @minLength 2\n */\n msId?: string | null;\n}\n\n/** @oneof */\nexport interface UpdateDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: DocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update documents matching filter */\n updateByFilter?: UpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: UpdateExistingOperation;\n}\n\nexport interface DocumentUpdateOperation {\n /** documents to index or update */\n documents?: IndexDocument[];\n}\n\nexport interface IndexDocument {\n /** data bag with non-searchable fields (url, image) */\n payload?: DocumentPayload;\n /** what type of users should documents be visible to */\n exposure?: EnumWithLiterals;\n /** document with mandatory fields (id, title, description) and with fields specific to the type of the document */\n document?: Record<string, any> | null;\n /** what member groups is the document exposed to. Used only with GROUP_PROTECTED exposure */\n permittedMemberGroups?: string[];\n /** if true SEO is disabled for this document */\n seoHidden?: boolean | null;\n /** if true the page is a lightbox popup */\n isPopup?: boolean | null;\n}\n\nexport interface DocumentPayload {\n /** url of the page representing the document */\n url?: string | null;\n /** image which represents the document */\n documentImage?: DocumentImage;\n}\n\nexport interface DocumentImage {\n /** the name of the image */\n name?: string;\n /** the width of the image */\n width?: number;\n /** the height of the image */\n height?: number;\n}\n\nexport enum Enum {\n /** Default value. Means that permission not set */\n UNKNOWN = 'UNKNOWN',\n /** Protected exposure. Exposed to members and owners */\n PROTECTED = 'PROTECTED',\n /** Private exposure. Exposed to owners */\n PRIVATE = 'PRIVATE',\n /** Public exposure. Visible to everyone */\n PUBLIC = 'PUBLIC',\n /** Used for partial updates, to state that exposure is not changing */\n UNCHANGED = 'UNCHANGED',\n /** Protected to members of permitted groups and owners */\n GROUP_PROTECTED = 'GROUP_PROTECTED',\n}\n\n/** @enumType */\nexport type EnumWithLiterals =\n | Enum\n | 'UNKNOWN'\n | 'PROTECTED'\n | 'PRIVATE'\n | 'PUBLIC'\n | 'UNCHANGED'\n | 'GROUP_PROTECTED';\n\nexport interface DeleteByIdsOperation {\n /** ids of the documents to delete */\n documentIds?: string[];\n}\n\nexport interface DeleteByFilterOperation {\n /** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */\n filter?: Record<string, any> | null;\n}\n\nexport interface UpdateByFilterOperation {\n /** documents matching this filter will be updated */\n filter?: Record<string, any> | null;\n /** partial document to apply */\n document?: IndexDocument;\n}\n\nexport interface UpdateExistingOperation {\n /** documents to update */\n documents?: IndexDocument[];\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * 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.\n * 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.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface Empty {}\n\nexport interface SearchIndexingNotification {\n /** new state of indexing for the site specified in ms_id */\n indexState?: StateWithLiterals;\n /** type of the document the notification is targeted for. Applies to all types if not provided */\n documentType?: string | null;\n /** languaInternalDocumentUpdateByFilterOperationge the notification is targeted for. Applies to all languages if not provided */\n language?: string | null;\n /**\n * site for which notification is targeted\n * @minLength 2\n */\n msId?: string | null;\n}\n\nexport enum State {\n /** default state */\n Unknown = 'Unknown',\n /** metasite does not require site search indexing */\n Off = 'Off',\n /** metasite requires site search indexing */\n On = 'On',\n}\n\n/** @enumType */\nexport type StateWithLiterals = State | 'Unknown' | 'Off' | 'On';\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface InvalidateCache extends InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n /**\n * tell us why you're invalidating the cache. You don't need to add your app name\n * @maxLength 256\n */\n reason?: string | null;\n /** Is local DS */\n localDc?: boolean;\n hardPurge?: boolean;\n}\n\n/** @oneof */\nexport interface InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n}\n\nexport interface App {\n /**\n * The AppDefId\n * @minLength 1\n */\n appDefId?: string;\n /**\n * The instance Id\n * @format GUID\n */\n instanceId?: string;\n}\n\nexport interface Page {\n /**\n * the msid the page is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Page ID\n * @minLength 1\n */\n pageId?: string;\n}\n\nexport interface URI {\n /**\n * the msid the URI is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes\n * @minLength 1\n */\n uriPath?: string;\n}\n\nexport interface File {\n /**\n * the msid the file is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by filename (for media files such as PDFs)\n * @minLength 1\n * @maxLength 256\n */\n fileName?: string;\n}\n\nexport interface CustomTag {\n /**\n * the msid the tag is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Tag to invalidate by\n * @minLength 1\n * @maxLength 256\n */\n tag?: string;\n}\n\nexport interface DoNotCallCreateProductRequest {\n /** Product to be created */\n product?: V3Product;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport enum SingleEntityOpsRequestedFields {\n /** Not implemented. */\n UNKNOWN_REQUESTED_FIELD = 'UNKNOWN_REQUESTED_FIELD',\n /** The product's public storefront URL, including both relative path and full URL with base domain. */\n URL = 'URL',\n /** Currency information including the currency code and formatted price amounts for storefront display. */\n CURRENCY = 'CURRENCY',\n /** Returns basic info section metadata including IDs, unique names, and titles. Use with `INFO_SECTION_DESCRIPTION` or `INFO_SECTION_PLAIN_DESCRIPTION` to include content. */\n INFO_SECTION = 'INFO_SECTION',\n /**\n * Returns merchant-related financial data including cost ranges and variant revenue details like cost, profit, and profit margin.\n * Requires the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n MERCHANT_DATA = 'MERCHANT_DATA',\n /** Provides product description as plain HTML text. */\n PLAIN_DESCRIPTION = 'PLAIN_DESCRIPTION',\n /** Returns info section descriptions as HTML content. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_PLAIN_DESCRIPTION = 'INFO_SECTION_PLAIN_DESCRIPTION',\n /** Details subscription pricing options, empty for non-subscription products. */\n SUBSCRIPTION_PRICES_INFO = 'SUBSCRIPTION_PRICES_INFO',\n /** Returns the category breadcrumb navigation path from root categories down to the product's main category, including category IDs, names, and slugs. */\n BREADCRUMBS_INFO = 'BREADCRUMBS_INFO',\n /** Returns the weight measurement unit (KG, LB) for the product. */\n WEIGHT_MEASUREMENT_UNIT_INFO = 'WEIGHT_MEASUREMENT_UNIT_INFO',\n /** Enriches variant choices with human-readable option and choice names alongside render types. */\n VARIANT_OPTION_CHOICE_NAMES = 'VARIANT_OPTION_CHOICE_NAMES',\n /** Returns all media items associated with the product, including detailed metadata (URLs, alt-text, dimensions, filenames, file sizes). */\n MEDIA_ITEMS_INFO = 'MEDIA_ITEMS_INFO',\n /** Returns the product description as rich content with complete node structure, metadata, and styling information. */\n DESCRIPTION = 'DESCRIPTION',\n /** Provides the IDs and indexes of categories the product is directly assigned to. */\n DIRECT_CATEGORIES_INFO = 'DIRECT_CATEGORIES_INFO',\n /** Provides IDs and indexes for all categories including inherited parent categories. */\n ALL_CATEGORIES_INFO = 'ALL_CATEGORIES_INFO',\n /** Returns info section descriptions as rich content with complete node structure, metadata, and styling information. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_DESCRIPTION = 'INFO_SECTION_DESCRIPTION',\n /** Returns an optimized thumbnail image with standard dimensions, suitable for listings or previews. */\n THUMBNAIL = 'THUMBNAIL',\n}\n\n/** @enumType */\nexport type SingleEntityOpsRequestedFieldsWithLiterals =\n | SingleEntityOpsRequestedFields\n | 'UNKNOWN_REQUESTED_FIELD'\n | 'URL'\n | 'CURRENCY'\n | 'INFO_SECTION'\n | 'MERCHANT_DATA'\n | 'PLAIN_DESCRIPTION'\n | 'INFO_SECTION_PLAIN_DESCRIPTION'\n | 'SUBSCRIPTION_PRICES_INFO'\n | 'BREADCRUMBS_INFO'\n | 'WEIGHT_MEASUREMENT_UNIT_INFO'\n | 'VARIANT_OPTION_CHOICE_NAMES'\n | 'MEDIA_ITEMS_INFO'\n | 'DESCRIPTION'\n | 'DIRECT_CATEGORIES_INFO'\n | 'ALL_CATEGORIES_INFO'\n | 'INFO_SECTION_DESCRIPTION'\n | 'THUMBNAIL';\n\nexport interface DoNotCallCreateProductResponse {\n /** The created Product */\n product?: V3Product;\n}\n\nexport interface DuplicateMediaIdAssignedToProduct {\n /**\n * List of media IDs passed more than once.\n * @maxSize 15\n * @format GUID\n */\n mediaIds?: string[];\n}\n\nexport interface GetProductRequest {\n /**\n * Id of the Product to retrieve\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface GetProductResponse {\n /** The retrieved Product */\n product?: V3Product;\n}\n\nexport interface GetProductBySlugRequest {\n /**\n * Product slug. A permanent, friendly URL name unique per store.\n * @minLength 1\n * @maxLength 100\n */\n slug?: string;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface GetProductBySlugResponse {\n /** The retrieved Product */\n product?: V3Product;\n}\n\nexport interface DoNotCallUpdateProductRequest {\n /** Product to be updated, may be partial */\n product?: V3Product;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface DoNotCallUpdateProductResponse {\n /** The updated Product */\n product?: V3Product;\n}\n\nexport interface VariantsRemoved {\n /**\n * Removed variants ids.\n * @format GUID\n * @minSize 1\n * @maxSize 1000\n */\n variantIds?: string[];\n}\n\nexport interface UnsupportedFieldMasks {\n /**\n * Field masks provided in request but not supported\n * @maxLength 1000\n * @maxSize 100\n */\n fieldMasks?: string[];\n}\n\nexport interface DeleteProductRequest {\n /**\n * Id of the Product to delete\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n}\n\nexport interface DeleteProductResponse {}\n\nexport interface SearchProductsRequest {\n /**\n * 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).\n * It means that product will be returned only if one or more items satisfy all filters specified in $matchItems.\n * 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.\n * You still can use `$isEmpty` and `$exists` operators for fields listed above.\n * See examples to understand supported capabilities.\n * 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.\n * If you need variants-info, you can retrieve it for a specific product using the getProduct endpoint.\n */\n search?: CursorSearch;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CursorSearch extends CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).\n */\n filter?: Record<string, any> | null;\n /**\n * List of sort objects.\n *\n * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section).\n * @maxSize 10\n */\n sort?: Sorting[];\n /**\n * 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.\n * @maxSize 10\n */\n aggregations?: Aggregation[];\n /** Free text to match in searchable fields. */\n search?: SearchDetails;\n /**\n * UTC offset or IANA time zone. Valid values are\n * ISO 8601 UTC offsets, such as +02:00 or -06:00,\n * and IANA time zone IDs, such as Europe/Rome\n *\n * Affects all filters and aggregations returned values.\n * You may override this behavior in a specific filter by providing\n * timestamps including time zone. e.g. `\"2023-12-20T10:52:34.795Z\"`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n /** Ascending order. */\n ASC = 'ASC',\n /** Descending order. */\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface Aggregation extends AggregationKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n /** Nested aggregation */\n nested?: NestedAggregation;\n /**\n * User-defined name of aggregation, should be unique, will appear in aggregation results\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation, client must provide matching aggregation field below */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by, use dot notation to specify json path\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n /** Nested aggregation */\n nested?: NestedAggregation;\n}\n\nexport interface RangeBucket {\n /** Inclusive lower bound of the range. Required if to is not given */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if from is not given */\n to?: number | null;\n}\n\nexport enum SortType {\n /** Should sort by number of matches. */\n COUNT = 'COUNT',\n /** Should sort by value of the field alphabetically. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';\n\nexport enum SortDirection {\n /** Should sort by descending order. */\n DESC = 'DESC',\n /** Should sort by ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';\n\nexport enum MissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values from the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';\n\nexport interface IncludeMissingValuesOptions {\n /**\n * Can specify custom bucket name. Defaults are [string -> \"N/A\"], [int -> \"0\"], [bool -> \"false\"] ...\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum ScalarType {\n /** Undefined scalar type. */\n UNKNOWN_SCALAR_TYPE = 'UNKNOWN_SCALAR_TYPE',\n /** Count of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n}\n\n/** @enumType */\nexport type ScalarTypeWithLiterals =\n | ScalarType\n | 'UNKNOWN_SCALAR_TYPE'\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface ValueAggregation extends ValueAggregationOptionsOneOf {\n /** Options for including missing values */\n includeOptions?: IncludeMissingValuesOptions;\n /** Should sort by number of matches or value of the field */\n sortType?: SortTypeWithLiterals;\n /** Should sort in ascending or descending order */\n sortDirection?: SortDirectionWithLiterals;\n /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */\n limit?: number | null;\n /** Should missing values be included or excluded from the aggregation results. Default is EXCLUDE */\n missingValues?: MissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface ValueAggregationOptionsOneOf {\n /** Options for including missing values */\n includeOptions?: IncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationType {\n /** Undefined nested aggregation type. */\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** An aggregation where result buckets are dynamically built - one per unique value. */\n VALUE = 'VALUE',\n /** An aggregation where user can define set of ranges - each representing a bucket. */\n RANGE = 'RANGE',\n /** A single-value metric aggregation. For example: min, max, sum, avg. */\n SCALAR = 'SCALAR',\n /** An aggregation where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationTypeWithLiterals =\n | NestedAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface RangeAggregation {\n /**\n * 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\n * @maxSize 50\n */\n buckets?: RangeBucket[];\n}\n\nexport interface ScalarAggregation {\n /** Define the operator for the scalar aggregation */\n type?: ScalarTypeWithLiterals;\n}\n\nexport interface DateHistogramAggregation {\n /** Interval for date histogram aggregation */\n interval?: IntervalWithLiterals;\n}\n\nexport enum Interval {\n /** Undefined interval type. */\n UNKNOWN_INTERVAL = 'UNKNOWN_INTERVAL',\n /** Yearly interval. */\n YEAR = 'YEAR',\n /** Monthly interval. */\n MONTH = 'MONTH',\n /** Weekly interval. */\n WEEK = 'WEEK',\n /** Daily interval. */\n DAY = 'DAY',\n /** Hourly interval. */\n HOUR = 'HOUR',\n /** Minute interval. */\n MINUTE = 'MINUTE',\n /** Second interval. */\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type IntervalWithLiterals =\n | Interval\n | 'UNKNOWN_INTERVAL'\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface NestedAggregationItem extends NestedAggregationItemKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n /**\n * User-defined name of aggregation, should be unique, will appear in aggregation results\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation, client must provide matching aggregation field below */\n type?: NestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by, use dont notation to specify json path\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationItemKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n}\n\nexport enum AggregationType {\n /** Undefined aggregation type. */\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** An aggregation where result buckets are dynamically built - one per unique value. */\n VALUE = 'VALUE',\n /** An aggregation where a user can define set of ranges - each representing a bucket. */\n RANGE = 'RANGE',\n /** A single-value metric aggregation. For example: min, max, sum, avg. */\n SCALAR = 'SCALAR',\n /** An aggregation where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** A Multi-level aggregation where each next aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type AggregationTypeWithLiterals =\n | AggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */\nexport interface NestedAggregation {\n /**\n * Flattened list of aggregations, where each next aggregation is nested within previous one\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: NestedAggregationItem[];\n}\n\nexport interface SearchDetails {\n /** Defines how separate search terms in `expression` are combined. */\n mode?: ModeWithLiterals;\n /**\n * Search term or expression\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */\n fuzzy?: boolean;\n}\n\nexport enum Mode {\n /** Any of the search terms must be present. */\n OR = 'OR',\n /** All search terms must be present. */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type ModeWithLiterals = Mode | 'OR' | 'AND';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport enum RequestedFields {\n /** Not implemented. */\n UNKNOWN_REQUESTED_FIELD = 'UNKNOWN_REQUESTED_FIELD',\n /** The product's public storefront URL, including both relative path and full URL with base domain. */\n URL = 'URL',\n /** Currency information including the currency code and formatted price amounts for storefront display. */\n CURRENCY = 'CURRENCY',\n /** Returns basic info section metadata including IDs, unique names, and titles. Use with `INFO_SECTION_DESCRIPTION` or `INFO_SECTION_PLAIN_DESCRIPTION` to include content. */\n INFO_SECTION = 'INFO_SECTION',\n /**\n * Returns merchant-related financial data including cost ranges and variant revenue details like cost, profit, and profit margin.\n * Requires the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n MERCHANT_DATA = 'MERCHANT_DATA',\n /** Provides product description as plain HTML text. */\n PLAIN_DESCRIPTION = 'PLAIN_DESCRIPTION',\n /** Returns info section descriptions as HTML content. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_PLAIN_DESCRIPTION = 'INFO_SECTION_PLAIN_DESCRIPTION',\n /** Details subscription pricing options, empty for non-subscription products. */\n SUBSCRIPTION_PRICES_INFO = 'SUBSCRIPTION_PRICES_INFO',\n /** Returns the category breadcrumb navigation path from root categories down to the product's main category, including category IDs, names, and slugs. */\n BREADCRUMBS_INFO = 'BREADCRUMBS_INFO',\n /** Returns the weight measurement unit (KG, LB) for the product. */\n WEIGHT_MEASUREMENT_UNIT_INFO = 'WEIGHT_MEASUREMENT_UNIT_INFO',\n /** Enriches variant choices with human-readable option and choice names alongside render types. */\n VARIANT_OPTION_CHOICE_NAMES = 'VARIANT_OPTION_CHOICE_NAMES',\n /** Returns all media items associated with the product, including detailed metadata (URLs, alt-text, dimensions, filenames, file sizes). */\n MEDIA_ITEMS_INFO = 'MEDIA_ITEMS_INFO',\n /** Returns the product description as rich content with complete node structure, metadata, and styling information. */\n DESCRIPTION = 'DESCRIPTION',\n /** Provides the IDs and indexes of categories the product is directly assigned to. */\n DIRECT_CATEGORIES_INFO = 'DIRECT_CATEGORIES_INFO',\n /** Provides IDs and indexes for all categories including inherited parent categories. */\n ALL_CATEGORIES_INFO = 'ALL_CATEGORIES_INFO',\n /** Returns info section descriptions as rich content with complete node structure, metadata, and styling information. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_DESCRIPTION = 'INFO_SECTION_DESCRIPTION',\n /** Returns an optimized thumbnail image with standard dimensions, suitable for listings or previews. */\n THUMBNAIL = 'THUMBNAIL',\n}\n\n/** @enumType */\nexport type RequestedFieldsWithLiterals =\n | RequestedFields\n | 'UNKNOWN_REQUESTED_FIELD'\n | 'URL'\n | 'CURRENCY'\n | 'INFO_SECTION'\n | 'MERCHANT_DATA'\n | 'PLAIN_DESCRIPTION'\n | 'INFO_SECTION_PLAIN_DESCRIPTION'\n | 'SUBSCRIPTION_PRICES_INFO'\n | 'BREADCRUMBS_INFO'\n | 'WEIGHT_MEASUREMENT_UNIT_INFO'\n | 'VARIANT_OPTION_CHOICE_NAMES'\n | 'MEDIA_ITEMS_INFO'\n | 'DESCRIPTION'\n | 'DIRECT_CATEGORIES_INFO'\n | 'ALL_CATEGORIES_INFO'\n | 'INFO_SECTION_DESCRIPTION'\n | 'THUMBNAIL';\n\nexport interface SearchProductsResponse {\n /** Products which satisfy the provided query. */\n products?: V3Product[];\n /** Paging metadata. Contains cursor which can be used in next query. */\n pagingMetadata?: CursorPagingMetadata;\n /** Aggregation data. */\n aggregationData?: AggregationData;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface AggregationData {\n /**\n * key = aggregation name (as derived from search request)\n * @maxSize 10000\n */\n results?: AggregationResults[];\n}\n\nexport interface ValueAggregationResult {\n /**\n * Value of the field\n * @maxLength 100\n */\n value?: string;\n /** Count of entities with this value */\n count?: number;\n}\n\nexport interface RangeAggregationResult {\n /** Inclusive lower bound of the range */\n from?: number | null;\n /** Exclusive upper bound of the range */\n to?: number | null;\n /** Count of entities in this range */\n count?: number;\n}\n\nexport interface NestedAggregationResults\n extends NestedAggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n /**\n * User-defined name of aggregation, matches the one provided in request\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that matches result */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by, matches the one provided in request\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n}\n\nexport interface ValueResults {\n /**\n * List of value aggregations\n * @maxSize 250\n */\n results?: ValueAggregationResult[];\n}\n\nexport interface RangeResults {\n /**\n * List of ranges returned in same order as requested\n * @maxSize 50\n */\n results?: RangeAggregationResult[];\n}\n\nexport interface AggregationResultsScalarResult {\n /** Type of scalar aggregation */\n type?: ScalarTypeWithLiterals;\n /** Value of the scalar aggregation */\n value?: number;\n}\n\nexport interface NestedValueAggregationResult {\n /**\n * Value of the field\n * @maxLength 1000\n */\n value?: string;\n /** Nested aggregations */\n nestedResults?: NestedAggregationResults;\n}\n\nexport interface ValueResult {\n /**\n * Value of the field\n * @maxLength 1000\n */\n value?: string;\n /** Count of entities with this value */\n count?: number | null;\n}\n\nexport interface RangeResult {\n /** Inclusive lower bound of the range */\n from?: number | null;\n /** Exclusive upper bound of the range */\n to?: number | null;\n /** Count of entities in this range */\n count?: number | null;\n}\n\nexport interface ScalarResult {\n /** Value of the scalar aggregation */\n value?: number;\n}\n\nexport interface NestedResultValue extends NestedResultValueResultOneOf {\n /** Value aggregation result */\n value?: ValueResult;\n /** Range aggregation result */\n range?: RangeResult;\n /** Scalar aggregation result */\n scalar?: ScalarResult;\n /** Date histogram aggregation result */\n dateHistogram?: ValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultValueResultOneOf {\n /** Value aggregation result */\n value?: ValueResult;\n /** Range aggregation result */\n range?: RangeResult;\n /** Scalar aggregation result */\n scalar?: ScalarResult;\n /** Date histogram aggregation result */\n dateHistogram?: ValueResult;\n}\n\nexport interface Results {\n /** List of nested aggregations */\n results?: Record<string, NestedResultValue>;\n}\n\nexport interface DateHistogramResult {\n /**\n * Date in ISO 8601 format\n * @maxLength 100\n */\n value?: string;\n /** Count of documents in the bucket */\n count?: number;\n}\n\nexport interface GroupByValueResults {\n /**\n * List of value aggregations\n * @maxSize 1000\n */\n results?: NestedValueAggregationResult[];\n}\n\nexport interface DateHistogramResults {\n /**\n * List of date histogram aggregations\n * @maxSize 200\n */\n results?: DateHistogramResult[];\n}\n\n/**\n * Results of `NESTED` aggregation type in a flattened form\n * aggregations in resulting array are keyed by requested aggregation `name`.\n */\nexport interface NestedResults {\n /**\n * List of nested aggregations\n * @maxSize 1000\n */\n results?: Results[];\n}\n\nexport interface AggregationResults extends AggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results */\n nested?: NestedResults;\n /**\n * User-defined name of aggregation as derived from search request\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that must match provided kind as derived from search request */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by as derived from search request\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results */\n nested?: NestedResults;\n}\n\nexport interface SearchRelatedProductsRequest {\n /** Search parameters. */\n searchRelated?: SearchRelated;\n}\n\nexport interface SearchRelated {\n /**\n * A list of entity IDs to search related entities for\n * @minSize 1\n * @maxSize 10\n * @maxLength 50\n */\n relatedToIds?: string[];\n /** Search details */\n search?: SearchRelatedDetails;\n /** A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language). */\n filter?: Record<string, any> | null;\n /**\n * Sort object in the form [{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}]\n * @maxSize 10\n */\n sort?: Sorting[];\n /**\n * Number of related documents to return\n * @max 100\n */\n limit?: number | null;\n}\n\nexport interface SearchRelatedDetails {\n /**\n * Search term or expression\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n}\n\nexport interface SearchRelatedProductsResponse {\n /**\n * The IDs of related Products that satisfy the request.\n * @format GUID\n * @maxLength 100\n */\n productIds?: string[];\n}\n\nexport interface EventuallyConsistentQueryProductsRequest {\n /**\n * 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).\n * It means that product will be returned only if one or more items satisfy all filters specified in $matchItems.\n * 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.\n * You still can use `$isEmpty` and `$exists` operators for fields listed above.\n * See examples to understand supported capabilities.\n */\n query?: CursorQuery;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section).\n * @maxSize 5\n */\n sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface EventuallyConsistentQueryProductsResponse {\n /** Products which satisfy the provided query. */\n products?: V3Product[];\n /** Paging metadata. Contains cursor which can be used in next query. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface QueryProductsRequest {\n /** WQL expression */\n query?: CursorQuery;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface QueryProductsResponse {\n /** The retrieved Products */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface DeprecatedSearchProductsWithOffsetRequest {\n /** Filter and sort with limit/offset based paging */\n search?: PlatformOffsetSearch;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface PlatformOffsetSearch\n extends PlatformOffsetSearchPagingMethodOneOf {\n /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */\n paging?: PlatformPaging;\n /** A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language). */\n filter?: Record<string, any> | null;\n /** Sort object in the form [{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}] */\n sort?: CommonSorting[];\n /** 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. */\n aggregations?: CommonAggregation[];\n /** free text to match in searchable fields */\n search?: CommonSearchDetails;\n}\n\n/** @oneof */\nexport interface PlatformOffsetSearchPagingMethodOneOf {\n /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */\n paging?: PlatformPaging;\n}\n\nexport interface CommonSorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: CommonSortOrderWithLiterals;\n}\n\nexport enum CommonSortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type CommonSortOrderWithLiterals = CommonSortOrder | 'ASC' | 'DESC';\n\nexport interface CommonAggregation extends CommonAggregationKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n /** 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`. */\n nested?: AggregationNestedAggregation;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n type?: CommonAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n /**\n * Deprecated. Use `nested` instead.\n * @deprecated Deprecated. Use `nested` instead.\n * @replacedBy kind.nested\n * @targetRemovalDate 2024-03-30\n */\n groupBy?: GroupByAggregation;\n}\n\n/** @oneof */\nexport interface CommonAggregationKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n /** 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`. */\n nested?: AggregationNestedAggregation;\n}\n\nexport interface RangeAggregationRangeBucket {\n /** Inclusive lower bound of the range. Required if `to` is not provided. */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if `from` is not provided. */\n to?: number | null;\n}\n\nexport enum ValueAggregationSortType {\n /** Number of matches in the results. */\n COUNT = 'COUNT',\n /** Alphabetically by the field value. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type ValueAggregationSortTypeWithLiterals =\n | ValueAggregationSortType\n | 'COUNT'\n | 'VALUE';\n\nexport enum ValueAggregationSortDirection {\n /** Descending order. */\n DESC = 'DESC',\n /** Ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type ValueAggregationSortDirectionWithLiterals =\n | ValueAggregationSortDirection\n | 'DESC'\n | 'ASC';\n\nexport enum ValueAggregationMissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values in the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type ValueAggregationMissingValuesWithLiterals =\n | ValueAggregationMissingValues\n | 'EXCLUDE'\n | 'INCLUDE';\n\nexport interface ValueAggregationIncludeMissingValuesOptions {\n /**\n * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum CommonScalarType {\n UNKNOWN_SCALAR_TYPE = 'UNKNOWN_SCALAR_TYPE',\n /** Total number of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n}\n\n/** @enumType */\nexport type CommonScalarTypeWithLiterals =\n | CommonScalarType\n | 'UNKNOWN_SCALAR_TYPE'\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface AggregationValueAggregation\n extends AggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: ValueAggregationIncludeMissingValuesOptions;\n /** Sort type. */\n sortType?: ValueAggregationSortTypeWithLiterals;\n /** Sort direction. */\n sortDirection?: ValueAggregationSortDirectionWithLiterals;\n /**\n * Number of aggregation results to return.\n * Min: `1`\n * Max: `250`\n * Default: `10`\n */\n limit?: number | null;\n /**\n * Whether to include or exclude missing values in the aggregation results.\n * Default: `EXCLUDE`.\n */\n missingValues?: ValueAggregationMissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface AggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: ValueAggregationIncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationNestedAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationNestedAggregationTypeWithLiterals =\n | NestedAggregationNestedAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface AggregationRangeAggregation {\n /**\n * List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.\n * @maxSize 50\n */\n buckets?: RangeAggregationRangeBucket[];\n}\n\nexport interface AggregationScalarAggregation {\n /** Operator type for the scalar aggregation. */\n type?: CommonScalarTypeWithLiterals;\n}\n\nexport interface AggregationDateHistogramAggregation {\n /** Interval for date histogram aggregation. */\n interval?: DateHistogramAggregationIntervalWithLiterals;\n}\n\nexport enum DateHistogramAggregationInterval {\n UNKNOWN_INTERVAL = 'UNKNOWN_INTERVAL',\n YEAR = 'YEAR',\n MONTH = 'MONTH',\n WEEK = 'WEEK',\n DAY = 'DAY',\n HOUR = 'HOUR',\n MINUTE = 'MINUTE',\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type DateHistogramAggregationIntervalWithLiterals =\n | DateHistogramAggregationInterval\n | 'UNKNOWN_INTERVAL'\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface NestedAggregationNestedAggregationItem\n extends NestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. The matching aggregation field must be passed. */\n type?: NestedAggregationNestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n}\n\nexport enum CommonAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type CommonAggregationTypeWithLiterals =\n | CommonAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */\nexport interface AggregationNestedAggregation {\n /**\n * Flattened list of aggregations, where each aggregation is nested within previous one.\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: NestedAggregationNestedAggregationItem[];\n}\n\nexport interface GroupByAggregation extends GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: AggregationValueAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /**\n * Field to aggregate by.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: AggregationValueAggregation;\n}\n\nexport interface CommonSearchDetails {\n /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */\n mode?: SearchDetailsModeWithLiterals;\n /**\n * Search term or expression.\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * 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`.\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** 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. */\n fuzzy?: boolean;\n}\n\nexport enum SearchDetailsMode {\n /** At least one of the search terms must be present. */\n OR = 'OR',\n /** All search terms must be present. */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type SearchDetailsModeWithLiterals = SearchDetailsMode | 'OR' | 'AND';\n\nexport interface PlatformPaging {\n /**\n * Number of items to load.\n * @max 100\n */\n limit?: number | null;\n /** Number of items to skip in the current sort order. */\n offset?: number | null;\n}\n\nexport interface DeprecatedSearchProductsWithOffsetResponse {\n /** Products which satisfy the provided query. */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: PagingMetadata;\n /** Aggregation data. */\n aggregationData?: AggregationData;\n}\n\nexport interface PagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Offset that was requested. */\n offset?: number | null;\n /** Total number of items that match the query. */\n total?: number | null;\n /** Flag that indicates the server failed to calculate the `total` field. */\n tooManyToCount?: boolean | null;\n}\n\nexport interface RetrieveVariantsRequest {\n /**\n * Ids of the product and variants to retrieve\n * @maxSize 100\n */\n productVariantIds?: ProductVariantIds[];\n /**\n * Pointer to the next page in the list of results.\n * Pass the relevant cursor token from the `pagingMetadata` in the previous call's response.\n * Not relevant for the first request.\n */\n cursorPaging?: VariantsCursorPaging;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: VariantsOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface ProductVariantIds {\n /**\n * Product id of the requested variants.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * A list of variant ids.\n * @maxSize 1000\n * @minLength 1\n * @maxLength 36\n */\n variantIds?: string[];\n}\n\nexport interface VariantsCursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 1000\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 64\n */\n cursor?: string | null;\n}\n\nexport enum VariantsOpsRequestedFields {\n /** Not implemented. */\n UNKNOWN_REQUESTED_FIELD = 'UNKNOWN_REQUESTED_FIELD',\n CURRENCY = 'CURRENCY',\n /** You can request merchant data only if you have the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope. */\n MERCHANT_DATA = 'MERCHANT_DATA',\n SUBSCRIPTION_PRICES_INFO = 'SUBSCRIPTION_PRICES_INFO',\n VARIANT_OPTION_CHOICE_NAMES = 'VARIANT_OPTION_CHOICE_NAMES',\n THUMBNAIL = 'THUMBNAIL',\n}\n\n/** @enumType */\nexport type VariantsOpsRequestedFieldsWithLiterals =\n | VariantsOpsRequestedFields\n | 'UNKNOWN_REQUESTED_FIELD'\n | 'CURRENCY'\n | 'MERCHANT_DATA'\n | 'SUBSCRIPTION_PRICES_INFO'\n | 'VARIANT_OPTION_CHOICE_NAMES'\n | 'THUMBNAIL';\n\nexport interface RetrieveVariantsResponse {\n /** The retrieved Products and Variants */\n productVariants?: ProductVariants[];\n /** Paging metadata. Contains cursor which can be used in next query. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface ProductVariants {\n /**\n * Product id of the requested variants.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * A list of variants.\n * @maxSize 1000\n */\n variants?: Variant[];\n}\n\nexport interface CountProductsRequest {\n /**\n * A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language).\n * To understand supported filters and limitations see `SearchProducts` method.\n */\n filter?: Record<string, any> | null;\n /** free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface CountProductsResponse {\n /** The amount of products which apply to the request */\n count?: number;\n}\n\nexport interface DoNotCallBulkCreateProductsRequest {\n /**\n * List of products to be created.\n * @minSize 1\n * @maxSize 100\n */\n products?: V3Product[];\n /** Whether to return the full product entity in the response. */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response. Relevant only if `return_entity` true.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface DoNotCallBulkCreateProductsResponse {\n /**\n * Products created by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface V3BulkProductResult {\n /** Bulk action metadata for product. */\n itemMetadata?: CommonItemMetadata;\n /**\n * Full product entity.\n *\n * Returned only if `returnEntity: true` is passed in the request.\n */\n item?: V3Product;\n}\n\nexport interface CommonItemMetadata {\n /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface BulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface DoNotCallBulkUpdateProductsRequest {\n /**\n * List of products to be updated.\n * @minSize 1\n * @maxSize 100\n */\n products?: MaskedProduct[];\n /** Whether to return the full product entity in the response. */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response. Relevant only if `return_entity` true.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface MaskedProduct {\n /** product to be updated, may be partial. */\n product?: V3Product;\n}\n\nexport interface DoNotCallBulkUpdateProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpdateProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"name\": \"value1\",\n * \"categoryIds\":{\"$in\":[\"categoryId1\", \"categoryId2\"]}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /** Product with new field values. */\n product?: V3Product;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkUpdateProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkDeleteProductsRequest {\n /**\n * IDs of products to be deleted.\n * @minLength 1\n * @maxLength 36\n * @minSize 1\n * @maxSize 100\n */\n productIds?: string[];\n}\n\nexport interface BulkDeleteProductsResponse {\n /**\n * Products deleted by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkProductResult {\n /** Information about successful action or error for failure. */\n itemMetadata?: CommonItemMetadata;\n}\n\nexport interface BulkDeleteProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"actualPriceRange.minValue\": {\"$lte\": 5.99}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkDeleteProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkAddInfoSectionsToProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"actualPriceRange.minValue\": {\"$lte\": 5.99}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /**\n * Info sections to be added\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds?: string[];\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkAddInfoSectionsToProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface FulfillerDeleted {\n /** @format GUID */\n _id?: string;\n}\n\nexport interface BulkAddInfoSectionsToProductsRequest {\n /**\n * Products to be updated with id and revision.\n * @minSize 1\n * @maxSize 100\n */\n products?: ProductIdWithRevision[];\n /**\n * Products to be updated with id and revision.\n * Info section to be added\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds?: string[];\n /** Whether to return all updated product entities in the response. Default: false */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface ProductIdWithRevision {\n /**\n * ID of product.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /** The revision of the Product */\n revision?: string;\n}\n\nexport interface BulkAddInfoSectionsToProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"name\": \"value1\",\n * \"categoryIds\":{\"$in\":[\"categoryId1\", \"categoryId2\"]}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /**\n * Info sections to be removed\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds?: string[];\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsRequest {\n /**\n * Products to be updated with id and revision.\n * @minSize 1\n * @maxSize 100\n */\n products?: ProductIdWithRevision[];\n /**\n * Info section to be removed.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds?: string[];\n /** Whether to return all updated product entities in the response. Default: false */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 5\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpdateVariantsByFilterRequest {\n /** Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */\n filter?: Record<string, any> | null;\n /** Variant with new field values. */\n variant?: Variant;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkUpdateVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkAdjustProductVariantsByFilterRequest {\n /** Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$contains` */\n filter?: Record<string, any> | null;\n /** The amount or percentage to change the variants cost by */\n cost?: AdjustValue;\n /** Defines rounding strategy of new calculated prices. Default: CURRENCY_PRECISION. */\n rounding?: RoundingStrategyWithLiterals;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n /** Actual price adjustment. */\n actualPrice?: AdjustValue;\n /** Compare at price adjustment. */\n compareAtPrice?: AdjustValue;\n /**\n * Set variant actualPrice from compareAtPrice by applying provided discount to it.\n * if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.\n * 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%).\n */\n compareAtPriceDiscount?: UnsignedAdjustValue;\n}\n\nexport interface AdjustValue extends AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\nexport enum RoundingStrategy {\n /** Undefined rounding strategy. */\n UNKNOWN_ROUNDING_STRATEGY = 'UNKNOWN_ROUNDING_STRATEGY',\n /**\n * Calculated prices are saved without rounding to keep the maximum possible precision. It's a good idea to round numbers before displaying them.\n * For example, input $3.5555 -> saved value $3.5555\n */\n NO_ROUNDING = 'NO_ROUNDING',\n /**\n * Calculated prices are rounded according to currency precision.\n * For example:, input $3.5555 -> saved value $3.56, input ¥3.5555 -> saved value ¥4\n */\n CURRENCY_PRECISION = 'CURRENCY_PRECISION',\n /**\n * Calculated prices are rounded to nearest whole number.\n * For example, input $3.5555 -> saved value $4\n */\n NEAREST_WHOLE_NUMBER = 'NEAREST_WHOLE_NUMBER',\n}\n\n/** @enumType */\nexport type RoundingStrategyWithLiterals =\n | RoundingStrategy\n | 'UNKNOWN_ROUNDING_STRATEGY'\n | 'NO_ROUNDING'\n | 'CURRENCY_PRECISION'\n | 'NEAREST_WHOLE_NUMBER';\n\nexport interface UnsignedAdjustValue\n extends UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\nexport interface BulkAdjustProductVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkInventoryItemAction {\n /**\n * Inventory items.\n * @maxSize 1000\n */\n inventoryItems?: InventoryItem[];\n /** Type of bulk inventory changed event - created, updated or deleted */\n eventType?: EventTypeWithLiterals;\n}\n\n/** Inventory Item. */\nexport interface InventoryItem extends InventoryItemTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n /**\n * Inventory item ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the inventory item is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the inventory item.\n *\n * Ignored when creating an inventory item.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the inventory item was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the inventory item was created.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Variant ID.\n * @format GUID\n * @immutable\n */\n variantId?: string;\n /**\n * Stores location ID.\n * @format GUID\n * @immutable\n */\n locationId?: string | null;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n */\n productId?: string;\n /**\n * Whether the quantity is being tracked.\n * @readonly\n */\n trackQuantity?: boolean;\n /**\n * Inventory item availability status.\n *\n * Supported values:\n * + OUT_OF_STOCK: Product is out of stock.\n * + IN_STOCK: Product is in stock. See `quantity` field for exact amount in stock.\n * + PREORDER: Product is only available for preorder. See `preorderInfo` field for more info.\n * @readonly\n */\n availabilityStatus?: AvailabilityStatusWithLiterals;\n /** Item preorder info. */\n preorderInfo?: PreorderInfo;\n /**\n * Product.\n * @readonly\n */\n product?: Product;\n /**\n * Custom field data for the inventory item object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the app dashboard before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n}\n\n/** @oneof */\nexport interface InventoryItemTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n}\n\nexport enum AvailabilityStatus {\n UNKNOWN_AVAILABILITY_STATUS = 'UNKNOWN_AVAILABILITY_STATUS',\n /** Product is out of stock. */\n OUT_OF_STOCK = 'OUT_OF_STOCK',\n /** Product is in stock. See `quantity` field for exact amount in stock. */\n IN_STOCK = 'IN_STOCK',\n /** Product is only available for preorder. See `preorderInfo` field for more info. */\n PREORDER = 'PREORDER',\n}\n\n/** @enumType */\nexport type AvailabilityStatusWithLiterals =\n | AvailabilityStatus\n | 'UNKNOWN_AVAILABILITY_STATUS'\n | 'OUT_OF_STOCK'\n | 'IN_STOCK'\n | 'PREORDER';\n\nexport interface Product {\n /**\n * Product name.\n * @maxLength 80\n */\n name?: string | null;\n /**\n * List of category IDs that this product is included in directly.\n * @format GUID\n * @maxSize 2000\n */\n directCategoryIds?: string[];\n /**\n * Variant name.\n * @minLength 1\n * @maxLength 250\n */\n variantName?: string | null;\n /**\n * Variant SKU (stock keeping unit).\n * @minLength 1\n * @maxLength 40\n */\n variantSku?: string | null;\n /** Variant visible. */\n variantVisible?: boolean | null;\n}\n\nexport enum EventType {\n UNKNOWN = 'UNKNOWN',\n CREATED = 'CREATED',\n UPDATED = 'UPDATED',\n DELETED = 'DELETED',\n}\n\n/** @enumType */\nexport type EventTypeWithLiterals =\n | EventType\n | 'UNKNOWN'\n | 'CREATED'\n | 'UPDATED'\n | 'DELETED';\n\nexport interface CalculateProductInventorPreorderStatusAsyncRequest {\n /**\n * ID of the product to calculate inventory for\n * @format GUID\n */\n productId?: string;\n}\n\nexport interface CalculateProductInventorPreorderStatusAsyncResponse {}\n\nexport interface CreateProductRequest {\n /**\n * Product to create.\n *\n * At least 1 variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n */\n product: V3Product;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface CreateProductResponse {\n /** Created product. */\n product?: V3Product;\n}\n\nexport interface VariantsNotAlignedWithProduct {\n /**\n * Variants not aligned with product\n * @maxSize 1000\n */\n variants?: VariantNotAlignedWithProduct[];\n}\n\nexport interface VariantNotAlignedWithProduct {\n /**\n * variant id\n * @format GUID\n */\n variantId?: string;\n /**\n * what's wrong with this specific variant\n * @maxLength 200\n */\n errorDescription?: string;\n}\n\nexport interface CreateProductWithInventoryRequest {\n /**\n * Product to create with inventory.\n *\n * At least one variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n */\n product: ProductWithInventory;\n /**\n * Whether to return inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface CreateProductWithInventoryResponse {\n /** Created product. */\n product?: V3Product;\n /** Inventories created by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface BulkInventoryItemResults {\n /**\n * Inventories modified by bulk action.\n * @maxSize 1000\n */\n results?: BulkInventoryItemResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n /** Error details in case of failed action. */\n error?: ApplicationError;\n}\n\nexport interface BulkInventoryItemResult {\n /** Bulk action metadata for inventory item. */\n itemMetadata?: ItemMetadata;\n /**\n * Full inventory item entity.\n *\n * Returned only if `returnEntity: true` is passed in the request.\n */\n item?: InventoryItem;\n}\n\nexport interface ItemMetadata {\n /**\n * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n * @format GUID\n */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface WixCommonBulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface UpdateProductRequest {\n /** Product to update. */\n product: V3Product;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface UpdateProductResponse {\n /** Updated product. */\n product?: V3Product;\n}\n\nexport interface UpdateProductWithInventoryRequest {\n /** Product to update. */\n product: ProductWithInventory;\n /**\n * Whether to return the full inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface UpdateProductWithInventoryResponse {\n /** Updated product. */\n product?: V3Product;\n /** Inventories updated by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface BulkCreateProductsRequest {\n /**\n * List of products to create.\n * @minSize 1\n * @maxSize 100\n */\n products: V3Product[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkCreateProductsResponse {\n /**\n * Products created by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface CatalogV3BulkProductResult {\n /** Information about successful action or error for failure. */\n itemMetadata?: UpstreamWixCommonItemMetadata;\n /**\n * Full product entity.\n *\n * Returned only if `returnEntity: true` is passed in the request.\n */\n item?: V3Product;\n}\n\nexport interface UpstreamWixCommonItemMetadata {\n /**\n * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface InvalidDigitalFileIds {\n /**\n * ids of digital files which caused errors.\n * @maxSize 1000\n * @minLength 1\n * @maxLength 100\n */\n ids?: string[];\n}\n\nexport interface BulkCreateProductsWithInventoryRequest {\n /**\n * List of products to create with inventory.\n * @minSize 1\n * @maxSize 100\n */\n products: ProductWithInventory[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkCreateProductsWithInventoryResponse {\n /** Products created by bulk action. */\n productResults?: BulkProductResults;\n /** Inventories created by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface BulkProductResults {\n /**\n * Products modified by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkUpdateProductsRequest {\n /**\n * List of products to update.\n * @minSize 1\n * @maxSize 100\n */\n products: V3MaskedProduct[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3MaskedProduct {\n /** Product to update. */\n product?: V3Product;\n}\n\nexport interface BulkUpdateProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkUpdateProductsWithInventoryRequest {\n /**\n * List of products to update.\n * @minSize 1\n * @maxSize 100\n */\n products: MaskedProductWithInventory[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface MaskedProductWithInventory {\n /** Product to update. */\n product?: ProductWithInventory;\n}\n\nexport interface BulkUpdateProductsWithInventoryResponse {\n /** Products updated by bulk action. */\n productResults?: BulkProductResults;\n /** Inventories updated by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface V3BulkUpdateProductsByFilterRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Product to update. */\n product: V3Product;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface WixCommonSearchDetails {\n /** Defines how separate search terms in `expression` are combined */\n mode?: CommonSearchDetailsModeWithLiterals;\n /**\n * Search term or expression\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * 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`.\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** 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. */\n fuzzy?: boolean;\n}\n\nexport enum CommonSearchDetailsMode {\n /** Any of the search terms must be present */\n OR = 'OR',\n /** All search terms must be present */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type CommonSearchDetailsModeWithLiterals =\n | CommonSearchDetailsMode\n | 'OR'\n | 'AND';\n\nexport interface V3BulkUpdateProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3DeleteProductRequest {\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n */\n productId: string;\n}\n\nexport interface V3DeleteProductResponse {}\n\nexport interface V3BulkDeleteProductsRequest {\n /**\n * IDs of products to delete.\n * @minLength 1\n * @maxLength 36\n * @minSize 1\n * @maxSize 100\n */\n productIds: string[];\n}\n\nexport interface V3BulkDeleteProductsResponse {\n /**\n * Products deleted by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkDeleteProductsResponseBulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkDeleteProductsResponseBulkProductResult {\n /** Bulk action metadata for products. */\n itemMetadata?: UpstreamWixCommonItemMetadata;\n}\n\nexport interface V3BulkDeleteProductsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface V3BulkDeleteProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3GetProductRequest {\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n */\n productId: string;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface V3GetProductResponse {\n /** Product. */\n product?: V3Product;\n}\n\nexport interface V3GetProductBySlugRequest {\n /**\n * Product slug.\n * @minLength 1\n * @maxLength 100\n */\n slug: string;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface V3GetProductBySlugResponse {\n /** Product. */\n product?: V3Product;\n}\n\nexport interface V3SearchProductsRequest {\n /** Search options. */\n search?: CommonCursorSearch;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CommonCursorSearch\n extends CommonCursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 10\n */\n sort?: WixCommonSorting[];\n /**\n * 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.\n * @maxSize 10\n */\n aggregations?: WixCommonAggregation[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /**\n * 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.\n * Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\".\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CommonCursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n}\n\nexport interface WixCommonSorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: WixCommonSortOrderWithLiterals;\n /**\n * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by\n * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked.\n *\n * If multiple filters are provided, they are combined with AND operator.\n *\n * Example:\n * Given we have document like {\"id\": \"1\", \"nestedField\": [{\"price\": 10, \"region\": \"EU\"}, {\"price\": 20, \"region\": \"US\"}]}\n * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be\n * { fieldName: \"nestedField.price\", \"select_items_by\": [{\"nestedField.region\": \"US\"}] }\n * @maxSize 10\n */\n selectItemsBy?: Record<string, any>[] | null;\n}\n\nexport enum WixCommonSortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type WixCommonSortOrderWithLiterals =\n | WixCommonSortOrder\n | 'ASC'\n | 'DESC';\n\nexport interface WixCommonAggregation extends WixCommonAggregationKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n /** 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`. */\n nested?: CommonAggregationNestedAggregation;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n type?: WixCommonAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface WixCommonAggregationKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n /** 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`. */\n nested?: CommonAggregationNestedAggregation;\n}\n\nexport interface AggregationRangeAggregationRangeBucket {\n /** Inclusive lower bound of the range. Required if `to` is not provided. */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if `from` is not provided. */\n to?: number | null;\n}\n\nexport enum AggregationValueAggregationSortType {\n /** Number of matches in the results. */\n COUNT = 'COUNT',\n /** Alphabetically by the field value. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type AggregationValueAggregationSortTypeWithLiterals =\n | AggregationValueAggregationSortType\n | 'COUNT'\n | 'VALUE';\n\nexport enum AggregationValueAggregationSortDirection {\n /** Descending order. */\n DESC = 'DESC',\n /** Ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type AggregationValueAggregationSortDirectionWithLiterals =\n | AggregationValueAggregationSortDirection\n | 'DESC'\n | 'ASC';\n\nexport enum AggregationValueAggregationMissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values in the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type AggregationValueAggregationMissingValuesWithLiterals =\n | AggregationValueAggregationMissingValues\n | 'EXCLUDE'\n | 'INCLUDE';\n\nexport interface AggregationValueAggregationIncludeMissingValuesOptions {\n /**\n * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum WixCommonScalarType {\n UNKNOWN_SCALAR_TYPE = 'UNKNOWN_SCALAR_TYPE',\n /** Total number of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n}\n\n/** @enumType */\nexport type WixCommonScalarTypeWithLiterals =\n | WixCommonScalarType\n | 'UNKNOWN_SCALAR_TYPE'\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface CommonAggregationValueAggregation\n extends CommonAggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: AggregationValueAggregationIncludeMissingValuesOptions;\n /** Sort type. */\n sortType?: AggregationValueAggregationSortTypeWithLiterals;\n /** Sort direction. */\n sortDirection?: AggregationValueAggregationSortDirectionWithLiterals;\n /**\n * Number of aggregation results to return.\n * Min: `1`\n * Max: `250`\n * Default: `10`\n */\n limit?: number | null;\n /**\n * Whether to include or exclude missing values in the aggregation results.\n * Default: `EXCLUDE`.\n */\n missingValues?: AggregationValueAggregationMissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface CommonAggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: AggregationValueAggregationIncludeMissingValuesOptions;\n}\n\nexport enum AggregationNestedAggregationNestedAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type AggregationNestedAggregationNestedAggregationTypeWithLiterals =\n | AggregationNestedAggregationNestedAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface CommonAggregationRangeAggregation {\n /**\n * List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.\n * @maxSize 50\n */\n buckets?: AggregationRangeAggregationRangeBucket[];\n}\n\nexport interface CommonAggregationScalarAggregation {\n /** Operator type for the scalar aggregation. */\n type?: WixCommonScalarTypeWithLiterals;\n}\n\nexport interface CommonAggregationDateHistogramAggregation {\n /** Interval for date histogram aggregation. */\n interval?: AggregationDateHistogramAggregationIntervalWithLiterals;\n}\n\nexport enum AggregationDateHistogramAggregationInterval {\n UNKNOWN_INTERVAL = 'UNKNOWN_INTERVAL',\n /** Yearly interval */\n YEAR = 'YEAR',\n /** Monthly interval */\n MONTH = 'MONTH',\n /** Weekly interval */\n WEEK = 'WEEK',\n /** Daily interval */\n DAY = 'DAY',\n /** Hourly interval */\n HOUR = 'HOUR',\n /** Minute interval */\n MINUTE = 'MINUTE',\n /** Second interval */\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type AggregationDateHistogramAggregationIntervalWithLiterals =\n | AggregationDateHistogramAggregationInterval\n | 'UNKNOWN_INTERVAL'\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface AggregationNestedAggregationNestedAggregationItem\n extends AggregationNestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. The matching aggregation field must be passed. */\n type?: AggregationNestedAggregationNestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationNestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n}\n\nexport enum WixCommonAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type WixCommonAggregationTypeWithLiterals =\n | WixCommonAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */\nexport interface CommonAggregationNestedAggregation {\n /**\n * Flattened list of aggregations, where each next aggregation is nested within previous one.\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: AggregationNestedAggregationNestedAggregationItem[];\n}\n\nexport interface CommonCursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface V3SearchProductsResponse {\n /** List of products. */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: CommonCursorPagingMetadata;\n /** Aggregation data. */\n aggregationData?: CommonAggregationData;\n}\n\nexport interface CommonCursorPagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: CommonCursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface CommonCursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface CommonAggregationData {\n /**\n * List of the aggregated data results.\n * @maxSize 10000\n */\n results?: AggregationDataAggregationResults[];\n}\n\nexport interface ValueResultsValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 100\n */\n value?: string;\n /** Number of entities with this value. */\n count?: number;\n}\n\nexport interface RangeResultsRangeAggregationResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Total number of entities in this range. */\n count?: number;\n}\n\nexport interface AggregationResultsNestedAggregationResults\n extends AggregationResultsNestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n /**\n * Unique, caller-defined aggregation name, identifiable by the requested aggregation `name`.\n * @maxLength 100\n */\n name?: string;\n /** Aggregation type. */\n type?: WixCommonAggregationTypeWithLiterals;\n /**\n * Field which the data was aggregated by.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsNestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n}\n\nexport interface AggregationResultsValueResults {\n /**\n * List of value aggregations.\n * @maxSize 250\n */\n results?: ValueResultsValueAggregationResult[];\n}\n\nexport interface AggregationResultsRangeResults {\n /**\n * List of ranges returned in same order as requested.\n * @maxSize 50\n */\n results?: RangeResultsRangeAggregationResult[];\n}\n\nexport interface AggregationDataAggregationResultsScalarResult {\n /** Type of scalar aggregation. */\n type?: WixCommonScalarTypeWithLiterals;\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface GroupByValueResultsNestedValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 1000\n */\n value?: string;\n /** Nested aggregations. */\n nestedResults?: AggregationResultsNestedAggregationResults;\n}\n\nexport interface NestedResultsValueResult {\n /**\n * Value of the field\n * @maxLength 1000\n */\n value?: string;\n /** Number of entities with this value. */\n count?: number | null;\n}\n\nexport interface NestedResultsRangeResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Number of entities in this range. */\n count?: number | null;\n}\n\nexport interface NestedResultsScalarResult {\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface NestedResultsNestedResultValue\n extends NestedResultsNestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: NestedResultsValueResult;\n /** Range aggregation result. */\n range?: NestedResultsRangeResult;\n /** Scalar aggregation result. */\n scalar?: NestedResultsScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: NestedResultsValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultsNestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: NestedResultsValueResult;\n /** Range aggregation result. */\n range?: NestedResultsRangeResult;\n /** Scalar aggregation result. */\n scalar?: NestedResultsScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: NestedResultsValueResult;\n}\n\nexport interface NestedResultsResults {\n /** List of nested aggregations. */\n results?: Record<string, NestedResultsNestedResultValue>;\n}\n\nexport interface DateHistogramResultsDateHistogramResult {\n /**\n * Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n * @maxLength 100\n */\n value?: string;\n /** Number of entities in the bucket. */\n count?: number;\n}\n\nexport interface AggregationResultsGroupByValueResults {\n /**\n * List of value aggregations.\n * @maxSize 1000\n */\n results?: GroupByValueResultsNestedValueAggregationResult[];\n}\n\nexport interface AggregationResultsDateHistogramResults {\n /**\n * List of date histogram aggregations.\n * @maxSize 200\n */\n results?: DateHistogramResultsDateHistogramResult[];\n}\n\n/** Results of `NESTED` aggregation type in a flattened array, identifiable by the requested aggregation `name`. */\nexport interface AggregationResultsNestedResults {\n /**\n * List of nested aggregations.\n * @maxSize 1000\n */\n results?: NestedResultsResults[];\n}\n\nexport interface AggregationDataAggregationResults\n extends AggregationDataAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: AggregationResultsGroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: AggregationResultsDateHistogramResults;\n /** Nested aggregation results. */\n nested?: AggregationResultsNestedResults;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string;\n /** Aggregation type. Must align with the corresponding aggregation field. */\n type?: WixCommonAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationDataAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: AggregationResultsGroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: AggregationResultsDateHistogramResults;\n /** Nested aggregation results. */\n nested?: AggregationResultsNestedResults;\n}\n\nexport interface V3QueryProductsRequest {\n /** Query options. */\n query?: CommonCursorQuery;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CommonCursorQuery extends CommonCursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 5\n */\n sort?: WixCommonSorting[];\n}\n\n/** @oneof */\nexport interface CommonCursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n}\n\nexport interface V3QueryProductsResponse {\n /** List of products. */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: CommonCursorPagingMetadata;\n}\n\nexport interface V3CountProductsRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /**\n * Whether to return non-visible products (`visible:false`). Your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n *\n * Default: `false`\n */\n returnNonVisibleProducts?: boolean;\n}\n\nexport interface V3CountProductsResponse {\n /** Total number of products. */\n count?: number;\n}\n\nexport interface BulkUpdateProductVariantsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /** Variant to update. */\n variant: Variant;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface BulkUpdateProductVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkAdjustProductVariantsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /** Cost adjustment. */\n cost?: V3AdjustValue;\n /**\n * Rounding strategy of new calculated prices.\n *\n * + `NO_ROUNDING`: Calculated prices will be saved without rounding to keep max possible precision.\n * + `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`.\n * + `NEAREST_WHOLE_NUMBER`: Calculated prices will be rounded to the nearest whole number.\n */\n rounding?: BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /** Actual price adjustment. */\n actualPrice?: V3AdjustValue;\n /** Compare at price adjustment. */\n compareAtPrice?: V3AdjustValue;\n /**\n * Set variant actualPrice from compareAtPrice by applying provided discount to it.\n * if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.\n * 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%).\n */\n compareAtPriceDiscount?: V3UnsignedAdjustValue;\n}\n\nexport interface V3AdjustValue extends V3AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface V3AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\nexport enum BulkAdjustProductVariantsByFilterRequestRoundingStrategy {\n UNKNOWN_ROUNDING_STRATEGY = 'UNKNOWN_ROUNDING_STRATEGY',\n /**\n * Calculated prices will be saved without rounding to keep max possible precision. It's still good idea to round numbers before displaying them.\n * Example: input $3.5555 -> saved value $3.5555\n */\n NO_ROUNDING = 'NO_ROUNDING',\n /**\n * Calculated prices will be rounded according to currency precision.\n * Example: input $3.5555 -> saved value $3.56, input ¥3.5555 -> saved value ¥4\n */\n CURRENCY_PRECISION = 'CURRENCY_PRECISION',\n /**\n * Calculated prices will be rounded to nearest whole number.\n * Example: input $3.5555 -> saved value $4\n */\n NEAREST_WHOLE_NUMBER = 'NEAREST_WHOLE_NUMBER',\n}\n\n/** @enumType */\nexport type BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals =\n\n | BulkAdjustProductVariantsByFilterRequestRoundingStrategy\n | 'UNKNOWN_ROUNDING_STRATEGY'\n | 'NO_ROUNDING'\n | 'CURRENCY_PRECISION'\n | 'NEAREST_WHOLE_NUMBER';\n\nexport interface V3UnsignedAdjustValue\n extends V3UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface V3UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\nexport interface V3BulkAdjustProductVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /**\n * IDs of the info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsRequest {\n /**\n * List of product IDs and revisions.\n * @minSize 1\n * @maxSize 100\n */\n products: V3ProductIdWithRevision[];\n /**\n * List of IDs of info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3ProductIdWithRevision {\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n */\n revision?: string;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /**\n * IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsRequest {\n /**\n * List of product IDs and revisions.\n * @minSize 1\n * @maxSize 100\n */\n products: V3ProductIdWithRevision[];\n /**\n * List of IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkAddProductsToCategoriesByFilterRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories to which products will be added.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface BulkAddProductsToCategoriesByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkRemoveProductsFromCategoriesByFilterRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories from which products will be removed.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface BulkRemoveProductsFromCategoriesByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface GetAllProductsCategoryRequest {}\n\nexport interface GetAllProductsCategoryResponse {\n /**\n * Id of the \"All Products\" category automatically assigned to all products.\n * @format GUID\n */\n categoryId?: string;\n /** Category tree reference details. */\n treeReference?: TreeReference;\n}\n\nexport interface TreeReference {\n /**\n * Namespace of the app that manages the tree.\n *\n * For example, `\"@wix/stores\"`, `\"@bookings/bookingslist\"`, `\"@achievements/quizzes\"`.\n * @minLength 4\n * @maxLength 150\n */\n appNamespace?: string;\n /**\n * Tree key. You must pass this when a single app manages more than one tree.\n * @minLength 1\n * @maxLength 44\n */\n treeKey?: string | null;\n}\n\n/** @docsIgnore */\nexport type CreateProductApplicationErrors =\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_MEDIA_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ONLY_SPACES_STRING_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type CreateProductValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type CreateProductWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type CreateProductWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type UpdateProductApplicationErrors =\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type UpdateProductValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type UpdateProductWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_RESTRICTION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type UpdateProductWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkCreateProductsApplicationErrors =\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: InvalidDigitalFileIds;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_MEDIA_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ONLY_SPACES_STRING_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkCreateProductsValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'ID_NOT_ALLOWED_IN_REQUEST';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkCreateProductsWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkCreateProductsWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'ID_NOT_ALLOWED_IN_REQUEST';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsApplicationErrors =\n | {\n code?: 'TOO_MANY_VARIANTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_RESTRICTION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsByFilterApplicationErrors =\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsByFilterValidationErrors =\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n }\n | {\n ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n };\n/** @docsIgnore */\nexport type BulkDeleteProductsValidationErrors = {\n ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';\n};\n/** @docsIgnore */\nexport type GetProductApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type GetProductBySlugApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type SearchProductsApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type QueryProductsApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type CountProductsApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductVariantsByFilterApplicationErrors =\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductVariantsByFilterValidationErrors =\n | {\n ruleName?: 'EMPTY_FIELD_MASK';\n }\n | {\n ruleName?: 'CANNOT_REMOVE_VARIANT_ACTUAL_PRICE';\n };\n/** @docsIgnore */\nexport type BulkAdjustProductVariantsByFilterApplicationErrors =\n | {\n code?: 'ADJUSTED_ACTUAL_PRICE_OUT_OF_RANGE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADJUSTED_COMPARE_AT_PRICE_OUT_OF_RANGE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADJUSTED_COST_OUT_OF_RANGE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CANNOT_ADJUST_PRICE_RESTRICTED_VARIANT';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkAdjustProductVariantsByFilterValidationErrors =\n | {\n ruleName?: 'NO_VARIANT_ADJUSTMENTS_PASSED';\n }\n | {\n ruleName?: 'INVALID_PRICES_ADJUSTMENTS';\n };\n/** @docsIgnore */\nexport type BulkAddInfoSectionsToProductsByFilterApplicationErrors = {\n code?: 'TOO_MANY_INFO_SECTIONS_ERROR';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type BulkAddInfoSectionsToProductsApplicationErrors = {\n code?: 'TOO_MANY_INFO_SECTIONS_ERROR';\n description?: string;\n data?: Record<string, any>;\n};\n\nexport interface BaseEventMetadata {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n}\n\nexport interface EventMetadata extends BaseEventMetadata {\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * 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.\n * 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.\n */\n entityEventSequence?: string | null;\n}\n\nexport interface ProductCreatedEnvelope {\n entity: V3Product;\n metadata: EventMetadata;\n}\n\n/** @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read products in v3 catalog\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Product v3 read admin\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ_ADMIN\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.PRODUCT_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.product_created\n * @serviceIdentifier com.wix.stores.catalog.product.api.v3.ProductService\n * @slug created\n */\nexport declare function onProductCreated(\n handler: (event: ProductCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ProductDeletedEnvelope {\n entity: V3Product;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a product is deleted.\n * @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read products in v3 catalog\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Product v3 read admin\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ_ADMIN\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.PRODUCT_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.product_deleted\n * @serviceIdentifier com.wix.stores.catalog.product.api.v3.ProductService\n * @slug deleted\n */\nexport declare function onProductDeleted(\n handler: (event: ProductDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ProductUpdatedEnvelope {\n entity: V3Product;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a product is updated.\n * @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read products in v3 catalog\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Product v3 read admin\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ_ADMIN\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.PRODUCT_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.product_updated\n * @serviceIdentifier com.wix.stores.catalog.product.api.v3.ProductService\n * @slug updated\n */\nexport declare function onProductUpdated(\n handler: (event: ProductUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a new product.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param product - Product to create.\n *\n * At least 1 variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n * @public\n * @requiredField product\n * @requiredField product.name\n * @requiredField product.productType\n * @requiredField product.variantsInfo\n * @requiredField product.variantsInfo.variants\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @applicableIdentity APP\n * @returns Created product.\n * @fqn wix.stores.catalog.v3.CatalogApi.CreateProduct\n */\nexport async function createProduct(\n product: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductOptions\n): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: CreateProductApplicationErrors;\n __validationErrorsType?: CreateProductValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n { product: product, fields: options?.fields },\n ['product.description', 'product.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.createProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )?.product!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { product: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateProductOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates a new product, and can create the product's inventory in the variants' default locations.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param product - Product to create with inventory.\n *\n * At least one variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n * @public\n * @requiredField product\n * @requiredField product.name\n * @requiredField product.productType\n * @requiredField product.variantsInfo\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.CreateProductWithInventory\n */\nexport async function createProductWithInventory(\n product: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductWithInventoryOptions\n): Promise<\n NonNullablePaths<\n CreateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: CreateProductWithInventoryApplicationErrors;\n __validationErrorsType?: CreateProductWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n product: product,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.createProductWithInventory(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n product: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateProductWithInventoryOptions {\n /**\n * Whether to return inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants and options are mutually dependant and must be aligned.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * > + Updating media per variant is not supported. Instead, assign media items to product option choices using the `linkedMedia` field. You must use preexisting product media.\n * @param _id - Product ID.\n * @public\n * @requiredField _id\n * @requiredField product\n * @requiredField product.revision\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @returns Updated product.\n * @fqn wix.stores.catalog.v3.CatalogApi.UpdateProduct\n */\nexport async function updateProduct(\n _id: string,\n product: NonNullablePaths<\n UpdateProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductOptions\n): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: UpdateProductApplicationErrors;\n __validationErrorsType?: UpdateProductValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n { product: { ...product, id: _id }, fields: options?.fields },\n ['product.description', 'product.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.updateProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )?.product!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { product: '$[1]' },\n explicitPathsToArguments: {\n 'product.id': '$[0]',\n fields: '$[2].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateProduct {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the product was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the product was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Product name. Translatable.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * URL to the site's product page.\n *\n * > **Note:** Returned only when you pass `\"URL\"` to the `fields` array in Products API requests.\n * @readonly\n */\n url?: string;\n /**\n * Product description using rich content.\n * > **Note:** Returned only when you pass `\"DESCRIPTION\"` to the `fields` array in Products API requests.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" plugins=\"indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor\" exampleid=\"7dc9240e-d548-417a-abcf-0291b68b4303\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n */\n description?: RichContent;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows the customer to customize the product. For example, selecting color, size, and more.\n *\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * Product modifiers.\n *\n * Allows the customer to customize product, e.g. select Color, Size and so on similarly to `options` but with one main difference - `modifiers` never generate any variants.\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * List of categories that directly contain this product.\n *\n * 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.\n * > **Note:** Returned only when you pass `\"DIRECT_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n directCategoriesInfo?: ProductCategoriesInfo;\n /**\n * List of categories that directly contain this product, as well as their parent categories.\n * > **Note:** Returned only when you pass `\"ALL_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n allCategoriesInfo?: ProductCategoriesInfo;\n /**\n * 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\".\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product cost range - minimum and maximum costs of all product variants.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @readonly\n */\n costRange?: PriceRange;\n /**\n * Product inventory info.\n * @readonly\n */\n inventory?: Inventory;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /**\n * 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.\n *\n * Defaults to the currency defined in the site settings, unless specified in `x-wix-currency` header.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @format CURRENCY\n * @readonly\n */\n currency?: string | null;\n /**\n * Breadcrumbs of the `mainCategoryId`. Used to navigate to parent categories.\n * > **Note:** Returned only when you pass `\"BREADCRUMBS_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n breadcrumbsInfo?: BreadcrumbsInfo;\n /**\n * Product actualPrice range - minimum and maximum prices of all product variants.\n * @readonly\n */\n actualPriceRange?: PriceRange;\n /**\n * Product compareAtPrice range - minimum and maximum compare at prices of all product variants.\n * @readonly\n */\n compareAtPriceRange?: PriceRange;\n /**\n * Product variants. Each variant must reference all product options via its `choices` array.\n * Each choice references an option using `optionChoiceNames` for all requests.\n */\n variantsInfo?: VariantsInfo;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the app dashboard before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n /** Product subscriptions. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * The total number of variants for the product.\n * @readonly\n */\n variantSummary?: VariantSummary;\n}\n\nexport interface UpdateProductOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants depend on options, and options depend on variants.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * @param _id - Product ID.\n * @public\n * @requiredField _id\n * @requiredField product\n * @requiredField product.revision\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.UpdateProductWithInventory\n */\nexport async function updateProductWithInventory(\n _id: string,\n product: NonNullablePaths<\n UpdateProductWithInventoryProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductWithInventoryOptions\n): Promise<\n NonNullablePaths<\n UpdateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: UpdateProductWithInventoryApplicationErrors;\n __validationErrorsType?: UpdateProductWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n product: { ...product, id: _id },\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.updateProductWithInventory(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { product: '$[1]' },\n explicitPathsToArguments: {\n 'product.id': '$[0]',\n returnEntity: '$[2].returnEntity',\n fields: '$[2].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateProductWithInventoryProduct {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product with inventory.\n * @readonly\n */\n revision?: string | null;\n /**\n * Product name.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows buyer to customize product, e.g. select Color, Size and so on.\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * 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.\n * 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.\n * *None*: you cannot change name of existing option via this endpoint but you can do it by calling CustomizationService\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * 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.\n * 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.\n * 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.\n * *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\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * Main category ID.\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /** Product variants. */\n variantsInfo?: V3VariantsInfo;\n /** Subscription details. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the [app dashboard](https://dev.wix.com/dc3/my-apps/) before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n}\n\nexport interface UpdateProductWithInventoryOptions {\n /**\n * Whether to return the full inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to create.\n * @public\n * @requiredField products\n * @requiredField products.name\n * @requiredField products.productType\n * @requiredField products.variantsInfo\n * @requiredField products.variantsInfo.variants\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.variantsInfo.variants.price\n * @requiredField products.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkCreateProducts\n */\nexport async function bulkCreateProducts(\n products: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsOptions\n): Promise<\n NonNullablePaths<\n BulkCreateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateProductsApplicationErrors;\n __validationErrorsType?: BulkCreateProductsValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n ['products.description', 'products.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'products.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkCreateProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateProductsOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates up to 100 products, and can create the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to create with inventory.\n * @public\n * @requiredField products\n * @requiredField products.name\n * @requiredField products.productType\n * @requiredField products.variantsInfo\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.variantsInfo.variants.price\n * @requiredField products.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @permissionId WIX_STORES.INVENTORY_CREATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkCreateProductsWithInventory\n */\nexport async function bulkCreateProductsWithInventory(\n products: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsWithInventoryOptions\n): Promise<\n NonNullablePaths<\n BulkCreateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkCreateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkCreateProductsWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkCreateProductsWithInventory(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'productResults.results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'productResults.results.item.media.main.image' },\n { path: 'productResults.results.item.media.itemsInfo.items.image' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image',\n },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'productResults.results.item.media.main.video' },\n { path: 'productResults.results.item.media.itemsInfo.items.video' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video',\n },\n ],\n },\n ]),\n [\n 'productResults.results.item.description',\n 'productResults.results.item.infoSections.description',\n ]\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateProductsWithInventoryOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to update.\n * @public\n * @requiredField products\n * @requiredField products.product\n * @requiredField products.product._id\n * @requiredField products.product.revision\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.product.variantsInfo.variants.price\n * @requiredField products.product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProducts\n */\nexport async function bulkUpdateProducts(\n products: NonNullablePaths<\n V3MaskedProduct,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateProductsApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n [\n 'products.product.description',\n 'products.product.infoSections.description',\n ]\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'products.product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.product.media.main.image' },\n { path: 'products.product.media.itemsInfo.items.image' },\n { path: 'products.product.options.choicesSettings.choices.image' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.product.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.product.media.main.video' },\n { path: 'products.product.media.itemsInfo.items.video' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductsOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates up to 100 products, and can update the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to update.\n * @public\n * @requiredField products\n * @requiredField products.product\n * @requiredField products.product._id\n * @requiredField products.product.revision\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.product.variantsInfo.variants.price\n * @requiredField products.product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsWithInventory\n */\nexport async function bulkUpdateProductsWithInventory(\n products: NonNullablePaths<\n MaskedProductWithInventory,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsWithInventoryOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkUpdateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.product.media.main.image' },\n { path: 'products.product.media.itemsInfo.items.image' },\n { path: 'products.product.options.choicesSettings.choices.image' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.product.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.product.media.main.video' },\n { path: 'products.product.media.itemsInfo.items.video' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProductsWithInventory(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'productResults.results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'productResults.results.item.media.main.image' },\n { path: 'productResults.results.item.media.itemsInfo.items.image' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image',\n },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'productResults.results.item.media.main.video' },\n { path: 'productResults.results.item.media.itemsInfo.items.video' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video',\n },\n ],\n },\n ]),\n [\n 'productResults.results.item.description',\n 'productResults.results.item.infoSections.description',\n ]\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductsWithInventoryOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates multiple products, given the provided filter.\n *\n * To update `infoSections`, `brand` or `ribbon` fields, you must also pass their existing `id`.\n *\n * > **Note:**\n * > The following fields cannot be updated with this endpoint:\n * > + `slug`\n * > + `options`\n * > + `modifiers`\n * > + `variantsInfo`\n * >\n * > To update these fields, use [Bulk Update Products](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/bulk-update-products).\n * @public\n * @requiredField options.product\n * @requiredField options.product.subscriptionDetails.subscriptions.cycles\n * @requiredField options.product.subscriptionDetails.subscriptions.discount.discount\n * @requiredField options.product.subscriptionDetails.subscriptions.frequency\n * @requiredField options.product.subscriptionDetails.subscriptions.title\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsByFilter\n */\nexport async function bulkUpdateProductsByFilter(\n options?: NonNullablePaths<\n BulkUpdateProductsByFilterOptions,\n | `product`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`,\n 7\n >\n): Promise<\n NonNullablePaths<V3BulkUpdateProductsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsByFilterValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n product: options?.product,\n search: options?.search,\n },\n ['product.description', 'product.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProductsByFilter(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n product: '$[0].product',\n search: '$[0].search',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductsByFilterOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Product to update. */\n product: V3Product;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Deletes a product and all its variants.\n * @param productId - Product ID.\n * @public\n * @requiredField productId\n * @permissionId WIX_STORES.PRODUCT_DELETE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.DeleteProduct\n */\nexport async function deleteProduct(productId: string): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { productId: productId },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.deleteProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { productId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['productId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Deletes multiple products.\n * @param productIds - IDs of products to delete.\n * @public\n * @requiredField productIds\n * @permissionId WIX_STORES.PRODUCT_DELETE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkDeleteProducts\n */\nexport async function bulkDeleteProducts(productIds: string[]): Promise<\n NonNullablePaths<\n V3BulkDeleteProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __validationErrorsType?: BulkDeleteProductsValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { productIds: productIds },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkDeleteProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { productIds: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['productIds']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Delete multiple products, given the provided filter.\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @permissionId WIX_STORES.PRODUCT_DELETE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkDeleteProductsByFilter\n */\nexport async function bulkDeleteProductsByFilter(\n filter: Record<string, any>,\n options?: BulkDeleteProductsByFilterOptions\n): Promise<NonNullablePaths<V3BulkDeleteProductsByFilterResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { filter: filter, search: options?.search },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkDeleteProductsByFilter(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { filter: '$[0]', search: '$[1].search' },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkDeleteProductsByFilterOptions {\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Retrieves a product.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param productId - Product ID.\n * @public\n * @requiredField productId\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @returns Product.\n * @fqn wix.stores.catalog.v3.CatalogApi.GetProduct\n */\nexport async function getProduct(\n productId: string,\n options?: GetProductOptions\n): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: GetProductApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { productId: productId, fields: options?.fields },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.getProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )?.product!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { productId: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['productId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetProductOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Retrieves a product by slug.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param slug - Product slug.\n * @public\n * @requiredField slug\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.GetProductBySlug\n */\nexport async function getProductBySlug(\n slug: string,\n options?: GetProductBySlugOptions\n): Promise<\n NonNullablePaths<\n V3GetProductBySlugResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`,\n 8\n > & {\n __applicationErrorsType?: GetProductBySlugApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { slug: slug, fields: options?.fields },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.getProductBySlug(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { slug: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['slug', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetProductBySlugOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, search expression, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param search - Search options.\n * @public\n * @requiredField search\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.SearchProducts\n */\nexport async function searchProducts(\n search: V3ProductSearch,\n options?: SearchProductsOptions\n): Promise<\n NonNullablePaths<\n V3SearchProductsResponse,\n | `products`\n | `products.${number}.physicalProperties.pricePerUnit.quantity`\n | `products.${number}.physicalProperties.pricePerUnit.measurementUnit`\n | `products.${number}.physicalProperties.shippingWeightRange.minValue`\n | `products.${number}.physicalProperties.shippingWeightRange.maxValue`\n | `products.${number}.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `products.${number}.media.main._id`\n | `products.${number}.media.main.url`\n | `products.${number}.media.main.mediaType`\n | `products.${number}.media.main.uploadId`\n | `products.${number}.seoData.settings.preventAutoRedirect`\n | `products.${number}.costRange.minValue.amount`\n | `products.${number}.inventory.availabilityStatus`\n | `products.${number}.inventory.preorderStatus`\n | `products.${number}.inventory.preorderAvailability`\n | `products.${number}.productType`\n | `products.${number}.variantSummary.variantCount`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n > & {\n __applicationErrorsType?: SearchProductsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { search: search, fields: options?.fields },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.searchProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'products.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['products.description', 'products.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { search: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['search', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface SearchProductsOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3ProductSearchSpec extends SearchSpec {\n searchable: [\n 'description',\n 'directCategoryIdsInfo.categoryIds',\n 'minVariantPriceInfo.sku',\n 'name',\n 'physicalProperties.deliveryProfileId',\n 'physicalProperties.shippingGroupId',\n 'variantsInfo.variants.sku'\n ];\n aggregatable: [\n '_createdDate',\n '_id',\n '_updatedDate',\n 'actualPriceRange.maxValue.amount',\n 'actualPriceRange.minValue.amount',\n 'allCategoriesInfo.categories',\n 'allCategoriesInfo.categories._id',\n 'allCategoriesInfo.categories.index',\n 'brand._id',\n 'brand.name',\n 'compareAtPriceRange.maxValue.amount',\n 'compareAtPriceRange.minValue.amount',\n 'directCategoriesInfo.categories',\n 'directCategoriesInfo.categories._id',\n 'directCategoriesInfo.categories.index',\n 'flattenModifiers',\n 'flattenOptions',\n 'handle',\n 'importId',\n 'infoSections._id',\n 'infoSections.uniqueName',\n 'inventory.availabilityStatus',\n 'inventory.preorderAvailability',\n 'inventory.preorderStatus',\n 'minVariantPriceInfo.sku',\n 'modifiers._id',\n 'modifiers.choicesSettings.choices.choiceId',\n 'modifiers.choicesSettings.choices.name',\n 'modifiers.name',\n 'name',\n 'numericId',\n 'options._id',\n 'options.choicesSettings.choices.choiceId',\n 'options.choicesSettings.choices.name',\n 'options.name',\n 'physicalProperties.deliveryProfileId',\n 'physicalProperties.fulfillerId',\n 'physicalProperties.shippingGroupId',\n 'physicalProperties.shippingWeightRange.maxValue',\n 'physicalProperties.shippingWeightRange.minValue',\n 'productType',\n 'ribbon._id',\n 'ribbon.name',\n 'slug',\n 'subscriptionDetails.allowOneTimePurchases',\n 'taxGroupId',\n 'variantsInfo.variants',\n 'variantsInfo.variants.barcode',\n 'variantsInfo.variants.choices.optionChoiceIds.choiceId',\n 'variantsInfo.variants.choices.optionChoiceIds.optionId',\n 'variantsInfo.variants.physicalProperties.weight',\n 'variantsInfo.variants.price.actualPrice.amount',\n 'variantsInfo.variants.price.compareAtPrice.amount',\n 'variantsInfo.variants.sku',\n 'variantsInfo.variants.visible',\n 'visible',\n 'visibleInPos'\n ];\n paging: 'cursor';\n wql: [\n {\n operators: ['$matchItems'];\n fields: [\n 'allCategoriesInfo.categories',\n 'directCategoriesInfo.categories',\n 'variantsInfo.variants'\n ];\n sort: 'NONE';\n },\n {\n operators: ['$hasAll', '$hasSome'];\n fields: [\n 'infoSections._id',\n 'infoSections.uniqueName',\n 'modifiers._id',\n 'modifiers.choicesSettings.choices.choiceId',\n 'modifiers.choicesSettings.choices.name',\n 'modifiers.name',\n 'options._id',\n 'options.choicesSettings.choices.choiceId',\n 'options.choicesSettings.choices.name',\n 'options.name'\n ];\n sort: 'NONE';\n },\n {\n operators: '*';\n fields: [\n '_id',\n 'brand._id',\n 'brand.name',\n 'flattenModifiers',\n 'flattenOptions',\n 'handle',\n 'importId',\n 'inventory.availabilityStatus',\n 'inventory.preorderAvailability',\n 'inventory.preorderStatus',\n 'physicalProperties.deliveryProfileId',\n 'physicalProperties.fulfillerId',\n 'physicalProperties.shippingGroupId',\n 'productType',\n 'ribbon._id',\n 'ribbon.name',\n 'slug',\n 'subscriptionDetails.allowOneTimePurchases',\n 'taxGroupId',\n 'visible',\n 'visibleInPos'\n ];\n sort: 'NONE';\n },\n {\n operators: '*';\n fields: [\n '_createdDate',\n '_updatedDate',\n 'actualPriceRange.maxValue.amount',\n 'actualPriceRange.minValue.amount',\n 'compareAtPriceRange.maxValue.amount',\n 'compareAtPriceRange.minValue.amount',\n 'minVariantPriceInfo.sku',\n 'name',\n 'numericId',\n 'physicalProperties.shippingWeightRange.maxValue',\n 'physicalProperties.shippingWeightRange.minValue'\n ];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonSearchWithEntityContext = SearchSdkType<\n V3Product,\n V3ProductSearchSpec\n>;\nexport type V3ProductSearch = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonSearchWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 10 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonSearchWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonSearchWithEntityContext['sort']>[number]['order'];\n /** \n When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by\n a specific element from a collection, filter can/should be provided to ensure correct sort value is picked.\n\n If multiple filters are provided, they are combined with AND operator.\n\n Example:\n Given we have document like {\"id\": \"1\", \"nestedField\": [{\"price\": 10, \"region\": \"EU\"}, {\"price\": 20, \"region\": \"US\"}]}\n and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be\n { fieldName: \"nestedField.price\", \"select_items_by\": [{\"nestedField.region\": \"US\"}] } \n @maxSize: 10 \n */\n selectItemsBy?:\n | NonNullable<\n CommonSearchWithEntityContext['sort']\n >[number]['selectItemsBy']\n | null;\n }[];\n /** \n 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. \n @maxSize: 10 \n */\n aggregations?: {\n /** \n 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. \n */\n value?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['value'];\n /** \n 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. \n */\n range?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['range'];\n /** \n 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`. \n */\n scalar?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['scalar'];\n /** \n 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. \n */\n dateHistogram?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['dateHistogram'];\n /** \n 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`. \n */\n nested?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['nested'];\n /** \n Aggregation name, returned in `aggregations.results.name`. \n @maxLength: 100 \n */\n name?:\n | NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['name']\n | null;\n /** \n Type of aggregation to perform. Must align with the corresponding aggregation field. \n */\n type?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['type'];\n /** \n Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n @maxLength: 200 \n */\n fieldPath?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['fieldPath'];\n }[];\n /** \n Free text to match in searchable fields. \n */\n search?: {\n /** \n Defines how separate search terms in `expression` are combined \n */\n mode?: NonNullable<CommonSearchWithEntityContext['search']>['mode'];\n /** \n Search term or expression \n @maxLength: 100 \n */\n expression?:\n | NonNullable<CommonSearchWithEntityContext['search']>['expression']\n | null;\n /** \n 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`. \n @maxLength: 200,\n @maxSize: 20 \n */\n fields?: NonNullable<CommonSearchWithEntityContext['search']>['fields'];\n /** \n 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. \n */\n fuzzy?: NonNullable<CommonSearchWithEntityContext['search']>['fuzzy'];\n };\n /** \n 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.\n Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\". \n @maxLength: 50 \n */\n timeZone?: CommonSearchWithEntityContext['timeZone'] | null;\n};\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @public\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.QueryProducts\n */\nexport function queryProducts(\n options?: QueryProductsOptions\n): ProductsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n V3Product,\n 'CURSOR',\n V3QueryProductsRequest,\n V3QueryProductsResponse\n >({\n func: async (payload: V3QueryProductsRequest) => {\n const reqOpts = ambassadorWixStoresCatalogV3Product.queryProducts({\n ...payload,\n ...(options ?? {}),\n });\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n return result;\n } catch (err) {\n sideEffects?.onError?.(err);\n throw err;\n }\n },\n requestTransformer: (query: V3QueryProductsRequest['query']) => {\n const args = [query, options] as [\n V3QueryProductsRequest['query'],\n QueryProductsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest(\n { ...args?.[1], query: args?.[0] },\n []\n );\n },\n responseTransformer: ({ data }: HttpResponse<V3QueryProductsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'products.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['products.description', 'products.infoSections.description']\n );\n\n return {\n items: transformedData?.products,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryProductsOptions {\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[] | undefined;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface ProductsQueryResult extends QueryCursorResult {\n items: V3Product[];\n query: ProductsQueryBuilder;\n next: () => Promise<ProductsQueryResult>;\n prev: () => Promise<ProductsQueryResult>;\n}\n\nexport interface ProductsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n eq: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ne: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ge: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n gt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n le: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n lt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `string`.\n * @param string - String to compare against. Case-insensitive.\n */\n startsWith: (\n propertyName: '_id' | 'slug' | 'options.id' | 'handle',\n value: string\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n */\n hasSome: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any[]\n ) => ProductsQueryBuilder;\n in: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n exists: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: boolean\n ) => ProductsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n ascending: (\n ...propertyNames: Array<\n '_createdDate' | '_updatedDate' | 'slug' | 'visible'\n >\n ) => ProductsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n descending: (\n ...propertyNames: Array<\n '_createdDate' | '_updatedDate' | 'slug' | 'visible'\n >\n ) => ProductsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n limit: (limit: number) => ProductsQueryBuilder;\n /** @param cursor - A pointer to specific record */\n skipTo: (cursor: string) => ProductsQueryBuilder;\n find: () => Promise<ProductsQueryResult>;\n}\n\n/**\n * Counts the number of products that match the provided filtering.\n * @public\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.CountProducts\n */\nexport async function countProducts(options?: CountProductsOptions): Promise<\n NonNullablePaths<V3CountProductsResponse, `count`, 2> & {\n __applicationErrorsType?: CountProductsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n search: options?.search,\n returnNonVisibleProducts: options?.returnNonVisibleProducts,\n },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.countProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n search: '$[0].search',\n returnNonVisibleProducts: '$[0].returnNonVisibleProducts',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CountProductsOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /**\n * Whether to return non-visible products (`visible:false`). Your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n *\n * Default: `false`\n */\n returnNonVisibleProducts?: boolean;\n}\n\n/**\n * Updates a variant of multiple products, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be updated:\n * + `visible`\n * + `price`\n * + `revenueDetails.cost`\n * + `physicalOptions`\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @requiredField options.variant\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProductVariantsByFilter\n */\nexport async function bulkUpdateProductVariantsByFilter(\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkUpdateProductVariantsByFilterOptions,\n `variant`,\n 2\n >\n): Promise<\n NonNullablePaths<BulkUpdateProductVariantsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductVariantsByFilterValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n { filter: filter, variant: options?.variant, search: options?.search },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [{ path: 'variant.media.image' }],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [{ path: 'variant.media.video' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProductVariantsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n variant: '$[1].variant',\n search: '$[1].search',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductVariantsByFilterOptions {\n /** Variant to update. */\n variant: Variant;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Adjusts the price and cost of multiple variants, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be increased/decreased by amount or percentage:\n * + `compareAtPrice`\n * + `actualPrice`\n * + `cost`\n * + `compareAtPriceDiscount`\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAdjustProductVariantsByFilter\n */\nexport async function bulkAdjustProductVariantsByFilter(\n filter: Record<string, any>,\n options?: BulkAdjustProductVariantsByFilterOptions\n): Promise<\n NonNullablePaths<V3BulkAdjustProductVariantsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkAdjustProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkAdjustProductVariantsByFilterValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: filter,\n cost: options?.cost,\n rounding: options?.rounding,\n search: options?.search,\n actualPrice: options?.actualPrice,\n compareAtPrice: options?.compareAtPrice,\n compareAtPriceDiscount: options?.compareAtPriceDiscount,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAdjustProductVariantsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n cost: '$[1].cost',\n rounding: '$[1].rounding',\n search: '$[1].search',\n actualPrice: '$[1].actualPrice',\n compareAtPrice: '$[1].compareAtPrice',\n compareAtPriceDiscount: '$[1].compareAtPriceDiscount',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAdjustProductVariantsByFilterOptions {\n /** Cost adjustment. */\n cost?: V3AdjustValue;\n /**\n * Rounding strategy of new calculated prices.\n *\n * + `NO_ROUNDING`: Calculated prices will be saved without rounding to keep max possible precision.\n * + `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`.\n * + `NEAREST_WHOLE_NUMBER`: Calculated prices will be rounded to the nearest whole number.\n */\n rounding?: BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /** Actual price adjustment. */\n actualPrice?: V3AdjustValue;\n /** Compare at price adjustment. */\n compareAtPrice?: V3AdjustValue;\n /**\n * Set variant actualPrice from compareAtPrice by applying provided discount to it.\n * if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.\n * 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%).\n */\n compareAtPriceDiscount?: V3UnsignedAdjustValue;\n}\n\n/**\n * Adds info sections to multiple products, given the provided filter and search expression.\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @requiredField options.infoSectionIds\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProductsByFilter\n */\nexport async function bulkAddInfoSectionsToProductsByFilter(\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n `jobId`,\n 2\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsByFilterApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: filter,\n infoSectionIds: options?.infoSectionIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAddInfoSectionsToProductsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n search: '$[1].search',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAddInfoSectionsToProductsByFilterOptions {\n /**\n * IDs of the info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Adds info sections to multiple products.\n * @param products - List of product IDs and revisions.\n * @public\n * @requiredField options.infoSectionIds\n * @requiredField products\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProducts\n */\nexport async function bulkAddInfoSectionsToProducts(\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n infoSectionIds: options?.infoSectionIds,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAddInfoSectionsToProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAddInfoSectionsToProductsOptions {\n /**\n * List of IDs of info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Removes info sections from multiple products, given the provided filter and search expression.\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @requiredField options.infoSectionIds\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProductsByFilter\n */\nexport async function bulkRemoveInfoSectionsFromProductsByFilter(\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n `jobId`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: filter,\n infoSectionIds: options?.infoSectionIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkRemoveInfoSectionsFromProductsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n search: '$[1].search',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsByFilterOptions {\n /**\n * IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Removes info sections from multiple products.\n * @param products - List of product IDs and revisions.\n * @public\n * @requiredField options.infoSectionIds\n * @requiredField products\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProducts\n */\nexport async function bulkRemoveInfoSectionsFromProducts(\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n infoSectionIds: options?.infoSectionIds,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkRemoveInfoSectionsFromProducts(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsOptions {\n /**\n * List of IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Adds multiple products, given the provided filter and search expression, to up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n * @public\n * @requiredField options.categoryIds\n * @permissionId CATEGORIES.CATEGORY_ADD_ITEM\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAddProductsToCategoriesByFilter\n */\nexport async function bulkAddProductsToCategoriesByFilter(\n options?: NonNullablePaths<\n BulkAddProductsToCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n): Promise<\n NonNullablePaths<BulkAddProductsToCategoriesByFilterResponse, `jobId`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n categoryIds: options?.categoryIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAddProductsToCategoriesByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n categoryIds: '$[0].categoryIds',\n search: '$[0].search',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAddProductsToCategoriesByFilterOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories to which products will be added.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Removes multiple products, given the provided filter and search expression, from up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n * @public\n * @requiredField options.categoryIds\n * @permissionId CATEGORIES.CATEGORY_REMOVE_ITEM\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkRemoveProductsFromCategoriesByFilter\n */\nexport async function bulkRemoveProductsFromCategoriesByFilter(\n options?: NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n): Promise<\n NonNullablePaths<BulkRemoveProductsFromCategoriesByFilterResponse, `jobId`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n categoryIds: options?.categoryIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkRemoveProductsFromCategoriesByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n categoryIds: '$[0].categoryIds',\n search: '$[0].search',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkRemoveProductsFromCategoriesByFilterOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories from which products will be removed.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Retrieves the id of \"All Products\" category which is automatically assigned to all products.\n * @public\n * @permissionId WIX_STORES.ALL_PRODUCTS_CATEGORY_READ\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.GetAllProductsCategory\n */\nexport async function getAllProductsCategory(): Promise<\n NonNullablePaths<\n GetAllProductsCategoryResponse,\n `categoryId` | `treeReference.appNamespace`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({}, []);\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.getAllProductsCategory(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixStoresCatalogV3CatalogApiUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'api._api_base_domain_': [\n {\n srcPath: '/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/stores',\n destPath: '',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/stores/v3/products',\n destPath: '/v3/products',\n },\n {\n srcPath: '/stores/v3/bulk/products',\n destPath: '/v3/bulk/products',\n },\n {\n srcPath: '/stores/v3/products-with-inventory',\n destPath: '/v3/products-with-inventory',\n },\n {\n srcPath: '/stores/v3/bulk/products-with-inventory',\n destPath: '/v3/bulk/products-with-inventory',\n },\n {\n srcPath: '/stores/v3/all-products-category',\n destPath: '/v3/all-products-category',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'editor.wixapps.net': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n _: [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_stores_products-v-3';\n\n/**\n * Creates a new product.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n */\nexport function createProduct(payload: object): RequestOptionsFactory<any> {\n function __createProduct({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'product.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.CreateProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createProduct;\n}\n\n/**\n * Creates a new product, and can create the product's inventory in the variants' default locations.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n */\nexport function createProductWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __createProductWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.CreateProductWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products-with-inventory',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createProductWithInventory;\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants and options are mutually dependant and must be aligned.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * > + Updating media per variant is not supported. Instead, assign media items to product option choices using the `linkedMedia` field. You must use preexisting product media.\n */\nexport function updateProduct(payload: object): RequestOptionsFactory<any> {\n function __updateProduct({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'product.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'PATCH' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.UpdateProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/{product.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateProduct;\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants depend on options, and options depend on variants.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n */\nexport function updateProductWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __updateProductWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'PATCH' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.UpdateProductWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products-with-inventory/{product.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateProductWithInventory;\n}\n\n/**\n * Creates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkCreateProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateProducts({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.createdDate' },\n { path: 'products.updatedDate' },\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n { path: 'products.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n { path: 'products.physicalProperties.shippingWeightRange.minValue' },\n { path: 'products.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'products.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'products.description.nodes.galleryData.options.item.ratio' },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n { path: 'products.description.nodes.pollData.poll.image.duration' },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'products.description.nodes.appEmbedData.image.duration' },\n { path: 'products.description.nodes.videoData.video.duration' },\n { path: 'products.description.nodes.videoData.thumbnail.duration' },\n { path: 'products.description.nodes.audioData.audio.duration' },\n { path: 'products.description.nodes.audioData.coverImage.duration' },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'products.variantsInfo.variants.physicalProperties.weight' },\n { path: 'products.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkCreateProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/create',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkCreateProducts;\n}\n\n/**\n * Creates up to 100 products, and can create the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkCreateProductsWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateProductsWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n { path: 'products.physicalProperties.shippingWeightRange.minValue' },\n { path: 'products.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'products.description.nodes.galleryData.options.item.ratio' },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n { path: 'products.description.nodes.pollData.poll.image.duration' },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'products.description.nodes.appEmbedData.image.duration' },\n { path: 'products.description.nodes.videoData.video.duration' },\n { path: 'products.description.nodes.videoData.thumbnail.duration' },\n { path: 'products.description.nodes.audioData.audio.duration' },\n { path: 'products.description.nodes.audioData.coverImage.duration' },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'products.variantsInfo.variants.physicalProperties.weight' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n { path: 'products.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkCreateProductsWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products-with-inventory/create',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'productResults.results.item.createdDate' },\n { path: 'productResults.results.item.updatedDate' },\n {\n path: 'productResults.results.item.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.media.main.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'productResults.results.item.physicalProperties.pricePerUnit.quantity',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.weight',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.weight',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkCreateProductsWithInventory;\n}\n\n/**\n * Updates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkUpdateProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProducts({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'products.fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.product.createdDate' },\n { path: 'products.product.updatedDate' },\n { path: 'products.product.description.metadata.createdTimestamp' },\n { path: 'products.product.description.metadata.updatedTimestamp' },\n { path: 'products.product.media.main.image.urlExpirationDate' },\n { path: 'products.product.media.main.video.urlExpirationDate' },\n {\n path: 'products.product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'products.product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'products.product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/update',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkUpdateProducts;\n}\n\n/**\n * Updates up to 100 products, and can update the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkUpdateProductsWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProductsWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'products.fieldMask' }],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.weight',\n },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.product.description.metadata.createdTimestamp' },\n { path: 'products.product.description.metadata.updatedTimestamp' },\n { path: 'products.product.media.main.image.urlExpirationDate' },\n { path: 'products.product.media.main.video.urlExpirationDate' },\n {\n path: 'products.product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.product.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products-with-inventory/update',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'productResults.results.item.createdDate' },\n { path: 'productResults.results.item.updatedDate' },\n {\n path: 'productResults.results.item.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.media.main.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'productResults.results.item.physicalProperties.pricePerUnit.quantity',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.weight',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.weight',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkUpdateProductsWithInventory;\n}\n\n/**\n * Updates multiple products, given the provided filter.\n *\n * To update `infoSections`, `brand` or `ribbon` fields, you must also pass their existing `id`.\n *\n * > **Note:**\n * > The following fields cannot be updated with this endpoint:\n * > + `slug`\n * > + `options`\n * > + `modifiers`\n * > + `variantsInfo`\n * >\n * > To update these fields, use [Bulk Update Products](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/bulk-update-products).\n */\nexport function bulkUpdateProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProductsByFilter({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'product.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/update-by-filter',\n data: serializedData,\n host,\n }),\n data: serializedData,\n };\n\n return metadata;\n }\n\n return __bulkUpdateProductsByFilter;\n}\n\n/** Deletes a product and all its variants. */\nexport function deleteProduct(payload: object): RequestOptionsFactory<any> {\n function __deleteProduct({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'DELETE' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.DeleteProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/{productId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteProduct;\n}\n\n/** Deletes multiple products. */\nexport function bulkDeleteProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkDeleteProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkDeleteProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/delete',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkDeleteProducts;\n}\n\n/** Delete multiple products, given the provided filter. */\nexport function bulkDeleteProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkDeleteProductsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkDeleteProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/delete-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkDeleteProductsByFilter;\n}\n\n/**\n * Retrieves a product.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function getProduct(payload: object): RequestOptionsFactory<any> {\n function __getProduct({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.GetProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/{productId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getProduct;\n}\n\n/**\n * Retrieves a product by slug.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function getProductBySlug(payload: object): RequestOptionsFactory<any> {\n function __getProductBySlug({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.GetProductBySlug',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/slug/{slug}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getProductBySlug;\n}\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, search expression, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function searchProducts(payload: object): RequestOptionsFactory<any> {\n function __searchProducts({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'search.aggregations.range.buckets.from' },\n { path: 'search.aggregations.range.buckets.to' },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.from',\n },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.to',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.SearchProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/search',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData, true),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'products.createdDate' },\n { path: 'products.updatedDate' },\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'products.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n { path: 'aggregationData.results.scalar.value' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.scalar.value',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.scalar.value',\n },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'products.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.description.nodes.appEmbedData.image.duration',\n },\n { path: 'products.description.nodes.videoData.video.duration' },\n {\n path: 'products.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'products.description.nodes.audioData.audio.duration' },\n {\n path: 'products.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'products.minVariantPriceInfo.weight' },\n { path: 'aggregationData.results.ranges.results.from' },\n { path: 'aggregationData.results.ranges.results.to' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.from',\n },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.to',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.from',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.to',\n },\n ],\n },\n ]),\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/search',\n data: serializedData,\n host,\n }),\n data: serializedData,\n },\n ],\n };\n\n return metadata;\n }\n\n return __searchProducts;\n}\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function queryProducts(payload: object): RequestOptionsFactory<any> {\n function __queryProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.QueryProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/query',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload, true),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'products.createdDate' },\n { path: 'products.updatedDate' },\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'products.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'products.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.description.nodes.appEmbedData.image.duration',\n },\n { path: 'products.description.nodes.videoData.video.duration' },\n {\n path: 'products.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'products.description.nodes.audioData.audio.duration' },\n {\n path: 'products.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'products.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/query',\n data: payload,\n host,\n }),\n data: payload,\n },\n ],\n };\n\n return metadata;\n }\n\n return __queryProducts;\n}\n\n/** Counts the number of products that match the provided filtering. */\nexport function countProducts(payload: object): RequestOptionsFactory<any> {\n function __countProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.CountProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/count',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload, true),\n\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/count',\n data: payload,\n host,\n }),\n data: payload,\n },\n ],\n };\n\n return metadata;\n }\n\n return __countProducts;\n}\n\n/**\n * Updates a variant of multiple products, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be updated:\n * + `visible`\n * + `price`\n * + `revenueDetails.cost`\n * + `physicalOptions`\n */\nexport function bulkUpdateProductVariantsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProductVariantsByFilter({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'variant.physicalProperties.weight' },\n { path: 'variant.physicalProperties.pricePerUnit.settings.quantity' },\n { path: 'variant.revenueDetails.profitMargin' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'variant.media.image.urlExpirationDate' },\n { path: 'variant.media.video.urlExpirationDate' },\n { path: 'variant.media.video.resolutions.urlExpirationDate' },\n { path: 'variant.media.video.resolutions.poster.urlExpirationDate' },\n { path: 'variant.media.video.posters.urlExpirationDate' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProductVariantsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/update-variants-by-filter',\n data: serializedData,\n host,\n }),\n data: serializedData,\n };\n\n return metadata;\n }\n\n return __bulkUpdateProductVariantsByFilter;\n}\n\n/**\n * Adjusts the price and cost of multiple variants, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be increased/decreased by amount or percentage:\n * + `compareAtPrice`\n * + `actualPrice`\n * + `cost`\n * + `compareAtPriceDiscount`\n */\nexport function bulkAdjustProductVariantsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAdjustProductVariantsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAdjustProductVariantsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/adjust-variants-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkAdjustProductVariantsByFilter;\n}\n\n/** Adds info sections to multiple products, given the provided filter and search expression. */\nexport function bulkAddInfoSectionsToProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAddInfoSectionsToProductsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/add-info-sections-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkAddInfoSectionsToProductsByFilter;\n}\n\n/** Adds info sections to multiple products. */\nexport function bulkAddInfoSectionsToProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAddInfoSectionsToProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/add-info-sections',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkAddInfoSectionsToProducts;\n}\n\n/** Removes info sections from multiple products, given the provided filter and search expression. */\nexport function bulkRemoveInfoSectionsFromProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkRemoveInfoSectionsFromProductsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/remove-info-sections-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkRemoveInfoSectionsFromProductsByFilter;\n}\n\n/** Removes info sections from multiple products. */\nexport function bulkRemoveInfoSectionsFromProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkRemoveInfoSectionsFromProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/remove-info-sections',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkRemoveInfoSectionsFromProducts;\n}\n\n/**\n * Adds multiple products, given the provided filter and search expression, to up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\nexport function bulkAddProductsToCategoriesByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAddProductsToCategoriesByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAddProductsToCategoriesByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/add-to-categories-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkAddProductsToCategoriesByFilter;\n}\n\n/**\n * Removes multiple products, given the provided filter and search expression, from up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\nexport function bulkRemoveProductsFromCategoriesByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkRemoveProductsFromCategoriesByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkRemoveProductsFromCategoriesByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/remove-from-categories-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkRemoveProductsFromCategoriesByFilter;\n}\n\n/** Retrieves the id of \"All Products\" category which is automatically assigned to all products. */\nexport function getAllProductsCategory(\n payload: object\n): RequestOptionsFactory<any> {\n function __getAllProductsCategory({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.GetAllProductsCategory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/all-products-category',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getAllProductsCategory;\n}\n","import {\n createProduct as publicCreateProduct,\n createProductWithInventory as publicCreateProductWithInventory,\n updateProduct as publicUpdateProduct,\n updateProductWithInventory as publicUpdateProductWithInventory,\n bulkCreateProducts as publicBulkCreateProducts,\n bulkCreateProductsWithInventory as publicBulkCreateProductsWithInventory,\n bulkUpdateProducts as publicBulkUpdateProducts,\n bulkUpdateProductsWithInventory as publicBulkUpdateProductsWithInventory,\n bulkUpdateProductsByFilter as publicBulkUpdateProductsByFilter,\n deleteProduct as publicDeleteProduct,\n bulkDeleteProducts as publicBulkDeleteProducts,\n bulkDeleteProductsByFilter as publicBulkDeleteProductsByFilter,\n getProduct as publicGetProduct,\n getProductBySlug as publicGetProductBySlug,\n searchProducts as publicSearchProducts,\n queryProducts as publicQueryProducts,\n countProducts as publicCountProducts,\n bulkUpdateProductVariantsByFilter as publicBulkUpdateProductVariantsByFilter,\n bulkAdjustProductVariantsByFilter as publicBulkAdjustProductVariantsByFilter,\n bulkAddInfoSectionsToProductsByFilter as publicBulkAddInfoSectionsToProductsByFilter,\n bulkAddInfoSectionsToProducts as publicBulkAddInfoSectionsToProducts,\n bulkRemoveInfoSectionsFromProductsByFilter as publicBulkRemoveInfoSectionsFromProductsByFilter,\n bulkRemoveInfoSectionsFromProducts as publicBulkRemoveInfoSectionsFromProducts,\n bulkAddProductsToCategoriesByFilter as publicBulkAddProductsToCategoriesByFilter,\n bulkRemoveProductsFromCategoriesByFilter as publicBulkRemoveProductsFromCategoriesByFilter,\n getAllProductsCategory as publicGetAllProductsCategory,\n} from './stores-catalog-v3-product-products-v-3.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { createEventModule } from '@wix/sdk-runtime/event-definition-modules';\nimport {\n BuildRESTFunction,\n MaybeContext,\n BuildEventDefinition,\n} from '@wix/sdk-types';\nimport { onProductCreated as publicOnProductCreated } from './stores-catalog-v3-product-products-v-3.public.js';\nimport { onProductDeleted as publicOnProductDeleted } from './stores-catalog-v3-product-products-v-3.public.js';\nimport { onProductUpdated as publicOnProductUpdated } from './stores-catalog-v3-product-products-v-3.public.js';\n\nexport const createProduct: MaybeContext<\n BuildRESTFunction<typeof publicCreateProduct> & typeof publicCreateProduct\n> = /*#__PURE__*/ createRESTModule(publicCreateProduct);\nexport const createProductWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicCreateProductWithInventory> &\n typeof publicCreateProductWithInventory\n> = /*#__PURE__*/ createRESTModule(publicCreateProductWithInventory);\nexport const updateProduct: MaybeContext<\n BuildRESTFunction<typeof publicUpdateProduct> & typeof publicUpdateProduct\n> = /*#__PURE__*/ createRESTModule(publicUpdateProduct);\nexport const updateProductWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicUpdateProductWithInventory> &\n typeof publicUpdateProductWithInventory\n> = /*#__PURE__*/ createRESTModule(publicUpdateProductWithInventory);\nexport const bulkCreateProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateProducts> &\n typeof publicBulkCreateProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateProducts);\nexport const bulkCreateProductsWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateProductsWithInventory> &\n typeof publicBulkCreateProductsWithInventory\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateProductsWithInventory);\nexport const bulkUpdateProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProducts> &\n typeof publicBulkUpdateProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProducts);\nexport const bulkUpdateProductsWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProductsWithInventory> &\n typeof publicBulkUpdateProductsWithInventory\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProductsWithInventory);\nexport const bulkUpdateProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProductsByFilter> &\n typeof publicBulkUpdateProductsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProductsByFilter);\nexport const deleteProduct: MaybeContext<\n BuildRESTFunction<typeof publicDeleteProduct> & typeof publicDeleteProduct\n> = /*#__PURE__*/ createRESTModule(publicDeleteProduct);\nexport const bulkDeleteProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkDeleteProducts> &\n typeof publicBulkDeleteProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteProducts);\nexport const bulkDeleteProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkDeleteProductsByFilter> &\n typeof publicBulkDeleteProductsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteProductsByFilter);\nexport const getProduct: MaybeContext<\n BuildRESTFunction<typeof publicGetProduct> & typeof publicGetProduct\n> = /*#__PURE__*/ createRESTModule(publicGetProduct);\nexport const getProductBySlug: MaybeContext<\n BuildRESTFunction<typeof publicGetProductBySlug> &\n typeof publicGetProductBySlug\n> = /*#__PURE__*/ createRESTModule(publicGetProductBySlug);\nexport const searchProducts: MaybeContext<\n BuildRESTFunction<typeof publicSearchProducts> & typeof publicSearchProducts\n> = /*#__PURE__*/ createRESTModule(publicSearchProducts);\nexport const queryProducts: MaybeContext<\n BuildRESTFunction<typeof publicQueryProducts> & typeof publicQueryProducts\n> = /*#__PURE__*/ createRESTModule(publicQueryProducts);\nexport const countProducts: MaybeContext<\n BuildRESTFunction<typeof publicCountProducts> & typeof publicCountProducts\n> = /*#__PURE__*/ createRESTModule(publicCountProducts);\nexport const bulkUpdateProductVariantsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProductVariantsByFilter> &\n typeof publicBulkUpdateProductVariantsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProductVariantsByFilter);\nexport const bulkAdjustProductVariantsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkAdjustProductVariantsByFilter> &\n typeof publicBulkAdjustProductVariantsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkAdjustProductVariantsByFilter);\nexport const bulkAddInfoSectionsToProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkAddInfoSectionsToProductsByFilter> &\n typeof publicBulkAddInfoSectionsToProductsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkAddInfoSectionsToProductsByFilter);\nexport const bulkAddInfoSectionsToProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkAddInfoSectionsToProducts> &\n typeof publicBulkAddInfoSectionsToProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkAddInfoSectionsToProducts);\nexport const bulkRemoveInfoSectionsFromProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkRemoveInfoSectionsFromProductsByFilter> &\n typeof publicBulkRemoveInfoSectionsFromProductsByFilter\n> = /*#__PURE__*/ createRESTModule(\n publicBulkRemoveInfoSectionsFromProductsByFilter\n);\nexport const bulkRemoveInfoSectionsFromProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkRemoveInfoSectionsFromProducts> &\n typeof publicBulkRemoveInfoSectionsFromProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkRemoveInfoSectionsFromProducts);\nexport const bulkAddProductsToCategoriesByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkAddProductsToCategoriesByFilter> &\n typeof publicBulkAddProductsToCategoriesByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkAddProductsToCategoriesByFilter);\nexport const bulkRemoveProductsFromCategoriesByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkRemoveProductsFromCategoriesByFilter> &\n typeof publicBulkRemoveProductsFromCategoriesByFilter\n> = /*#__PURE__*/ createRESTModule(\n publicBulkRemoveProductsFromCategoriesByFilter\n);\nexport const getAllProductsCategory: MaybeContext<\n BuildRESTFunction<typeof publicGetAllProductsCategory> &\n typeof publicGetAllProductsCategory\n> = /*#__PURE__*/ createRESTModule(publicGetAllProductsCategory);\n/** */\nexport const onProductCreated: BuildEventDefinition<\n typeof publicOnProductCreated\n> &\n typeof publicOnProductCreated = createEventModule(publicOnProductCreated);\n/**\n * Triggered when a product is deleted.\n */\nexport const onProductDeleted: BuildEventDefinition<\n typeof publicOnProductDeleted\n> &\n typeof publicOnProductDeleted = createEventModule(publicOnProductDeleted);\n/**\n * Triggered when a product is updated.\n */\nexport const onProductUpdated: BuildEventDefinition<\n typeof publicOnProductUpdated\n> &\n typeof publicOnProductUpdated = createEventModule(publicOnProductUpdated);\n\nexport {\n NodeType,\n WidthType,\n PluginContainerDataAlignment,\n ButtonDataType,\n Target,\n TextAlignment,\n LineStyle,\n Width,\n DividerDataAlignment,\n ViewMode,\n LayoutType,\n Orientation,\n Crop,\n ThumbnailsAlignment,\n GIFType,\n Source,\n StylesPosition,\n MapType,\n ViewRole,\n VoteRole,\n PollLayoutType,\n PollLayoutDirection,\n BackgroundType,\n DecorationType,\n FontType,\n Position,\n AspectRatio,\n Resizing,\n Placement,\n Type,\n Alignment,\n Layout,\n AppType,\n InitialExpandedItems,\n Direction,\n VerticalAlignment,\n NullValue,\n MediaType,\n ProductOptionRenderType,\n ChoiceType,\n ModifierRenderType,\n InventoryAvailabilityStatus,\n PreorderStatus,\n ProductPreorderAvailability,\n ProductType,\n MeasurementUnit,\n WeightUnit,\n FileType,\n SubscriptionFrequency,\n DiscountType,\n Enum,\n State,\n WebhookIdentityType,\n SingleEntityOpsRequestedFields,\n SortOrder,\n SortType,\n SortDirection,\n MissingValues,\n ScalarType,\n NestedAggregationType,\n Interval,\n AggregationType,\n Mode,\n RequestedFields,\n CommonSortOrder,\n ValueAggregationSortType,\n ValueAggregationSortDirection,\n ValueAggregationMissingValues,\n CommonScalarType,\n NestedAggregationNestedAggregationType,\n DateHistogramAggregationInterval,\n CommonAggregationType,\n SearchDetailsMode,\n VariantsOpsRequestedFields,\n RoundingStrategy,\n AvailabilityStatus,\n EventType,\n CommonSearchDetailsMode,\n WixCommonSortOrder,\n AggregationValueAggregationSortType,\n AggregationValueAggregationSortDirection,\n AggregationValueAggregationMissingValues,\n WixCommonScalarType,\n AggregationNestedAggregationNestedAggregationType,\n AggregationDateHistogramAggregationInterval,\n WixCommonAggregationType,\n BulkAdjustProductVariantsByFilterRequestRoundingStrategy,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\nexport {\n V3Product,\n V3ProductTypedPropertiesOneOf,\n RichContent,\n Node,\n NodeDataOneOf,\n NodeStyle,\n ButtonData,\n Border,\n Colors,\n PluginContainerData,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Spoiler,\n Height,\n Styles,\n Link,\n LinkDataOneOf,\n Rel,\n CodeBlockData,\n TextStyle,\n DividerData,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n PDFSettings,\n GalleryData,\n V1Media,\n Image,\n Video,\n Item,\n ItemDataOneOf,\n GalleryOptions,\n GalleryOptionsLayout,\n ItemStyle,\n Thumbnails,\n GIFData,\n GIF,\n HeadingData,\n HTMLData,\n HTMLDataDataOneOf,\n ImageData,\n StylesBorder,\n ImageDataStyles,\n LinkPreviewData,\n LinkPreviewDataStyles,\n MapData,\n MapSettings,\n ParagraphData,\n PollData,\n Permissions,\n Option,\n PollSettings,\n PollLayout,\n OptionLayout,\n Gradient,\n Background,\n BackgroundBackgroundOneOf,\n PollDesign,\n OptionDesign,\n Poll,\n PollDataLayout,\n Design,\n TextData,\n Decoration,\n DecorationDataOneOf,\n AnchorData,\n ColorData,\n LinkData,\n MentionData,\n FontSizeData,\n SpoilerData,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n BookingData,\n EventData,\n ButtonStyles,\n ImageStyles,\n RibbonStyles,\n CardStyles,\n PricingData,\n VideoData,\n PlaybackOptions,\n EmbedData,\n Oembed,\n CollapsibleListData,\n TableData,\n Dimensions,\n TableCellData,\n CellStyle,\n BorderColors,\n ListValue,\n AudioData,\n OrderedListData,\n BulletedListData,\n BlockquoteData,\n CaptionData,\n LayoutCellData,\n Metadata,\n DocumentStyle,\n TextNodeStyle,\n Media,\n ProductMedia,\n ProductMediaSetByOneOf,\n ProductMediaMediaOneOf,\n VideoResolution,\n Thumbnail,\n MediaItemsInfo,\n SeoSchema,\n Keyword,\n Tag,\n Settings,\n ConnectedOption,\n ConnectedOptionOptionSettingsOneOf,\n ChoicesSettings,\n ConnectedOptionChoice,\n ConnectedOptionChoiceValueOneOf,\n MultipleColors,\n ConnectedModifier,\n ConnectedModifierModifierSettingsOneOf,\n FreeTextSettings,\n ModifierChoicesSettings,\n ConnectedModifierChoice,\n ConnectedModifierChoiceValueOneOf,\n Brand,\n InfoSection,\n Ribbon,\n ProductCategoriesInfo,\n ProductCategory,\n ProductCategoryIdsInfo,\n PriceRange,\n FixedMonetaryAmount,\n Inventory,\n PhysicalProperties,\n PricePerUnitSettings,\n WeightRange,\n PricePerUnitRange,\n PricePerUnitRangePricePerUnit,\n WeightMeasurementUnitInfo,\n BreadcrumbsInfo,\n BreadCrumb,\n VariantsInfo,\n Variant,\n VariantTypedPropertiesOneOf,\n OptionChoice,\n OptionChoiceIds,\n OptionChoiceNames,\n PriceInfo,\n RevenueDetails,\n VariantPhysicalProperties,\n PricePerUnit,\n VariantDigitalProperties,\n SecuredMedia,\n SubscriptionPricesInfo,\n SubscriptionPrice,\n SubscriptionPricePerUnit,\n InventoryStatus,\n ExtendedFields,\n SubscriptionDetails,\n Subscription,\n SubscriptionCyclesOneOf,\n SubscriptionDiscount,\n SubscriptionDiscountDiscountOneOf,\n VariantSummary,\n MinVariantPriceInfo,\n CreateBatchRequest,\n CreateBatchResponse,\n BulkAddProductsToBatchRequest,\n ProductItem,\n ProductWithInventory,\n ProductWithInventoryTypedPropertiesOneOf,\n V3VariantsInfo,\n VariantWithInventory,\n VariantWithInventoryTypedPropertiesOneOf,\n InventoryItemComposite,\n InventoryItemCompositeTrackingMethodOneOf,\n PreorderInfo,\n OptionChoiceReferences,\n V3OptionChoiceIds,\n V3OptionChoiceNames,\n V3ProductCategoryIdsInfo,\n BulkAddProductsToBatchResponse,\n WixCommonItemMetadata,\n ApplicationError,\n BulkItemResult,\n CommonBulkActionMetadata,\n SubmitBatchRequest,\n SubmitBatchResponse,\n UpdateDocumentsEvent,\n UpdateDocumentsEventOperationOneOf,\n DocumentUpdateOperation,\n IndexDocument,\n DocumentPayload,\n DocumentImage,\n DeleteByIdsOperation,\n DeleteByFilterOperation,\n UpdateByFilterOperation,\n UpdateExistingOperation,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n Empty,\n SearchIndexingNotification,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n App,\n Page,\n URI,\n File,\n CustomTag,\n DoNotCallCreateProductRequest,\n DoNotCallCreateProductResponse,\n DuplicateMediaIdAssignedToProduct,\n GetProductRequest,\n GetProductResponse,\n GetProductBySlugRequest,\n GetProductBySlugResponse,\n DoNotCallUpdateProductRequest,\n DoNotCallUpdateProductResponse,\n VariantsRemoved,\n UnsupportedFieldMasks,\n DeleteProductRequest,\n DeleteProductResponse,\n SearchProductsRequest,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Sorting,\n Aggregation,\n AggregationKindOneOf,\n RangeBucket,\n IncludeMissingValuesOptions,\n ValueAggregation,\n ValueAggregationOptionsOneOf,\n RangeAggregation,\n ScalarAggregation,\n DateHistogramAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregation,\n SearchDetails,\n CursorPaging,\n SearchProductsResponse,\n CursorPagingMetadata,\n Cursors,\n AggregationData,\n ValueAggregationResult,\n RangeAggregationResult,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n ValueResults,\n RangeResults,\n AggregationResultsScalarResult,\n NestedValueAggregationResult,\n ValueResult,\n RangeResult,\n ScalarResult,\n NestedResultValue,\n NestedResultValueResultOneOf,\n Results,\n DateHistogramResult,\n GroupByValueResults,\n DateHistogramResults,\n NestedResults,\n AggregationResults,\n AggregationResultsResultOneOf,\n SearchRelatedProductsRequest,\n SearchRelated,\n SearchRelatedDetails,\n SearchRelatedProductsResponse,\n EventuallyConsistentQueryProductsRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n EventuallyConsistentQueryProductsResponse,\n QueryProductsRequest,\n QueryProductsResponse,\n DeprecatedSearchProductsWithOffsetRequest,\n PlatformOffsetSearch,\n PlatformOffsetSearchPagingMethodOneOf,\n CommonSorting,\n CommonAggregation,\n CommonAggregationKindOneOf,\n RangeAggregationRangeBucket,\n ValueAggregationIncludeMissingValuesOptions,\n AggregationValueAggregation,\n AggregationValueAggregationOptionsOneOf,\n AggregationRangeAggregation,\n AggregationScalarAggregation,\n AggregationDateHistogramAggregation,\n NestedAggregationNestedAggregationItem,\n NestedAggregationNestedAggregationItemKindOneOf,\n AggregationNestedAggregation,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n CommonSearchDetails,\n PlatformPaging,\n DeprecatedSearchProductsWithOffsetResponse,\n PagingMetadata,\n RetrieveVariantsRequest,\n ProductVariantIds,\n VariantsCursorPaging,\n RetrieveVariantsResponse,\n ProductVariants,\n CountProductsRequest,\n CountProductsResponse,\n DoNotCallBulkCreateProductsRequest,\n DoNotCallBulkCreateProductsResponse,\n V3BulkProductResult,\n CommonItemMetadata,\n BulkActionMetadata,\n DoNotCallBulkUpdateProductsRequest,\n MaskedProduct,\n DoNotCallBulkUpdateProductsResponse,\n BulkUpdateProductsByFilterRequest,\n BulkUpdateProductsByFilterResponse,\n BulkDeleteProductsRequest,\n BulkDeleteProductsResponse,\n BulkProductResult,\n BulkDeleteProductsByFilterRequest,\n BulkDeleteProductsByFilterResponse,\n BulkAddInfoSectionsToProductsByFilterRequest,\n BulkAddInfoSectionsToProductsByFilterResponse,\n FulfillerDeleted,\n BulkAddInfoSectionsToProductsRequest,\n ProductIdWithRevision,\n BulkAddInfoSectionsToProductsResponse,\n BulkRemoveInfoSectionsFromProductsByFilterRequest,\n BulkRemoveInfoSectionsFromProductsByFilterResponse,\n BulkRemoveInfoSectionsFromProductsRequest,\n BulkRemoveInfoSectionsFromProductsResponse,\n BulkUpdateVariantsByFilterRequest,\n BulkUpdateVariantsByFilterResponse,\n BulkAdjustProductVariantsByFilterRequest,\n AdjustValue,\n AdjustValueAdjustValueOneOf,\n UnsignedAdjustValue,\n UnsignedAdjustValueAdjustValueOneOf,\n BulkAdjustProductVariantsByFilterResponse,\n BulkInventoryItemAction,\n InventoryItem,\n InventoryItemTrackingMethodOneOf,\n Product,\n CalculateProductInventorPreorderStatusAsyncRequest,\n CalculateProductInventorPreorderStatusAsyncResponse,\n CreateProductRequest,\n CreateProductResponse,\n VariantsNotAlignedWithProduct,\n VariantNotAlignedWithProduct,\n CreateProductWithInventoryRequest,\n CreateProductWithInventoryResponse,\n BulkInventoryItemResults,\n BulkInventoryItemResult,\n ItemMetadata,\n WixCommonBulkActionMetadata,\n UpdateProductRequest,\n UpdateProductResponse,\n UpdateProductWithInventoryRequest,\n UpdateProductWithInventoryResponse,\n BulkCreateProductsRequest,\n BulkCreateProductsResponse,\n CatalogV3BulkProductResult,\n UpstreamWixCommonItemMetadata,\n InvalidDigitalFileIds,\n BulkCreateProductsWithInventoryRequest,\n BulkCreateProductsWithInventoryResponse,\n BulkProductResults,\n BulkUpdateProductsRequest,\n V3MaskedProduct,\n BulkUpdateProductsResponse,\n BulkUpdateProductsWithInventoryRequest,\n MaskedProductWithInventory,\n BulkUpdateProductsWithInventoryResponse,\n V3BulkUpdateProductsByFilterRequest,\n WixCommonSearchDetails,\n V3BulkUpdateProductsByFilterResponse,\n V3DeleteProductRequest,\n V3DeleteProductResponse,\n V3BulkDeleteProductsRequest,\n V3BulkDeleteProductsResponse,\n BulkDeleteProductsResponseBulkProductResult,\n V3BulkDeleteProductsByFilterRequest,\n V3BulkDeleteProductsByFilterResponse,\n V3GetProductRequest,\n V3GetProductResponse,\n V3GetProductBySlugRequest,\n V3GetProductBySlugResponse,\n V3SearchProductsRequest,\n CommonCursorSearch,\n CommonCursorSearchPagingMethodOneOf,\n WixCommonSorting,\n WixCommonAggregation,\n WixCommonAggregationKindOneOf,\n AggregationRangeAggregationRangeBucket,\n AggregationValueAggregationIncludeMissingValuesOptions,\n CommonAggregationValueAggregation,\n CommonAggregationValueAggregationOptionsOneOf,\n CommonAggregationRangeAggregation,\n CommonAggregationScalarAggregation,\n CommonAggregationDateHistogramAggregation,\n AggregationNestedAggregationNestedAggregationItem,\n AggregationNestedAggregationNestedAggregationItemKindOneOf,\n CommonAggregationNestedAggregation,\n CommonCursorPaging,\n V3SearchProductsResponse,\n CommonCursorPagingMetadata,\n CommonCursors,\n CommonAggregationData,\n ValueResultsValueAggregationResult,\n RangeResultsRangeAggregationResult,\n AggregationResultsNestedAggregationResults,\n AggregationResultsNestedAggregationResultsResultOneOf,\n AggregationResultsValueResults,\n AggregationResultsRangeResults,\n AggregationDataAggregationResultsScalarResult,\n GroupByValueResultsNestedValueAggregationResult,\n NestedResultsValueResult,\n NestedResultsRangeResult,\n NestedResultsScalarResult,\n NestedResultsNestedResultValue,\n NestedResultsNestedResultValueResultOneOf,\n NestedResultsResults,\n DateHistogramResultsDateHistogramResult,\n AggregationResultsGroupByValueResults,\n AggregationResultsDateHistogramResults,\n AggregationResultsNestedResults,\n AggregationDataAggregationResults,\n AggregationDataAggregationResultsResultOneOf,\n V3QueryProductsRequest,\n CommonCursorQuery,\n CommonCursorQueryPagingMethodOneOf,\n V3QueryProductsResponse,\n V3CountProductsRequest,\n V3CountProductsResponse,\n BulkUpdateProductVariantsByFilterRequest,\n BulkUpdateProductVariantsByFilterResponse,\n V3BulkAdjustProductVariantsByFilterRequest,\n V3AdjustValue,\n V3AdjustValueAdjustValueOneOf,\n V3UnsignedAdjustValue,\n V3UnsignedAdjustValueAdjustValueOneOf,\n V3BulkAdjustProductVariantsByFilterResponse,\n V3BulkAddInfoSectionsToProductsByFilterRequest,\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n V3BulkAddInfoSectionsToProductsRequest,\n V3ProductIdWithRevision,\n V3BulkAddInfoSectionsToProductsResponse,\n V3BulkRemoveInfoSectionsFromProductsByFilterRequest,\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n V3BulkRemoveInfoSectionsFromProductsRequest,\n V3BulkRemoveInfoSectionsFromProductsResponse,\n BulkAddProductsToCategoriesByFilterRequest,\n BulkAddProductsToCategoriesByFilterResponse,\n BulkRemoveProductsFromCategoriesByFilterRequest,\n BulkRemoveProductsFromCategoriesByFilterResponse,\n GetAllProductsCategoryRequest,\n GetAllProductsCategoryResponse,\n TreeReference,\n BaseEventMetadata,\n EventMetadata,\n ProductCreatedEnvelope,\n ProductDeletedEnvelope,\n ProductUpdatedEnvelope,\n CreateProductOptions,\n CreateProductWithInventoryOptions,\n UpdateProduct,\n UpdateProductOptions,\n UpdateProductWithInventoryProduct,\n UpdateProductWithInventoryOptions,\n BulkCreateProductsOptions,\n BulkCreateProductsWithInventoryOptions,\n BulkUpdateProductsOptions,\n BulkUpdateProductsWithInventoryOptions,\n BulkUpdateProductsByFilterOptions,\n BulkDeleteProductsByFilterOptions,\n GetProductOptions,\n GetProductBySlugOptions,\n SearchProductsOptions,\n V3ProductSearchSpec,\n QueryProductsOptions,\n ProductsQueryResult,\n ProductsQueryBuilder,\n CountProductsOptions,\n BulkUpdateProductVariantsByFilterOptions,\n BulkAdjustProductVariantsByFilterOptions,\n BulkAddInfoSectionsToProductsByFilterOptions,\n BulkAddInfoSectionsToProductsOptions,\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n BulkRemoveInfoSectionsFromProductsOptions,\n BulkAddProductsToCategoriesByFilterOptions,\n BulkRemoveProductsFromCategoriesByFilterOptions,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\nexport {\n NodeTypeWithLiterals,\n WidthTypeWithLiterals,\n PluginContainerDataAlignmentWithLiterals,\n ButtonDataTypeWithLiterals,\n TargetWithLiterals,\n TextAlignmentWithLiterals,\n LineStyleWithLiterals,\n WidthWithLiterals,\n DividerDataAlignmentWithLiterals,\n ViewModeWithLiterals,\n LayoutTypeWithLiterals,\n OrientationWithLiterals,\n CropWithLiterals,\n ThumbnailsAlignmentWithLiterals,\n GIFTypeWithLiterals,\n SourceWithLiterals,\n StylesPositionWithLiterals,\n MapTypeWithLiterals,\n ViewRoleWithLiterals,\n VoteRoleWithLiterals,\n PollLayoutTypeWithLiterals,\n PollLayoutDirectionWithLiterals,\n BackgroundTypeWithLiterals,\n DecorationTypeWithLiterals,\n FontTypeWithLiterals,\n PositionWithLiterals,\n AspectRatioWithLiterals,\n ResizingWithLiterals,\n PlacementWithLiterals,\n TypeWithLiterals,\n AlignmentWithLiterals,\n LayoutWithLiterals,\n AppTypeWithLiterals,\n InitialExpandedItemsWithLiterals,\n DirectionWithLiterals,\n VerticalAlignmentWithLiterals,\n NullValueWithLiterals,\n MediaTypeWithLiterals,\n ProductOptionRenderTypeWithLiterals,\n ChoiceTypeWithLiterals,\n ModifierRenderTypeWithLiterals,\n InventoryAvailabilityStatusWithLiterals,\n PreorderStatusWithLiterals,\n ProductPreorderAvailabilityWithLiterals,\n ProductTypeWithLiterals,\n MeasurementUnitWithLiterals,\n WeightUnitWithLiterals,\n FileTypeWithLiterals,\n SubscriptionFrequencyWithLiterals,\n DiscountTypeWithLiterals,\n EnumWithLiterals,\n StateWithLiterals,\n WebhookIdentityTypeWithLiterals,\n SingleEntityOpsRequestedFieldsWithLiterals,\n SortOrderWithLiterals,\n SortTypeWithLiterals,\n SortDirectionWithLiterals,\n MissingValuesWithLiterals,\n ScalarTypeWithLiterals,\n NestedAggregationTypeWithLiterals,\n IntervalWithLiterals,\n AggregationTypeWithLiterals,\n ModeWithLiterals,\n RequestedFieldsWithLiterals,\n CommonSortOrderWithLiterals,\n ValueAggregationSortTypeWithLiterals,\n ValueAggregationSortDirectionWithLiterals,\n ValueAggregationMissingValuesWithLiterals,\n CommonScalarTypeWithLiterals,\n NestedAggregationNestedAggregationTypeWithLiterals,\n DateHistogramAggregationIntervalWithLiterals,\n CommonAggregationTypeWithLiterals,\n SearchDetailsModeWithLiterals,\n VariantsOpsRequestedFieldsWithLiterals,\n RoundingStrategyWithLiterals,\n AvailabilityStatusWithLiterals,\n EventTypeWithLiterals,\n CommonSearchDetailsModeWithLiterals,\n WixCommonSortOrderWithLiterals,\n AggregationValueAggregationSortTypeWithLiterals,\n AggregationValueAggregationSortDirectionWithLiterals,\n AggregationValueAggregationMissingValuesWithLiterals,\n WixCommonScalarTypeWithLiterals,\n AggregationNestedAggregationNestedAggregationTypeWithLiterals,\n AggregationDateHistogramAggregationIntervalWithLiterals,\n WixCommonAggregationTypeWithLiterals,\n BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals,\n CreateProductApplicationErrors,\n CreateProductValidationErrors,\n CreateProductWithInventoryApplicationErrors,\n CreateProductWithInventoryValidationErrors,\n UpdateProductApplicationErrors,\n UpdateProductValidationErrors,\n UpdateProductWithInventoryApplicationErrors,\n UpdateProductWithInventoryValidationErrors,\n BulkCreateProductsApplicationErrors,\n BulkCreateProductsValidationErrors,\n BulkCreateProductsWithInventoryApplicationErrors,\n BulkCreateProductsWithInventoryValidationErrors,\n BulkUpdateProductsApplicationErrors,\n BulkUpdateProductsValidationErrors,\n BulkUpdateProductsWithInventoryApplicationErrors,\n BulkUpdateProductsWithInventoryValidationErrors,\n BulkUpdateProductsByFilterApplicationErrors,\n BulkUpdateProductsByFilterValidationErrors,\n BulkDeleteProductsValidationErrors,\n GetProductApplicationErrors,\n GetProductBySlugApplicationErrors,\n SearchProductsApplicationErrors,\n QueryProductsApplicationErrors,\n CountProductsApplicationErrors,\n BulkUpdateProductVariantsByFilterApplicationErrors,\n BulkUpdateProductVariantsByFilterValidationErrors,\n BulkAdjustProductVariantsByFilterApplicationErrors,\n BulkAdjustProductVariantsByFilterValidationErrors,\n BulkAddInfoSectionsToProductsByFilterApplicationErrors,\n BulkAddInfoSectionsToProductsApplicationErrors,\n CommonSearchWithEntityContext,\n V3ProductSearch,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\n"],"mappings":"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a;AAAA,UACb,OAAO;AAAA,YACL;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAA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M;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YAC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","names":["bulkAddInfoSectionsToProducts","bulkAddInfoSectionsToProductsByFilter","bulkAddProductsToCategoriesByFilter","bulkAdjustProductVariantsByFilter","bulkCreateProducts","bulkCreateProductsWithInventory","bulkDeleteProducts","bulkDeleteProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveProductsFromCategoriesByFilter","bulkUpdateProductVariantsByFilter","bulkUpdateProducts","bulkUpdateProductsByFilter","bulkUpdateProductsWithInventory","countProducts","createProduct","createProductWithInventory","deleteProduct","getAllProductsCategory","getProduct","getProductBySlug","onProductCreated","onProductDeleted","onProductUpdated","queryProducts","searchProducts","updateProduct","updateProductWithInventory","import_rename_all_nested_keys","import_float","import_image","import_page_url_v2","import_timestamp","import_transform_paths","import_video_v2","import_float","import_timestamp","import_rest_modules","payload","import_image","import_video_v2","import_page_url_v2","import_transform_paths","NodeType","WidthType","PluginContainerDataAlignment","ButtonDataType","Target","TextAlignment","LineStyle","Width","DividerDataAlignment","ViewMode","LayoutType","Orientation","Crop","ThumbnailsAlignment","GIFType","Source","StylesPosition","MapType","ViewRole","VoteRole","PollLayoutType","PollLayoutDirection","BackgroundType","DecorationType","FontType","Position","AspectRatio","Resizing","Placement","Type","Alignment","Layout","AppType","InitialExpandedItems","Direction","VerticalAlignment","NullValue","MediaType","ProductOptionRenderType","ChoiceType","ModifierRenderType","InventoryAvailabilityStatus","PreorderStatus","ProductPreorderAvailability","ProductType","MeasurementUnit","WeightUnit","FileType","SubscriptionFrequency","DiscountType","Enum","State","WebhookIdentityType","SingleEntityOpsRequestedFields","SortOrder","SortType","SortDirection","MissingValues","ScalarType","NestedAggregationType","Interval","AggregationType","Mode","RequestedFields","CommonSortOrder","ValueAggregationSortType","ValueAggregationSortDirection","ValueAggregationMissingValues","CommonScalarType","NestedAggregationNestedAggregationType","DateHistogramAggregationInterval","CommonAggregationType","SearchDetailsMode","VariantsOpsRequestedFields","RoundingStrategy","AvailabilityStatus","EventType","CommonSearchDetailsMode","WixCommonSortOrder","AggregationValueAggregationSortType","AggregationValueAggregationSortDirection","AggregationValueAggregationMissingValues","WixCommonScalarType","AggregationNestedAggregationNestedAggregationType","AggregationDateHistogramAggregationInterval","WixCommonAggregationType","BulkAdjustProductVariantsByFilterRequestRoundingStrategy","createProduct","sdkTransformError","createProductWithInventory","updateProduct","updateProductWithInventory","bulkCreateProducts","bulkCreateProductsWithInventory","bulkUpdateProducts","bulkUpdateProductsWithInventory","bulkUpdateProductsByFilter","deleteProduct","bulkDeleteProducts","bulkDeleteProductsByFilter","getProduct","getProductBySlug","searchProducts","queryProducts","countProducts","bulkUpdateProductVariantsByFilter","bulkAdjustProductVariantsByFilter","bulkAddInfoSectionsToProductsByFilter","bulkAddInfoSectionsToProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkAddProductsToCategoriesByFilter","bulkRemoveProductsFromCategoriesByFilter","getAllProductsCategory","createProduct","createProductWithInventory","updateProduct","updateProductWithInventory","bulkCreateProducts","bulkCreateProductsWithInventory","bulkUpdateProducts","bulkUpdateProductsWithInventory","bulkUpdateProductsByFilter","deleteProduct","bulkDeleteProducts","bulkDeleteProductsByFilter","getProduct","getProductBySlug","searchProducts","queryProducts","countProducts","bulkUpdateProductVariantsByFilter","bulkAdjustProductVariantsByFilter","bulkAddInfoSectionsToProductsByFilter","bulkAddInfoSectionsToProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkAddProductsToCategoriesByFilter","bulkRemoveProductsFromCategoriesByFilter","getAllProductsCategory","import_rest_modules","createProduct","createProductWithInventory","updateProduct","updateProductWithInventory","bulkCreateProducts","bulkCreateProductsWithInventory","bulkUpdateProducts","bulkUpdateProductsWithInventory","bulkUpdateProductsByFilter","deleteProduct","bulkDeleteProducts","bulkDeleteProductsByFilter","getProduct","getProductBySlug","searchProducts","queryProducts","countProducts","bulkUpdateProductVariantsByFilter","bulkAdjustProductVariantsByFilter","bulkAddInfoSectionsToProductsByFilter","bulkAddInfoSectionsToProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkAddProductsToCategoriesByFilter","bulkRemoveProductsFromCategoriesByFilter","getAllProductsCategory","onProductCreated","onProductDeleted","onProductUpdated"]}
1
+ {"version":3,"sources":["../../index.ts","../../src/stores-catalog-v3-product-products-v-3.public.ts","../../src/stores-catalog-v3-product-products-v-3.universal.ts","../../src/stores-catalog-v3-product-products-v-3.http.ts","../../src/stores-catalog-v3-product-products-v-3.context.ts"],"sourcesContent":["export * from './src/stores-catalog-v3-product-products-v-3.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTPageURLV2ToSDKPageURLV2 } from '@wix/sdk-runtime/transformations/page-url-v2';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { transformRESTVideoV2ToSDKVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n BulkAddInfoSectionsToProductsApplicationErrors,\n BulkAddInfoSectionsToProductsByFilterApplicationErrors,\n BulkAddInfoSectionsToProductsByFilterOptions,\n BulkAddInfoSectionsToProductsOptions,\n BulkAddProductsToCategoriesByFilterOptions,\n BulkAddProductsToCategoriesByFilterResponse,\n BulkAdjustProductVariantsByFilterApplicationErrors,\n BulkAdjustProductVariantsByFilterOptions,\n BulkAdjustProductVariantsByFilterValidationErrors,\n BulkCreateProductsApplicationErrors,\n BulkCreateProductsOptions,\n BulkCreateProductsResponse,\n BulkCreateProductsValidationErrors,\n BulkCreateProductsWithInventoryApplicationErrors,\n BulkCreateProductsWithInventoryOptions,\n BulkCreateProductsWithInventoryResponse,\n BulkCreateProductsWithInventoryValidationErrors,\n BulkDeleteProductsByFilterOptions,\n BulkDeleteProductsValidationErrors,\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n BulkRemoveInfoSectionsFromProductsOptions,\n BulkRemoveProductsFromCategoriesByFilterOptions,\n BulkRemoveProductsFromCategoriesByFilterResponse,\n BulkUpdateProductVariantsByFilterApplicationErrors,\n BulkUpdateProductVariantsByFilterOptions,\n BulkUpdateProductVariantsByFilterResponse,\n BulkUpdateProductVariantsByFilterValidationErrors,\n BulkUpdateProductsApplicationErrors,\n BulkUpdateProductsByFilterApplicationErrors,\n BulkUpdateProductsByFilterOptions,\n BulkUpdateProductsByFilterValidationErrors,\n BulkUpdateProductsOptions,\n BulkUpdateProductsResponse,\n BulkUpdateProductsValidationErrors,\n BulkUpdateProductsWithInventoryApplicationErrors,\n BulkUpdateProductsWithInventoryOptions,\n BulkUpdateProductsWithInventoryResponse,\n BulkUpdateProductsWithInventoryValidationErrors,\n CountProductsApplicationErrors,\n CountProductsOptions,\n CreateProductApplicationErrors,\n CreateProductOptions,\n CreateProductValidationErrors,\n CreateProductWithInventoryApplicationErrors,\n CreateProductWithInventoryOptions,\n CreateProductWithInventoryResponse,\n CreateProductWithInventoryValidationErrors,\n GetAllProductsCategoryResponse,\n GetProductApplicationErrors,\n GetProductBySlugApplicationErrors,\n GetProductBySlugOptions,\n GetProductOptions,\n MaskedProductWithInventory,\n ProductCreatedEnvelope,\n ProductDeletedEnvelope,\n ProductUpdatedEnvelope,\n ProductWithInventory,\n ProductsQueryBuilder,\n QueryProductsOptions,\n SearchProductsApplicationErrors,\n SearchProductsOptions,\n UpdateProduct,\n UpdateProductApplicationErrors,\n UpdateProductOptions,\n UpdateProductValidationErrors,\n UpdateProductWithInventoryApplicationErrors,\n UpdateProductWithInventoryOptions,\n UpdateProductWithInventoryProduct,\n UpdateProductWithInventoryResponse,\n UpdateProductWithInventoryValidationErrors,\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n V3BulkAddInfoSectionsToProductsResponse,\n V3BulkAdjustProductVariantsByFilterResponse,\n V3BulkDeleteProductsByFilterResponse,\n V3BulkDeleteProductsResponse,\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n V3BulkRemoveInfoSectionsFromProductsResponse,\n V3BulkUpdateProductsByFilterResponse,\n V3CountProductsResponse,\n V3GetProductBySlugResponse,\n V3MaskedProduct,\n V3Product,\n V3ProductIdWithRevision,\n V3ProductSearch,\n V3SearchProductsResponse,\n bulkAddInfoSectionsToProducts as universalBulkAddInfoSectionsToProducts,\n bulkAddInfoSectionsToProductsByFilter as universalBulkAddInfoSectionsToProductsByFilter,\n bulkAddProductsToCategoriesByFilter as universalBulkAddProductsToCategoriesByFilter,\n bulkAdjustProductVariantsByFilter as universalBulkAdjustProductVariantsByFilter,\n bulkCreateProducts as universalBulkCreateProducts,\n bulkCreateProductsWithInventory as universalBulkCreateProductsWithInventory,\n bulkDeleteProducts as universalBulkDeleteProducts,\n bulkDeleteProductsByFilter as universalBulkDeleteProductsByFilter,\n bulkRemoveInfoSectionsFromProducts as universalBulkRemoveInfoSectionsFromProducts,\n bulkRemoveInfoSectionsFromProductsByFilter as universalBulkRemoveInfoSectionsFromProductsByFilter,\n bulkRemoveProductsFromCategoriesByFilter as universalBulkRemoveProductsFromCategoriesByFilter,\n bulkUpdateProductVariantsByFilter as universalBulkUpdateProductVariantsByFilter,\n bulkUpdateProducts as universalBulkUpdateProducts,\n bulkUpdateProductsByFilter as universalBulkUpdateProductsByFilter,\n bulkUpdateProductsWithInventory as universalBulkUpdateProductsWithInventory,\n countProducts as universalCountProducts,\n createProduct as universalCreateProduct,\n createProductWithInventory as universalCreateProductWithInventory,\n deleteProduct as universalDeleteProduct,\n getAllProductsCategory as universalGetAllProductsCategory,\n getProduct as universalGetProduct,\n getProductBySlug as universalGetProductBySlug,\n queryProducts as universalQueryProducts,\n searchProducts as universalSearchProducts,\n updateProduct as universalUpdateProduct,\n updateProductWithInventory as universalUpdateProductWithInventory,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/stores' };\n\nexport function createProduct(httpClient: HttpClient): CreateProductSignature {\n return (\n product: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductOptions\n ) =>\n universalCreateProduct(\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateProductSignature {\n /**\n * Creates a new product.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param - Product to create.\n *\n * At least 1 variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n * @returns Created product.\n */\n (\n product: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductOptions\n ): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: CreateProductApplicationErrors;\n __validationErrorsType?: CreateProductValidationErrors;\n }\n >;\n}\n\nexport function createProductWithInventory(\n httpClient: HttpClient\n): CreateProductWithInventorySignature {\n return (\n product: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductWithInventoryOptions\n ) =>\n universalCreateProductWithInventory(\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateProductWithInventorySignature {\n /**\n * Creates a new product, and can create the product's inventory in the variants' default locations.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param - Product to create with inventory.\n *\n * At least one variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n */\n (\n product: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n CreateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: CreateProductWithInventoryApplicationErrors;\n __validationErrorsType?: CreateProductWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function updateProduct(httpClient: HttpClient): UpdateProductSignature {\n return (\n _id: string,\n product: NonNullablePaths<\n UpdateProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductOptions\n ) =>\n universalUpdateProduct(\n _id,\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateProductSignature {\n /**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants and options are mutually dependant and must be aligned.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * > + Updating media per variant is not supported. Instead, assign media items to product option choices using the `linkedMedia` field. You must use preexisting product media.\n * @param - Product ID.\n * @returns Updated product.\n */\n (\n _id: string,\n product: NonNullablePaths<\n UpdateProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductOptions\n ): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: UpdateProductApplicationErrors;\n __validationErrorsType?: UpdateProductValidationErrors;\n }\n >;\n}\n\nexport function updateProductWithInventory(\n httpClient: HttpClient\n): UpdateProductWithInventorySignature {\n return (\n _id: string,\n product: NonNullablePaths<\n UpdateProductWithInventoryProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductWithInventoryOptions\n ) =>\n universalUpdateProductWithInventory(\n _id,\n product,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateProductWithInventorySignature {\n /**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants depend on options, and options depend on variants.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * @param - Product ID.\n */\n (\n _id: string,\n product: NonNullablePaths<\n UpdateProductWithInventoryProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n UpdateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: UpdateProductWithInventoryApplicationErrors;\n __validationErrorsType?: UpdateProductWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function bulkCreateProducts(\n httpClient: HttpClient\n): BulkCreateProductsSignature {\n return (\n products: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsOptions\n ) =>\n universalBulkCreateProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateProductsSignature {\n /**\n * Creates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to create.\n */\n (\n products: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsOptions\n ): Promise<\n NonNullablePaths<\n BulkCreateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateProductsApplicationErrors;\n __validationErrorsType?: BulkCreateProductsValidationErrors;\n }\n >;\n}\n\nexport function bulkCreateProductsWithInventory(\n httpClient: HttpClient\n): BulkCreateProductsWithInventorySignature {\n return (\n products: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsWithInventoryOptions\n ) =>\n universalBulkCreateProductsWithInventory(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkCreateProductsWithInventorySignature {\n /**\n * Creates up to 100 products, and can create the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to create with inventory.\n */\n (\n products: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n BulkCreateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkCreateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkCreateProductsWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProducts(\n httpClient: HttpClient\n): BulkUpdateProductsSignature {\n return (\n products: NonNullablePaths<\n V3MaskedProduct,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsOptions\n ) =>\n universalBulkUpdateProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductsSignature {\n /**\n * Updates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to update.\n */\n (\n products: NonNullablePaths<\n V3MaskedProduct,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsOptions\n ): Promise<\n NonNullablePaths<\n BulkUpdateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateProductsApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsValidationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProductsWithInventory(\n httpClient: HttpClient\n): BulkUpdateProductsWithInventorySignature {\n return (\n products: NonNullablePaths<\n MaskedProductWithInventory,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsWithInventoryOptions\n ) =>\n universalBulkUpdateProductsWithInventory(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductsWithInventorySignature {\n /**\n * Updates up to 100 products, and can update the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param - List of products to update.\n */\n (\n products: NonNullablePaths<\n MaskedProductWithInventory,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsWithInventoryOptions\n ): Promise<\n NonNullablePaths<\n BulkUpdateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkUpdateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsWithInventoryValidationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProductsByFilter(\n httpClient: HttpClient\n): BulkUpdateProductsByFilterSignature {\n return (\n options?: NonNullablePaths<\n BulkUpdateProductsByFilterOptions,\n | `product`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`,\n 7\n >\n ) =>\n universalBulkUpdateProductsByFilter(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductsByFilterSignature {\n /**\n * Updates multiple products, given the provided filter.\n *\n * To update `infoSections`, `brand` or `ribbon` fields, you must also pass their existing `id`.\n *\n * > **Note:**\n * > The following fields cannot be updated with this endpoint:\n * > + `slug`\n * > + `options`\n * > + `modifiers`\n * > + `variantsInfo`\n * >\n * > To update these fields, use [Bulk Update Products](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/bulk-update-products).\n */\n (\n options?: NonNullablePaths<\n BulkUpdateProductsByFilterOptions,\n | `product`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`,\n 7\n >\n ): Promise<\n NonNullablePaths<V3BulkUpdateProductsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsByFilterValidationErrors;\n }\n >;\n}\n\nexport function deleteProduct(httpClient: HttpClient): DeleteProductSignature {\n return (productId: string) =>\n universalDeleteProduct(\n productId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteProductSignature {\n /**\n * Deletes a product and all its variants.\n * @param - Product ID.\n */\n (productId: string): Promise<void>;\n}\n\nexport function bulkDeleteProducts(\n httpClient: HttpClient\n): BulkDeleteProductsSignature {\n return (productIds: string[]) =>\n universalBulkDeleteProducts(\n productIds,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkDeleteProductsSignature {\n /**\n * Deletes multiple products.\n * @param - IDs of products to delete.\n */\n (productIds: string[]): Promise<\n NonNullablePaths<\n V3BulkDeleteProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __validationErrorsType?: BulkDeleteProductsValidationErrors;\n }\n >;\n}\n\nexport function bulkDeleteProductsByFilter(\n httpClient: HttpClient\n): BulkDeleteProductsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkDeleteProductsByFilterOptions\n ) =>\n universalBulkDeleteProductsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkDeleteProductsByFilterSignature {\n /**\n * Delete multiple products, given the provided filter.\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: BulkDeleteProductsByFilterOptions\n ): Promise<\n NonNullablePaths<V3BulkDeleteProductsByFilterResponse, `jobId`, 2>\n >;\n}\n\nexport function getProduct(httpClient: HttpClient): GetProductSignature {\n return (productId: string, options?: GetProductOptions) =>\n universalGetProduct(\n productId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetProductSignature {\n /**\n * Retrieves a product.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param - Product ID.\n * @returns Product.\n */\n (productId: string, options?: GetProductOptions): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: GetProductApplicationErrors;\n }\n >;\n}\n\nexport function getProductBySlug(\n httpClient: HttpClient\n): GetProductBySlugSignature {\n return (slug: string, options?: GetProductBySlugOptions) =>\n universalGetProductBySlug(\n slug,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetProductBySlugSignature {\n /**\n * Retrieves a product by slug.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param - Product slug.\n */\n (slug: string, options?: GetProductBySlugOptions): Promise<\n NonNullablePaths<\n V3GetProductBySlugResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`,\n 8\n > & {\n __applicationErrorsType?: GetProductBySlugApplicationErrors;\n }\n >;\n}\n\nexport function searchProducts(\n httpClient: HttpClient\n): SearchProductsSignature {\n return (search: V3ProductSearch, options?: SearchProductsOptions) =>\n universalSearchProducts(\n search,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface SearchProductsSignature {\n /**\n * Retrieves a list of up to 100 products, given the provided filtering, search expression, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param - Search options.\n */\n (search: V3ProductSearch, options?: SearchProductsOptions): Promise<\n NonNullablePaths<\n V3SearchProductsResponse,\n | `products`\n | `products.${number}.physicalProperties.pricePerUnit.quantity`\n | `products.${number}.physicalProperties.pricePerUnit.measurementUnit`\n | `products.${number}.physicalProperties.shippingWeightRange.minValue`\n | `products.${number}.physicalProperties.shippingWeightRange.maxValue`\n | `products.${number}.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `products.${number}.media.main._id`\n | `products.${number}.media.main.url`\n | `products.${number}.media.main.mediaType`\n | `products.${number}.media.main.uploadId`\n | `products.${number}.seoData.settings.preventAutoRedirect`\n | `products.${number}.costRange.minValue.amount`\n | `products.${number}.inventory.availabilityStatus`\n | `products.${number}.inventory.preorderStatus`\n | `products.${number}.inventory.preorderAvailability`\n | `products.${number}.productType`\n | `products.${number}.variantSummary.variantCount`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n > & {\n __applicationErrorsType?: SearchProductsApplicationErrors;\n }\n >;\n}\n\nexport function queryProducts(httpClient: HttpClient): QueryProductsSignature {\n return (options?: QueryProductsOptions) =>\n universalQueryProducts(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryProductsSignature {\n /**\n * Retrieves a list of up to 100 products, given the provided filtering, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n (options?: QueryProductsOptions): ProductsQueryBuilder;\n}\n\nexport function countProducts(httpClient: HttpClient): CountProductsSignature {\n return (options?: CountProductsOptions) =>\n universalCountProducts(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CountProductsSignature {\n /**\n * Counts the number of products that match the provided filtering.\n */\n (options?: CountProductsOptions): Promise<\n NonNullablePaths<V3CountProductsResponse, `count`, 2> & {\n __applicationErrorsType?: CountProductsApplicationErrors;\n }\n >;\n}\n\nexport function bulkUpdateProductVariantsByFilter(\n httpClient: HttpClient\n): BulkUpdateProductVariantsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkUpdateProductVariantsByFilterOptions,\n `variant`,\n 2\n >\n ) =>\n universalBulkUpdateProductVariantsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkUpdateProductVariantsByFilterSignature {\n /**\n * Updates a variant of multiple products, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be updated:\n * + `visible`\n * + `price`\n * + `revenueDetails.cost`\n * + `physicalOptions`\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkUpdateProductVariantsByFilterOptions,\n `variant`,\n 2\n >\n ): Promise<\n NonNullablePaths<BulkUpdateProductVariantsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductVariantsByFilterValidationErrors;\n }\n >;\n}\n\nexport function bulkAdjustProductVariantsByFilter(\n httpClient: HttpClient\n): BulkAdjustProductVariantsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: BulkAdjustProductVariantsByFilterOptions\n ) =>\n universalBulkAdjustProductVariantsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAdjustProductVariantsByFilterSignature {\n /**\n * Adjusts the price and cost of multiple variants, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be increased/decreased by amount or percentage:\n * + `compareAtPrice`\n * + `actualPrice`\n * + `cost`\n * + `compareAtPriceDiscount`\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: BulkAdjustProductVariantsByFilterOptions\n ): Promise<\n NonNullablePaths<\n V3BulkAdjustProductVariantsByFilterResponse,\n `jobId`,\n 2\n > & {\n __applicationErrorsType?: BulkAdjustProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkAdjustProductVariantsByFilterValidationErrors;\n }\n >;\n}\n\nexport function bulkAddInfoSectionsToProductsByFilter(\n httpClient: HttpClient\n): BulkAddInfoSectionsToProductsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkAddInfoSectionsToProductsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAddInfoSectionsToProductsByFilterSignature {\n /**\n * Adds info sections to multiple products, given the provided filter and search expression.\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n `jobId`,\n 2\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsByFilterApplicationErrors;\n }\n >;\n}\n\nexport function bulkAddInfoSectionsToProducts(\n httpClient: HttpClient\n): BulkAddInfoSectionsToProductsSignature {\n return (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkAddInfoSectionsToProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAddInfoSectionsToProductsSignature {\n /**\n * Adds info sections to multiple products.\n * @param - List of product IDs and revisions.\n */\n (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsApplicationErrors;\n }\n >;\n}\n\nexport function bulkRemoveInfoSectionsFromProductsByFilter(\n httpClient: HttpClient\n): BulkRemoveInfoSectionsFromProductsByFilterSignature {\n return (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkRemoveInfoSectionsFromProductsByFilter(\n filter,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkRemoveInfoSectionsFromProductsByFilterSignature {\n /**\n * Removes info sections from multiple products, given the provided filter and search expression.\n * @param - Filter object.\n */\n (\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n `jobId`,\n 2\n >\n >;\n}\n\nexport function bulkRemoveInfoSectionsFromProducts(\n httpClient: HttpClient\n): BulkRemoveInfoSectionsFromProductsSignature {\n return (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsOptions,\n `infoSectionIds`,\n 2\n >\n ) =>\n universalBulkRemoveInfoSectionsFromProducts(\n products,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkRemoveInfoSectionsFromProductsSignature {\n /**\n * Removes info sections from multiple products.\n * @param - List of product IDs and revisions.\n */\n (\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsOptions,\n `infoSectionIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n >\n >;\n}\n\nexport function bulkAddProductsToCategoriesByFilter(\n httpClient: HttpClient\n): BulkAddProductsToCategoriesByFilterSignature {\n return (\n options?: NonNullablePaths<\n BulkAddProductsToCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ) =>\n universalBulkAddProductsToCategoriesByFilter(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkAddProductsToCategoriesByFilterSignature {\n /**\n * Adds multiple products, given the provided filter and search expression, to up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\n (\n options?: NonNullablePaths<\n BulkAddProductsToCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<BulkAddProductsToCategoriesByFilterResponse, `jobId`, 2>\n >;\n}\n\nexport function bulkRemoveProductsFromCategoriesByFilter(\n httpClient: HttpClient\n): BulkRemoveProductsFromCategoriesByFilterSignature {\n return (\n options?: NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ) =>\n universalBulkRemoveProductsFromCategoriesByFilter(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkRemoveProductsFromCategoriesByFilterSignature {\n /**\n * Removes multiple products, given the provided filter and search expression, from up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\n (\n options?: NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterResponse,\n `jobId`,\n 2\n >\n >;\n}\n\nexport function getAllProductsCategory(\n httpClient: HttpClient\n): GetAllProductsCategorySignature {\n return () =>\n universalGetAllProductsCategory(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetAllProductsCategorySignature {\n /**\n * Retrieves the id of \"All Products\" category which is automatically assigned to all products.\n */\n (): Promise<\n NonNullablePaths<\n GetAllProductsCategoryResponse,\n `categoryId` | `treeReference.appNamespace`,\n 3\n >\n >;\n}\n\nexport const onProductCreated = EventDefinition(\n 'wix.stores.catalog.v3.product_created',\n true,\n (event: ProductCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.description.metadata.createdTimestamp' },\n { path: 'entity.description.metadata.updatedTimestamp' },\n {\n path: 'entity.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'entity.infoSections.description.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'entity.url' }],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.physicalProperties.pricePerUnit.quantity' },\n { path: 'entity.physicalProperties.shippingWeightRange.minValue' },\n { path: 'entity.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'entity.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'entity.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'entity.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'entity.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'entity.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'entity.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'entity.description.nodes.galleryData.options.item.ratio' },\n { path: 'entity.description.nodes.imageData.image.duration' },\n { path: 'entity.description.nodes.mapData.mapSettings.lat' },\n { path: 'entity.description.nodes.mapData.mapSettings.lng' },\n { path: 'entity.description.nodes.pollData.poll.image.duration' },\n {\n path: 'entity.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'entity.description.nodes.appEmbedData.image.duration' },\n { path: 'entity.description.nodes.videoData.video.duration' },\n { path: 'entity.description.nodes.videoData.thumbnail.duration' },\n { path: 'entity.description.nodes.audioData.audio.duration' },\n { path: 'entity.description.nodes.audioData.coverImage.duration' },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'entity.variantsInfo.variants.physicalProperties.weight' },\n { path: 'entity.minVariantPriceInfo.weight' },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.media.main.image' },\n { path: 'entity.media.itemsInfo.items.image' },\n { path: 'entity.options.choicesSettings.choices.image' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.modifiers.choicesSettings.choices.image' },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.media.main.video' },\n { path: 'entity.media.itemsInfo.items.video' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'entity.variantsInfo.variants.media.video' },\n ],\n },\n ])\n )\n)<ProductCreatedEnvelope>();\nexport const onProductDeleted = EventDefinition(\n 'wix.stores.catalog.v3.product_deleted',\n true,\n (event: ProductDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.description.metadata.createdTimestamp' },\n { path: 'entity.description.metadata.updatedTimestamp' },\n {\n path: 'entity.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'entity.infoSections.description.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'entity.url' }],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.physicalProperties.pricePerUnit.quantity' },\n { path: 'entity.physicalProperties.shippingWeightRange.minValue' },\n { path: 'entity.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'entity.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'entity.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'entity.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'entity.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'entity.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'entity.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'entity.description.nodes.galleryData.options.item.ratio' },\n { path: 'entity.description.nodes.imageData.image.duration' },\n { path: 'entity.description.nodes.mapData.mapSettings.lat' },\n { path: 'entity.description.nodes.mapData.mapSettings.lng' },\n { path: 'entity.description.nodes.pollData.poll.image.duration' },\n {\n path: 'entity.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'entity.description.nodes.appEmbedData.image.duration' },\n { path: 'entity.description.nodes.videoData.video.duration' },\n { path: 'entity.description.nodes.videoData.thumbnail.duration' },\n { path: 'entity.description.nodes.audioData.audio.duration' },\n { path: 'entity.description.nodes.audioData.coverImage.duration' },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'entity.variantsInfo.variants.physicalProperties.weight' },\n { path: 'entity.minVariantPriceInfo.weight' },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.media.main.image' },\n { path: 'entity.media.itemsInfo.items.image' },\n { path: 'entity.options.choicesSettings.choices.image' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.modifiers.choicesSettings.choices.image' },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.media.main.video' },\n { path: 'entity.media.itemsInfo.items.video' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'entity.variantsInfo.variants.media.video' },\n ],\n },\n ])\n )\n)<ProductDeletedEnvelope>();\nexport const onProductUpdated = EventDefinition(\n 'wix.stores.catalog.v3.product_updated',\n true,\n (event: ProductUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.description.metadata.createdTimestamp' },\n { path: 'entity.description.metadata.updatedTimestamp' },\n {\n path: 'entity.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'entity.infoSections.description.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'entity.url' }],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'entity.physicalProperties.pricePerUnit.quantity' },\n { path: 'entity.physicalProperties.shippingWeightRange.minValue' },\n { path: 'entity.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'entity.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'entity.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'entity.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'entity.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'entity.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'entity.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'entity.description.nodes.galleryData.options.item.ratio' },\n { path: 'entity.description.nodes.imageData.image.duration' },\n { path: 'entity.description.nodes.mapData.mapSettings.lat' },\n { path: 'entity.description.nodes.mapData.mapSettings.lng' },\n { path: 'entity.description.nodes.pollData.poll.image.duration' },\n {\n path: 'entity.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'entity.description.nodes.appEmbedData.image.duration' },\n { path: 'entity.description.nodes.videoData.video.duration' },\n { path: 'entity.description.nodes.videoData.thumbnail.duration' },\n { path: 'entity.description.nodes.audioData.audio.duration' },\n { path: 'entity.description.nodes.audioData.coverImage.duration' },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'entity.variantsInfo.variants.physicalProperties.weight' },\n { path: 'entity.minVariantPriceInfo.weight' },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.media.main.image' },\n { path: 'entity.media.itemsInfo.items.image' },\n { path: 'entity.options.choicesSettings.choices.image' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.modifiers.choicesSettings.choices.image' },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'entity.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.media.main.video' },\n { path: 'entity.media.itemsInfo.items.video' },\n {\n path: 'entity.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'entity.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'entity.variantsInfo.variants.media.video' },\n ],\n },\n ])\n )\n)<ProductUpdatedEnvelope>();\n\nexport {\n ActionEvent,\n AdjustValue,\n AdjustValueAdjustValueOneOf,\n Aggregation,\n AggregationData,\n AggregationDataAggregationResults,\n AggregationDataAggregationResultsResultOneOf,\n AggregationDataAggregationResultsScalarResult,\n AggregationDateHistogramAggregation,\n AggregationDateHistogramAggregationInterval,\n AggregationKindOneOf,\n AggregationNestedAggregation,\n AggregationNestedAggregationNestedAggregationItem,\n AggregationNestedAggregationNestedAggregationItemKindOneOf,\n AggregationNestedAggregationNestedAggregationType,\n AggregationRangeAggregation,\n AggregationRangeAggregationRangeBucket,\n AggregationResults,\n AggregationResultsDateHistogramResults,\n AggregationResultsGroupByValueResults,\n AggregationResultsNestedAggregationResults,\n AggregationResultsNestedAggregationResultsResultOneOf,\n AggregationResultsNestedResults,\n AggregationResultsRangeResults,\n AggregationResultsResultOneOf,\n AggregationResultsScalarResult,\n AggregationResultsValueResults,\n AggregationScalarAggregation,\n AggregationType,\n AggregationValueAggregation,\n AggregationValueAggregationIncludeMissingValuesOptions,\n AggregationValueAggregationMissingValues,\n AggregationValueAggregationOptionsOneOf,\n AggregationValueAggregationSortDirection,\n AggregationValueAggregationSortType,\n Alignment,\n AnchorData,\n App,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n AppType,\n ApplicationError,\n AspectRatio,\n AudioData,\n AvailabilityStatus,\n Background,\n BackgroundBackgroundOneOf,\n BackgroundType,\n BaseEventMetadata,\n BlockquoteData,\n BookingData,\n Border,\n BorderColors,\n Brand,\n BreadCrumb,\n BreadcrumbsInfo,\n BulkActionMetadata,\n BulkAddInfoSectionsToProductsByFilterOptions,\n BulkAddInfoSectionsToProductsByFilterRequest,\n BulkAddInfoSectionsToProductsByFilterResponse,\n BulkAddInfoSectionsToProductsOptions,\n BulkAddInfoSectionsToProductsRequest,\n BulkAddInfoSectionsToProductsResponse,\n BulkAddProductsToBatchRequest,\n BulkAddProductsToBatchResponse,\n BulkAddProductsToCategoriesByFilterOptions,\n BulkAddProductsToCategoriesByFilterRequest,\n BulkAddProductsToCategoriesByFilterResponse,\n BulkAdjustProductVariantsByFilterOptions,\n BulkAdjustProductVariantsByFilterRequest,\n BulkAdjustProductVariantsByFilterRequestRoundingStrategy,\n BulkAdjustProductVariantsByFilterResponse,\n BulkCreateProductsOptions,\n BulkCreateProductsRequest,\n BulkCreateProductsResponse,\n BulkCreateProductsWithInventoryOptions,\n BulkCreateProductsWithInventoryRequest,\n BulkCreateProductsWithInventoryResponse,\n BulkDeleteProductsByFilterOptions,\n BulkDeleteProductsByFilterRequest,\n BulkDeleteProductsByFilterResponse,\n BulkDeleteProductsRequest,\n BulkDeleteProductsResponse,\n BulkDeleteProductsResponseBulkProductResult,\n BulkInventoryItemAction,\n BulkInventoryItemResult,\n BulkInventoryItemResults,\n BulkItemResult,\n BulkProductResult,\n BulkProductResults,\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n BulkRemoveInfoSectionsFromProductsByFilterRequest,\n BulkRemoveInfoSectionsFromProductsByFilterResponse,\n BulkRemoveInfoSectionsFromProductsOptions,\n BulkRemoveInfoSectionsFromProductsRequest,\n BulkRemoveInfoSectionsFromProductsResponse,\n BulkRemoveProductsFromCategoriesByFilterOptions,\n BulkRemoveProductsFromCategoriesByFilterRequest,\n BulkRemoveProductsFromCategoriesByFilterResponse,\n BulkUpdateProductVariantsByFilterOptions,\n BulkUpdateProductVariantsByFilterRequest,\n BulkUpdateProductVariantsByFilterResponse,\n BulkUpdateProductsByFilterOptions,\n BulkUpdateProductsByFilterRequest,\n BulkUpdateProductsByFilterResponse,\n BulkUpdateProductsOptions,\n BulkUpdateProductsRequest,\n BulkUpdateProductsResponse,\n BulkUpdateProductsWithInventoryOptions,\n BulkUpdateProductsWithInventoryRequest,\n BulkUpdateProductsWithInventoryResponse,\n BulkUpdateVariantsByFilterRequest,\n BulkUpdateVariantsByFilterResponse,\n BulletedListData,\n ButtonData,\n ButtonDataType,\n ButtonStyles,\n CalculateProductInventorPreorderStatusAsyncRequest,\n CalculateProductInventorPreorderStatusAsyncResponse,\n CaptionData,\n CardStyles,\n CatalogV3BulkProductResult,\n CellStyle,\n ChoiceType,\n ChoicesSettings,\n CodeBlockData,\n CollapsibleListData,\n ColorData,\n Colors,\n CommonAggregation,\n CommonAggregationData,\n CommonAggregationDateHistogramAggregation,\n CommonAggregationKindOneOf,\n CommonAggregationNestedAggregation,\n CommonAggregationRangeAggregation,\n CommonAggregationScalarAggregation,\n CommonAggregationType,\n CommonAggregationValueAggregation,\n CommonAggregationValueAggregationOptionsOneOf,\n CommonBulkActionMetadata,\n CommonCursorPaging,\n CommonCursorPagingMetadata,\n CommonCursorQuery,\n CommonCursorQueryPagingMethodOneOf,\n CommonCursorSearch,\n CommonCursorSearchPagingMethodOneOf,\n CommonCursors,\n CommonItemMetadata,\n CommonScalarType,\n CommonSearchDetails,\n CommonSearchDetailsMode,\n CommonSortOrder,\n CommonSorting,\n ConnectedModifier,\n ConnectedModifierChoice,\n ConnectedModifierChoiceValueOneOf,\n ConnectedModifierModifierSettingsOneOf,\n ConnectedOption,\n ConnectedOptionChoice,\n ConnectedOptionChoiceValueOneOf,\n ConnectedOptionOptionSettingsOneOf,\n CountProductsOptions,\n CountProductsRequest,\n CountProductsResponse,\n CreateBatchRequest,\n CreateBatchResponse,\n CreateProductOptions,\n CreateProductRequest,\n CreateProductResponse,\n CreateProductWithInventoryOptions,\n CreateProductWithInventoryRequest,\n CreateProductWithInventoryResponse,\n Crop,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Cursors,\n CustomTag,\n DateHistogramAggregation,\n DateHistogramAggregationInterval,\n DateHistogramResult,\n DateHistogramResults,\n DateHistogramResultsDateHistogramResult,\n Decoration,\n DecorationDataOneOf,\n DecorationType,\n DeleteByFilterOperation,\n DeleteByIdsOperation,\n DeleteProductRequest,\n DeleteProductResponse,\n DeprecatedSearchProductsWithOffsetRequest,\n DeprecatedSearchProductsWithOffsetResponse,\n Design,\n Dimensions,\n Direction,\n DiscountType,\n DividerData,\n DividerDataAlignment,\n DoNotCallBulkCreateProductsRequest,\n DoNotCallBulkCreateProductsResponse,\n DoNotCallBulkUpdateProductsRequest,\n DoNotCallBulkUpdateProductsResponse,\n DoNotCallCreateProductRequest,\n DoNotCallCreateProductResponse,\n DoNotCallUpdateProductRequest,\n DoNotCallUpdateProductResponse,\n DocumentImage,\n DocumentPayload,\n DocumentStyle,\n DocumentUpdateOperation,\n DomainEvent,\n DomainEventBodyOneOf,\n DuplicateMediaIdAssignedToProduct,\n EmbedData,\n Empty,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n Enum,\n EventData,\n EventMetadata,\n EventType,\n EventuallyConsistentQueryProductsRequest,\n EventuallyConsistentQueryProductsResponse,\n ExtendedFields,\n File,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n FileType,\n FixedMonetaryAmount,\n FontSizeData,\n FontType,\n FreeTextSettings,\n FulfillerDeleted,\n GIF,\n GIFData,\n GIFType,\n GalleryData,\n GalleryOptions,\n GalleryOptionsLayout,\n GetAllProductsCategoryRequest,\n GetAllProductsCategoryResponse,\n GetProductBySlugOptions,\n GetProductBySlugRequest,\n GetProductBySlugResponse,\n GetProductOptions,\n GetProductRequest,\n GetProductResponse,\n Gradient,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n GroupByValueResults,\n GroupByValueResultsNestedValueAggregationResult,\n HTMLData,\n HTMLDataDataOneOf,\n HeadingData,\n Height,\n IdentificationData,\n IdentificationDataIdOneOf,\n Image,\n ImageData,\n ImageDataStyles,\n ImageStyles,\n IncludeMissingValuesOptions,\n IndexDocument,\n InfoSection,\n InitialExpandedItems,\n Interval,\n InvalidDigitalFileIds,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n Inventory,\n InventoryAvailabilityStatus,\n InventoryItem,\n InventoryItemComposite,\n InventoryItemCompositeTrackingMethodOneOf,\n InventoryItemTrackingMethodOneOf,\n InventoryStatus,\n Item,\n ItemDataOneOf,\n ItemMetadata,\n ItemStyle,\n Keyword,\n Layout,\n LayoutCellData,\n LayoutType,\n LineStyle,\n Link,\n LinkData,\n LinkDataOneOf,\n LinkPreviewData,\n LinkPreviewDataStyles,\n ListValue,\n MapData,\n MapSettings,\n MapType,\n MaskedProduct,\n MaskedProductWithInventory,\n MeasurementUnit,\n Media,\n MediaItemsInfo,\n MediaType,\n MentionData,\n MessageEnvelope,\n Metadata,\n MinVariantPriceInfo,\n MissingValues,\n Mode,\n ModifierChoicesSettings,\n ModifierRenderType,\n MultipleColors,\n NestedAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregationNestedAggregationItem,\n NestedAggregationNestedAggregationItemKindOneOf,\n NestedAggregationNestedAggregationType,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n NestedAggregationType,\n NestedResultValue,\n NestedResultValueResultOneOf,\n NestedResults,\n NestedResultsNestedResultValue,\n NestedResultsNestedResultValueResultOneOf,\n NestedResultsRangeResult,\n NestedResultsResults,\n NestedResultsScalarResult,\n NestedResultsValueResult,\n NestedValueAggregationResult,\n Node,\n NodeDataOneOf,\n NodeStyle,\n NodeType,\n NullValue,\n Oembed,\n Option,\n OptionChoice,\n OptionChoiceIds,\n OptionChoiceNames,\n OptionChoiceReferences,\n OptionDesign,\n OptionLayout,\n OrderedListData,\n Orientation,\n PDFSettings,\n Page,\n PagingMetadata,\n ParagraphData,\n Permissions,\n PhysicalProperties,\n Placement,\n PlatformOffsetSearch,\n PlatformOffsetSearchPagingMethodOneOf,\n PlatformPaging,\n PlaybackOptions,\n PluginContainerData,\n PluginContainerDataAlignment,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Poll,\n PollData,\n PollDataLayout,\n PollDesign,\n PollLayout,\n PollLayoutDirection,\n PollLayoutType,\n PollSettings,\n Position,\n PreorderInfo,\n PreorderStatus,\n PriceInfo,\n PricePerUnit,\n PricePerUnitRange,\n PricePerUnitRangePricePerUnit,\n PricePerUnitSettings,\n PriceRange,\n PricingData,\n Product,\n ProductCategoriesInfo,\n ProductCategory,\n ProductCategoryIdsInfo,\n ProductCreatedEnvelope,\n ProductDeletedEnvelope,\n ProductIdWithRevision,\n ProductItem,\n ProductMedia,\n ProductMediaMediaOneOf,\n ProductMediaSetByOneOf,\n ProductOptionRenderType,\n ProductPreorderAvailability,\n ProductType,\n ProductUpdatedEnvelope,\n ProductVariantIds,\n ProductVariants,\n ProductWithInventory,\n ProductWithInventoryTypedPropertiesOneOf,\n ProductsQueryBuilder,\n ProductsQueryResult,\n QueryProductsOptions,\n QueryProductsRequest,\n QueryProductsResponse,\n RangeAggregation,\n RangeAggregationRangeBucket,\n RangeAggregationResult,\n RangeBucket,\n RangeResult,\n RangeResults,\n RangeResultsRangeAggregationResult,\n Rel,\n RequestedFields,\n Resizing,\n RestoreInfo,\n Results,\n RetrieveVariantsRequest,\n RetrieveVariantsResponse,\n RevenueDetails,\n Ribbon,\n RibbonStyles,\n RichContent,\n RoundingStrategy,\n ScalarAggregation,\n ScalarResult,\n ScalarType,\n SearchDetails,\n SearchDetailsMode,\n SearchIndexingNotification,\n SearchProductsOptions,\n SearchProductsRequest,\n SearchProductsResponse,\n SearchRelated,\n SearchRelatedDetails,\n SearchRelatedProductsRequest,\n SearchRelatedProductsResponse,\n SecuredMedia,\n SeoSchema,\n Settings,\n SingleEntityOpsRequestedFields,\n SortDirection,\n SortOrder,\n SortType,\n Sorting,\n Source,\n Spoiler,\n SpoilerData,\n State,\n Styles,\n StylesBorder,\n StylesPosition,\n SubmitBatchRequest,\n SubmitBatchResponse,\n Subscription,\n SubscriptionCyclesOneOf,\n SubscriptionDetails,\n SubscriptionDiscount,\n SubscriptionDiscountDiscountOneOf,\n SubscriptionFrequency,\n SubscriptionPrice,\n SubscriptionPricePerUnit,\n SubscriptionPricesInfo,\n TableCellData,\n TableData,\n Tag,\n Target,\n TextAlignment,\n TextData,\n TextNodeStyle,\n TextStyle,\n Thumbnail,\n Thumbnails,\n ThumbnailsAlignment,\n TreeReference,\n Type,\n URI,\n UnsignedAdjustValue,\n UnsignedAdjustValueAdjustValueOneOf,\n UnsupportedFieldMasks,\n UpdateByFilterOperation,\n UpdateDocumentsEvent,\n UpdateDocumentsEventOperationOneOf,\n UpdateExistingOperation,\n UpdateProduct,\n UpdateProductOptions,\n UpdateProductRequest,\n UpdateProductResponse,\n UpdateProductWithInventoryOptions,\n UpdateProductWithInventoryProduct,\n UpdateProductWithInventoryRequest,\n UpdateProductWithInventoryResponse,\n UpstreamWixCommonItemMetadata,\n V1Media,\n V3AdjustValue,\n V3AdjustValueAdjustValueOneOf,\n V3BulkAddInfoSectionsToProductsByFilterRequest,\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n V3BulkAddInfoSectionsToProductsRequest,\n V3BulkAddInfoSectionsToProductsResponse,\n V3BulkAdjustProductVariantsByFilterRequest,\n V3BulkAdjustProductVariantsByFilterResponse,\n V3BulkDeleteProductsByFilterRequest,\n V3BulkDeleteProductsByFilterResponse,\n V3BulkDeleteProductsRequest,\n V3BulkDeleteProductsResponse,\n V3BulkProductResult,\n V3BulkRemoveInfoSectionsFromProductsByFilterRequest,\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n V3BulkRemoveInfoSectionsFromProductsRequest,\n V3BulkRemoveInfoSectionsFromProductsResponse,\n V3BulkUpdateProductsByFilterRequest,\n V3BulkUpdateProductsByFilterResponse,\n V3CountProductsRequest,\n V3CountProductsResponse,\n V3DeleteProductRequest,\n V3DeleteProductResponse,\n V3GetProductBySlugRequest,\n V3GetProductBySlugResponse,\n V3GetProductRequest,\n V3GetProductResponse,\n V3MaskedProduct,\n V3OptionChoiceIds,\n V3OptionChoiceNames,\n V3Product,\n V3ProductCategoryIdsInfo,\n V3ProductIdWithRevision,\n V3ProductSearchSpec,\n V3ProductTypedPropertiesOneOf,\n V3QueryProductsRequest,\n V3QueryProductsResponse,\n V3SearchProductsRequest,\n V3SearchProductsResponse,\n V3UnsignedAdjustValue,\n V3UnsignedAdjustValueAdjustValueOneOf,\n V3VariantsInfo,\n ValueAggregation,\n ValueAggregationIncludeMissingValuesOptions,\n ValueAggregationMissingValues,\n ValueAggregationOptionsOneOf,\n ValueAggregationResult,\n ValueAggregationSortDirection,\n ValueAggregationSortType,\n ValueResult,\n ValueResults,\n ValueResultsValueAggregationResult,\n Variant,\n VariantDigitalProperties,\n VariantNotAlignedWithProduct,\n VariantPhysicalProperties,\n VariantSummary,\n VariantTypedPropertiesOneOf,\n VariantWithInventory,\n VariantWithInventoryTypedPropertiesOneOf,\n VariantsCursorPaging,\n VariantsInfo,\n VariantsNotAlignedWithProduct,\n VariantsOpsRequestedFields,\n VariantsRemoved,\n VerticalAlignment,\n Video,\n VideoData,\n VideoResolution,\n ViewMode,\n ViewRole,\n VoteRole,\n WebhookIdentityType,\n WeightMeasurementUnitInfo,\n WeightRange,\n WeightUnit,\n Width,\n WidthType,\n WixCommonAggregation,\n WixCommonAggregationKindOneOf,\n WixCommonAggregationType,\n WixCommonBulkActionMetadata,\n WixCommonItemMetadata,\n WixCommonScalarType,\n WixCommonSearchDetails,\n WixCommonSortOrder,\n WixCommonSorting,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n HttpClient,\n HttpResponse,\n Search as SearchSdkType,\n NonNullablePaths,\n SearchSpec,\n} from '@wix/sdk-types';\nimport * as ambassadorWixStoresCatalogV3Product from './stores-catalog-v3-product-products-v-3.http.js';\n// @ts-ignore\nimport { transformSDKImageToRESTImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformSDKVideoV2ToRESTVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { transformRESTVideoV2ToSDKVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { transformSDKPageURLV2ToRESTPageURLV2 } from '@wix/sdk-runtime/transformations/page-url-v2';\nimport { transformRESTPageURLV2ToSDKPageURLV2 } from '@wix/sdk-runtime/transformations/page-url-v2';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\n\nexport interface V3Product extends V3ProductTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the product was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the product was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Product name. Translatable.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * URL to the site's product page.\n *\n * > **Note:** Returned only when you pass `\"URL\"` to the `fields` array in Products API requests.\n * @readonly\n */\n url?: string;\n /**\n * Product description using rich content.\n * > **Note:** Returned only when you pass `\"DESCRIPTION\"` to the `fields` array in Products API requests.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" plugins=\"indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor\" exampleid=\"7dc9240e-d548-417a-abcf-0291b68b4303\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n */\n description?: RichContent;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows the customer to customize the product. For example, selecting color, size, and more.\n *\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * Product modifiers.\n *\n * Allows the customer to customize product, e.g. select Color, Size and so on similarly to `options` but with one main difference - `modifiers` never generate any variants.\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * List of categories that directly contain this product.\n *\n * 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.\n * > **Note:** Returned only when you pass `\"DIRECT_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n directCategoriesInfo?: ProductCategoriesInfo;\n /**\n * List of categories that directly contain this product, as well as their parent categories.\n * > **Note:** Returned only when you pass `\"ALL_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n allCategoriesInfo?: ProductCategoriesInfo;\n /**\n * 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\".\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product cost range - minimum and maximum costs of all product variants.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @readonly\n */\n costRange?: PriceRange;\n /**\n * Product inventory info.\n * @readonly\n */\n inventory?: Inventory;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /**\n * 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.\n *\n * Defaults to the currency defined in the site settings, unless specified in `x-wix-currency` header.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @format CURRENCY\n * @readonly\n */\n currency?: string | null;\n /**\n * Breadcrumbs of the `mainCategoryId`. Used to navigate to parent categories.\n * > **Note:** Returned only when you pass `\"BREADCRUMBS_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n breadcrumbsInfo?: BreadcrumbsInfo;\n /**\n * Product actualPrice range - minimum and maximum prices of all product variants.\n * @readonly\n */\n actualPriceRange?: PriceRange;\n /**\n * Product compareAtPrice range - minimum and maximum compare at prices of all product variants.\n * @readonly\n */\n compareAtPriceRange?: PriceRange;\n /**\n * Optional - ID of the app that manages the inventory for this product.\n * @internal\n * @format GUID\n */\n inventoryAppId?: string | null;\n /**\n * Product variants. Each variant must reference all product options via its `choices` array.\n * Each choice references an option using `optionChoiceNames` for all requests.\n */\n variantsInfo?: VariantsInfo;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the app dashboard before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n /** Product subscriptions. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * The total number of variants for the product.\n * @readonly\n */\n variantSummary?: VariantSummary;\n}\n\n/** @oneof */\nexport interface V3ProductTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n}\n\nexport interface RichContent {\n /** Node objects representing a rich content document. */\n nodes?: Node[];\n /** Object metadata. */\n metadata?: Metadata;\n /** Global styling for header, paragraph, block quote, and code block nodes in the object. */\n documentStyle?: DocumentStyle;\n}\n\nexport interface Node extends NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */\n layoutCellData?: LayoutCellData;\n /** 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. */\n type?: NodeTypeWithLiterals;\n /** Node ID. */\n id?: string;\n /** A list of child nodes. */\n nodes?: Node[];\n /** Padding and background color styling for the node. */\n style?: NodeStyle;\n}\n\n/** @oneof */\nexport interface NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */\n layoutCellData?: LayoutCellData;\n}\n\nexport enum NodeType {\n PARAGRAPH = 'PARAGRAPH',\n TEXT = 'TEXT',\n HEADING = 'HEADING',\n BULLETED_LIST = 'BULLETED_LIST',\n ORDERED_LIST = 'ORDERED_LIST',\n LIST_ITEM = 'LIST_ITEM',\n BLOCKQUOTE = 'BLOCKQUOTE',\n CODE_BLOCK = 'CODE_BLOCK',\n VIDEO = 'VIDEO',\n DIVIDER = 'DIVIDER',\n FILE = 'FILE',\n GALLERY = 'GALLERY',\n GIF = 'GIF',\n HTML = 'HTML',\n IMAGE = 'IMAGE',\n LINK_PREVIEW = 'LINK_PREVIEW',\n /** @deprecated */\n MAP = 'MAP',\n POLL = 'POLL',\n APP_EMBED = 'APP_EMBED',\n BUTTON = 'BUTTON',\n COLLAPSIBLE_LIST = 'COLLAPSIBLE_LIST',\n TABLE = 'TABLE',\n EMBED = 'EMBED',\n COLLAPSIBLE_ITEM = 'COLLAPSIBLE_ITEM',\n COLLAPSIBLE_ITEM_TITLE = 'COLLAPSIBLE_ITEM_TITLE',\n COLLAPSIBLE_ITEM_BODY = 'COLLAPSIBLE_ITEM_BODY',\n TABLE_CELL = 'TABLE_CELL',\n TABLE_ROW = 'TABLE_ROW',\n EXTERNAL = 'EXTERNAL',\n AUDIO = 'AUDIO',\n CAPTION = 'CAPTION',\n LAYOUT = 'LAYOUT',\n LAYOUT_CELL = 'LAYOUT_CELL',\n}\n\n/** @enumType */\nexport type NodeTypeWithLiterals =\n | NodeType\n | 'PARAGRAPH'\n | 'TEXT'\n | 'HEADING'\n | 'BULLETED_LIST'\n | 'ORDERED_LIST'\n | 'LIST_ITEM'\n | 'BLOCKQUOTE'\n | 'CODE_BLOCK'\n | 'VIDEO'\n | 'DIVIDER'\n | 'FILE'\n | 'GALLERY'\n | 'GIF'\n | 'HTML'\n | 'IMAGE'\n | 'LINK_PREVIEW'\n | 'MAP'\n | 'POLL'\n | 'APP_EMBED'\n | 'BUTTON'\n | 'COLLAPSIBLE_LIST'\n | 'TABLE'\n | 'EMBED'\n | 'COLLAPSIBLE_ITEM'\n | 'COLLAPSIBLE_ITEM_TITLE'\n | 'COLLAPSIBLE_ITEM_BODY'\n | 'TABLE_CELL'\n | 'TABLE_ROW'\n | 'EXTERNAL'\n | 'AUDIO'\n | 'CAPTION'\n | 'LAYOUT'\n | 'LAYOUT_CELL';\n\nexport interface NodeStyle {\n /** The top padding value in pixels. */\n paddingTop?: string | null;\n /** The bottom padding value in pixels. */\n paddingBottom?: string | null;\n /** The background color as a hexadecimal value. */\n backgroundColor?: string | null;\n}\n\nexport interface ButtonData {\n /** Styling for the button's container. */\n containerData?: PluginContainerData;\n /** The button type. */\n type?: ButtonDataTypeWithLiterals;\n /** Styling for the button. */\n styles?: Styles;\n /** The text to display on the button. */\n text?: string | null;\n /** Button link details. */\n link?: Link;\n}\n\nexport interface Border {\n /**\n * Deprecated: Use `borderWidth` in `styles` instead.\n * @deprecated\n */\n width?: number | null;\n /**\n * Deprecated: Use `borderRadius` in `styles` instead.\n * @deprecated\n */\n radius?: number | null;\n}\n\nexport interface Colors {\n /**\n * Deprecated: Use `textColor` in `styles` instead.\n * @deprecated\n */\n text?: string | null;\n /**\n * Deprecated: Use `borderColor` in `styles` instead.\n * @deprecated\n */\n border?: string | null;\n /**\n * Deprecated: Use `backgroundColor` in `styles` instead.\n * @deprecated\n */\n background?: string | null;\n}\n\nexport interface PluginContainerData {\n /** The width of the node when it's displayed. */\n width?: PluginContainerDataWidth;\n /** The node's alignment within its container. */\n alignment?: PluginContainerDataAlignmentWithLiterals;\n /** Spoiler cover settings for the node. */\n spoiler?: Spoiler;\n /** The height of the node when it's displayed. */\n height?: Height;\n /** 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`. */\n textWrap?: boolean | null;\n}\n\nexport enum WidthType {\n /** Width matches the content width */\n CONTENT = 'CONTENT',\n /** Small Width */\n SMALL = 'SMALL',\n /** Width will match the original asset width */\n ORIGINAL = 'ORIGINAL',\n /** coast-to-coast display */\n FULL_WIDTH = 'FULL_WIDTH',\n}\n\n/** @enumType */\nexport type WidthTypeWithLiterals =\n | WidthType\n | 'CONTENT'\n | 'SMALL'\n | 'ORIGINAL'\n | 'FULL_WIDTH';\n\nexport interface PluginContainerDataWidth\n extends PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\n/** @oneof */\nexport interface PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\nexport enum PluginContainerDataAlignment {\n /** Center Alignment */\n CENTER = 'CENTER',\n /** Left Alignment */\n LEFT = 'LEFT',\n /** Right Alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type PluginContainerDataAlignmentWithLiterals =\n | PluginContainerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface Spoiler {\n /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */\n enabled?: boolean | null;\n /** The description displayed on top of the spoiler cover. */\n description?: string | null;\n /** The text for the button used to remove the spoiler cover. */\n buttonText?: string | null;\n}\n\nexport interface Height {\n /** A custom height value in pixels. */\n custom?: string | null;\n}\n\nexport enum ButtonDataType {\n /** Regular link button */\n LINK = 'LINK',\n /** Triggers custom action that is defined in plugin configuration by the consumer */\n ACTION = 'ACTION',\n}\n\n/** @enumType */\nexport type ButtonDataTypeWithLiterals = ButtonDataType | 'LINK' | 'ACTION';\n\nexport interface Styles {\n /**\n * Deprecated: Use `borderWidth` and `borderRadius` instead.\n * @deprecated\n */\n border?: Border;\n /**\n * Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead.\n * @deprecated\n */\n colors?: Colors;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /**\n * Deprecated: Use `borderWidth` for normal/hover states instead.\n * @deprecated\n */\n borderWidthHover?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface Link extends LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n /**\n * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:\n * `SELF` - Default. Opens the linked document in the same frame as the link.\n * `BLANK` - Opens the linked document in a new browser tab or window.\n * `PARENT` - Opens the linked document in the link's parent frame.\n * `TOP` - Opens the linked document in the full body of the link's browser tab or window.\n */\n target?: TargetWithLiterals;\n /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */\n rel?: Rel;\n /** A serialized object used for a custom or external link panel. */\n customData?: string | null;\n}\n\n/** @oneof */\nexport interface LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n}\n\nexport enum Target {\n /** Opens the linked document in the same frame as it was clicked (this is default) */\n SELF = 'SELF',\n /** Opens the linked document in a new window or tab */\n BLANK = 'BLANK',\n /** Opens the linked document in the parent frame */\n PARENT = 'PARENT',\n /** Opens the linked document in the full body of the window */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type TargetWithLiterals = Target | 'SELF' | 'BLANK' | 'PARENT' | 'TOP';\n\nexport interface Rel {\n /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */\n nofollow?: boolean | null;\n /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */\n sponsored?: boolean | null;\n /** 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`. */\n ugc?: boolean | null;\n /** Indicates that this link protect referral information from being passed to the target website. */\n noreferrer?: boolean | null;\n}\n\nexport interface CodeBlockData {\n /** Styling for the code block's text. */\n textStyle?: TextStyle;\n}\n\nexport interface TextStyle {\n /** Text alignment. Defaults to `AUTO`. */\n textAlignment?: TextAlignmentWithLiterals;\n /** 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. */\n lineHeight?: string | null;\n}\n\nexport enum TextAlignment {\n /** browser default, eqivalent to `initial` */\n AUTO = 'AUTO',\n /** Left align */\n LEFT = 'LEFT',\n /** Right align */\n RIGHT = 'RIGHT',\n /** Center align */\n CENTER = 'CENTER',\n /** 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 */\n JUSTIFY = 'JUSTIFY',\n}\n\n/** @enumType */\nexport type TextAlignmentWithLiterals =\n | TextAlignment\n | 'AUTO'\n | 'LEFT'\n | 'RIGHT'\n | 'CENTER'\n | 'JUSTIFY';\n\nexport interface DividerData {\n /** Styling for the divider's container. */\n containerData?: PluginContainerData;\n /** Divider line style. */\n lineStyle?: LineStyleWithLiterals;\n /** Divider width. */\n width?: WidthWithLiterals;\n /** Divider alignment. */\n alignment?: DividerDataAlignmentWithLiterals;\n}\n\nexport enum LineStyle {\n /** Single Line */\n SINGLE = 'SINGLE',\n /** Double Line */\n DOUBLE = 'DOUBLE',\n /** Dashed Line */\n DASHED = 'DASHED',\n /** Dotted Line */\n DOTTED = 'DOTTED',\n}\n\n/** @enumType */\nexport type LineStyleWithLiterals =\n | LineStyle\n | 'SINGLE'\n | 'DOUBLE'\n | 'DASHED'\n | 'DOTTED';\n\nexport enum Width {\n /** Large line */\n LARGE = 'LARGE',\n /** Medium line */\n MEDIUM = 'MEDIUM',\n /** Small line */\n SMALL = 'SMALL',\n}\n\n/** @enumType */\nexport type WidthWithLiterals = Width | 'LARGE' | 'MEDIUM' | 'SMALL';\n\nexport enum DividerDataAlignment {\n /** Center alignment */\n CENTER = 'CENTER',\n /** Left alignment */\n LEFT = 'LEFT',\n /** Right alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type DividerDataAlignmentWithLiterals =\n | DividerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface FileData {\n /** Styling for the file's container. */\n containerData?: PluginContainerData;\n /** The source for the file's data. */\n src?: FileSource;\n /** File name. */\n name?: string | null;\n /** File type. */\n type?: string | null;\n /**\n * Use `sizeInKb` instead.\n * @deprecated\n */\n size?: number | null;\n /** Settings for PDF files. */\n pdfSettings?: PDFSettings;\n /** File MIME type. */\n mimeType?: string | null;\n /** File path. */\n path?: string | null;\n /** File size in KB. */\n sizeInKb?: string | null;\n}\n\nexport enum ViewMode {\n /** No PDF view */\n NONE = 'NONE',\n /** Full PDF view */\n FULL = 'FULL',\n /** Mini PDF view */\n MINI = 'MINI',\n}\n\n/** @enumType */\nexport type ViewModeWithLiterals = ViewMode | 'NONE' | 'FULL' | 'MINI';\n\nexport interface FileSource extends FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n /** Indicates whether the file's source is private. Defaults to `false`. */\n private?: boolean | null;\n}\n\n/** @oneof */\nexport interface FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n}\n\nexport interface PDFSettings {\n /**\n * PDF view mode. One of the following:\n * `NONE` : The PDF isn't displayed.\n * `FULL` : A full page view of the PDF is displayed.\n * `MINI` : A mini view of the PDF is displayed.\n */\n viewMode?: ViewModeWithLiterals;\n /** Sets whether the PDF download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the PDF print button is disabled. Defaults to `false`. */\n disablePrint?: boolean | null;\n}\n\nexport interface GalleryData {\n /** Styling for the gallery's container. */\n containerData?: PluginContainerData;\n /** The items in the gallery. */\n items?: Item[];\n /** Options for defining the gallery's appearance. */\n options?: GalleryOptions;\n /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Sets whether the gallery's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n}\n\nexport interface V1Media {\n /** The source for the media's data. */\n src?: FileSource;\n /** Media width in pixels. */\n width?: number | null;\n /** Media height in pixels. */\n height?: number | null;\n /** Media duration in seconds. Only relevant for audio and video files. */\n duration?: number | null;\n}\n\nexport interface Image {\n /** Image file details. */\n media?: V1Media;\n /** Link details for images that are links. */\n link?: Link;\n}\n\nexport interface Video {\n /** Video file details. */\n media?: V1Media;\n /** Video thumbnail file details. */\n thumbnail?: V1Media;\n}\n\nexport interface Item extends ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n /** Item title. */\n title?: string | null;\n /** Item's alternative text. */\n altText?: string | null;\n}\n\n/** @oneof */\nexport interface ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n}\n\nexport interface GalleryOptions {\n /** Gallery layout. */\n layout?: GalleryOptionsLayout;\n /** Styling for gallery items. */\n item?: ItemStyle;\n /** Styling for gallery thumbnail images. */\n thumbnails?: Thumbnails;\n}\n\nexport enum LayoutType {\n /** Collage type */\n COLLAGE = 'COLLAGE',\n /** Masonry type */\n MASONRY = 'MASONRY',\n /** Grid type */\n GRID = 'GRID',\n /** Thumbnail type */\n THUMBNAIL = 'THUMBNAIL',\n /** Slider type */\n SLIDER = 'SLIDER',\n /** Slideshow type */\n SLIDESHOW = 'SLIDESHOW',\n /** Panorama type */\n PANORAMA = 'PANORAMA',\n /** Column type */\n COLUMN = 'COLUMN',\n /** Magic type */\n MAGIC = 'MAGIC',\n /** Fullsize images type */\n FULLSIZE = 'FULLSIZE',\n}\n\n/** @enumType */\nexport type LayoutTypeWithLiterals =\n | LayoutType\n | 'COLLAGE'\n | 'MASONRY'\n | 'GRID'\n | 'THUMBNAIL'\n | 'SLIDER'\n | 'SLIDESHOW'\n | 'PANORAMA'\n | 'COLUMN'\n | 'MAGIC'\n | 'FULLSIZE';\n\nexport enum Orientation {\n /** Rows Orientation */\n ROWS = 'ROWS',\n /** Columns Orientation */\n COLUMNS = 'COLUMNS',\n}\n\n/** @enumType */\nexport type OrientationWithLiterals = Orientation | 'ROWS' | 'COLUMNS';\n\nexport enum Crop {\n /** Crop to fill */\n FILL = 'FILL',\n /** Crop to fit */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type CropWithLiterals = Crop | 'FILL' | 'FIT';\n\nexport enum ThumbnailsAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Right alignment */\n RIGHT = 'RIGHT',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n /** Left alignment */\n LEFT = 'LEFT',\n /** No thumbnail */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type ThumbnailsAlignmentWithLiterals =\n | ThumbnailsAlignment\n | 'TOP'\n | 'RIGHT'\n | 'BOTTOM'\n | 'LEFT'\n | 'NONE';\n\nexport interface GalleryOptionsLayout {\n /** Gallery layout type. */\n type?: LayoutTypeWithLiterals;\n /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */\n horizontalScroll?: boolean | null;\n /** Gallery orientation. */\n orientation?: OrientationWithLiterals;\n /** The number of columns to display on full size screens. */\n numberOfColumns?: number | null;\n /** The number of columns to display on mobile screens. */\n mobileNumberOfColumns?: number | null;\n}\n\nexport interface ItemStyle {\n /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */\n targetSize?: number | null;\n /** Item ratio */\n ratio?: number | null;\n /** Sets how item images are cropped. */\n crop?: CropWithLiterals;\n /** The spacing between items in pixels. */\n spacing?: number | null;\n}\n\nexport interface Thumbnails {\n /** Thumbnail alignment. */\n placement?: ThumbnailsAlignmentWithLiterals;\n /** Spacing between thumbnails in pixels. */\n spacing?: number | null;\n}\n\nexport interface GIFData {\n /** Styling for the GIF's container. */\n containerData?: PluginContainerData;\n /** The source of the full size GIF. */\n original?: GIF;\n /** The source of the downsized GIF. */\n downsized?: GIF;\n /** Height in pixels. */\n height?: number;\n /** Width in pixels. */\n width?: number;\n /** Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. */\n gifType?: GIFTypeWithLiterals;\n}\n\nexport interface GIF {\n /**\n * GIF format URL.\n * @format WEB_URL\n */\n gif?: string | null;\n /**\n * MP4 format URL.\n * @format WEB_URL\n */\n mp4?: string | null;\n /**\n * Thumbnail URL.\n * @format WEB_URL\n */\n still?: string | null;\n}\n\nexport enum GIFType {\n NORMAL = 'NORMAL',\n STICKER = 'STICKER',\n}\n\n/** @enumType */\nexport type GIFTypeWithLiterals = GIFType | 'NORMAL' | 'STICKER';\n\nexport interface HeadingData {\n /** Heading level from 1-6. */\n level?: number;\n /** Styling for the heading text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n}\n\nexport interface HTMLData extends HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n /** Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. */\n containerData?: PluginContainerData;\n /** The type of HTML code. */\n source?: SourceWithLiterals;\n /** If container height is aligned with its content height. Defaults to `true`. */\n autoHeight?: boolean | null;\n}\n\n/** @oneof */\nexport interface HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n}\n\nexport enum Source {\n HTML = 'HTML',\n ADSENSE = 'ADSENSE',\n}\n\n/** @enumType */\nexport type SourceWithLiterals = Source | 'HTML' | 'ADSENSE';\n\nexport interface ImageData {\n /** Styling for the image's container. */\n containerData?: PluginContainerData;\n /** Image file details. */\n image?: V1Media;\n /** Link details for images that are links. */\n link?: Link;\n /** Sets whether the image expands to full screen when clicked. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Image's alternative text. */\n altText?: string | null;\n /**\n * Deprecated: use Caption node instead.\n * @deprecated\n */\n caption?: string | null;\n /** Sets whether the image's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the image is decorative and does not need an explanation. Defaults to `false`. */\n decorative?: boolean | null;\n /** Styling for the image. */\n styles?: ImageDataStyles;\n}\n\nexport interface StylesBorder {\n /** Border width in pixels. */\n width?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** Border radius in pixels. */\n radius?: number | null;\n}\n\nexport interface ImageDataStyles {\n /** Border attributes. */\n border?: StylesBorder;\n}\n\nexport interface LinkPreviewData {\n /** Styling for the link preview's container. */\n containerData?: PluginContainerData;\n /** Link details. */\n link?: Link;\n /** Preview title. */\n title?: string | null;\n /** Preview thumbnail URL. */\n thumbnailUrl?: string | null;\n /** Preview description. */\n description?: string | null;\n /** The preview content as HTML. */\n html?: string | null;\n /** Styling for the link preview. */\n styles?: LinkPreviewDataStyles;\n}\n\nexport enum StylesPosition {\n /** Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Thumbnail positioned at the top */\n TOP = 'TOP',\n /** Thumbnail hidden and not displayed */\n HIDDEN = 'HIDDEN',\n}\n\n/** @enumType */\nexport type StylesPositionWithLiterals =\n | StylesPosition\n | 'START'\n | 'END'\n | 'TOP'\n | 'HIDDEN';\n\nexport interface LinkPreviewDataStyles {\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Title color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Subtitle color as a hexadecimal value.\n * @format COLOR_HEX\n */\n subtitleColor?: string | null;\n /**\n * Link color as a hexadecimal value.\n * @format COLOR_HEX\n */\n linkColor?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Position of thumbnail. Defaults to `START`. */\n thumbnailPosition?: StylesPositionWithLiterals;\n}\n\nexport interface MapData {\n /** Styling for the map's container. */\n containerData?: PluginContainerData;\n /** Map settings. */\n mapSettings?: MapSettings;\n}\n\nexport interface MapSettings {\n /** The address to display on the map. */\n address?: string | null;\n /** Sets whether the map is draggable. */\n draggable?: boolean | null;\n /** Sets whether the location marker is visible. */\n marker?: boolean | null;\n /** Sets whether street view control is enabled. */\n streetViewControl?: boolean | null;\n /** Sets whether zoom control is enabled. */\n zoomControl?: boolean | null;\n /** Location latitude. */\n lat?: number | null;\n /** Location longitude. */\n lng?: number | null;\n /** Location name. */\n locationName?: string | null;\n /** Sets whether view mode control is enabled. */\n viewModeControl?: boolean | null;\n /** Initial zoom value. */\n initialZoom?: number | null;\n /** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */\n mapType?: MapTypeWithLiterals;\n}\n\nexport enum MapType {\n /** Roadmap map type */\n ROADMAP = 'ROADMAP',\n /** Satellite map type */\n SATELITE = 'SATELITE',\n /** Hybrid map type */\n HYBRID = 'HYBRID',\n /** Terrain map type */\n TERRAIN = 'TERRAIN',\n}\n\n/** @enumType */\nexport type MapTypeWithLiterals =\n | MapType\n | 'ROADMAP'\n | 'SATELITE'\n | 'HYBRID'\n | 'TERRAIN';\n\nexport interface ParagraphData {\n /** Styling for the paragraph text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n /** Paragraph level */\n level?: number | null;\n}\n\nexport interface PollData {\n /** Styling for the poll's container. */\n containerData?: PluginContainerData;\n /** Poll data. */\n poll?: Poll;\n /** Layout settings for the poll and voting options. */\n layout?: PollDataLayout;\n /** Styling for the poll and voting options. */\n design?: Design;\n}\n\nexport enum ViewRole {\n /** Only Poll creator can view the results */\n CREATOR = 'CREATOR',\n /** Anyone who voted can see the results */\n VOTERS = 'VOTERS',\n /** Anyone can see the results, even if one didn't vote */\n EVERYONE = 'EVERYONE',\n}\n\n/** @enumType */\nexport type ViewRoleWithLiterals = ViewRole | 'CREATOR' | 'VOTERS' | 'EVERYONE';\n\nexport enum VoteRole {\n /** Logged in member */\n SITE_MEMBERS = 'SITE_MEMBERS',\n /** Anyone */\n ALL = 'ALL',\n}\n\n/** @enumType */\nexport type VoteRoleWithLiterals = VoteRole | 'SITE_MEMBERS' | 'ALL';\n\nexport interface Permissions {\n /** Sets who can view the poll results. */\n view?: ViewRoleWithLiterals;\n /** Sets who can vote. */\n vote?: VoteRoleWithLiterals;\n /** Sets whether one voter can vote multiple times. Defaults to `false`. */\n allowMultipleVotes?: boolean | null;\n}\n\nexport interface Option {\n /** Option ID. */\n id?: string | null;\n /** Option title. */\n title?: string | null;\n /** The image displayed with the option. */\n image?: V1Media;\n}\n\nexport interface PollSettings {\n /** Permissions settings for voting. */\n permissions?: Permissions;\n /** Sets whether voters are displayed in the vote results. Defaults to `true`. */\n showVoters?: boolean | null;\n /** Sets whether the vote count is displayed. Defaults to `true`. */\n showVotesCount?: boolean | null;\n}\n\nexport enum PollLayoutType {\n /** List */\n LIST = 'LIST',\n /** Grid */\n GRID = 'GRID',\n}\n\n/** @enumType */\nexport type PollLayoutTypeWithLiterals = PollLayoutType | 'LIST' | 'GRID';\n\nexport enum PollLayoutDirection {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type PollLayoutDirectionWithLiterals =\n | PollLayoutDirection\n | 'LTR'\n | 'RTL';\n\nexport interface PollLayout {\n /** The layout for displaying the voting options. */\n type?: PollLayoutTypeWithLiterals;\n /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */\n direction?: PollLayoutDirectionWithLiterals;\n /** Sets whether to display the main poll image. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport interface OptionLayout {\n /** Sets whether to display option images. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport enum BackgroundType {\n /** Color background type */\n COLOR = 'COLOR',\n /** Image background type */\n IMAGE = 'IMAGE',\n /** Gradiant background type */\n GRADIENT = 'GRADIENT',\n}\n\n/** @enumType */\nexport type BackgroundTypeWithLiterals =\n | BackgroundType\n | 'COLOR'\n | 'IMAGE'\n | 'GRADIENT';\n\nexport interface Gradient {\n /** The gradient angle in degrees. */\n angle?: number | null;\n /**\n * The start color as a hexademical value.\n * @format COLOR_HEX\n */\n startColor?: string | null;\n /**\n * The end color as a hexademical value.\n * @format COLOR_HEX\n */\n lastColor?: string | null;\n}\n\nexport interface Background extends BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: V1Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n /** Background type. For each option, include the relevant details. */\n type?: BackgroundTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: V1Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n}\n\nexport interface PollDesign {\n /** Background styling. */\n background?: Background;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface OptionDesign {\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface Poll {\n /** Poll ID. */\n id?: string | null;\n /** Poll title. */\n title?: string | null;\n /** Poll creator ID. */\n creatorId?: string | null;\n /** Main poll image. */\n image?: V1Media;\n /** Voting options. */\n options?: Option[];\n /** The poll's permissions and display settings. */\n settings?: PollSettings;\n}\n\nexport interface PollDataLayout {\n /** Poll layout settings. */\n poll?: PollLayout;\n /** Voting otpions layout settings. */\n options?: OptionLayout;\n}\n\nexport interface Design {\n /** Styling for the poll. */\n poll?: PollDesign;\n /** Styling for voting options. */\n options?: OptionDesign;\n}\n\nexport interface TextData {\n /** The text to apply decorations to. */\n text?: string;\n /** The decorations to apply. */\n decorations?: Decoration[];\n}\n\n/** Adds appearence changes to text */\nexport interface Decoration extends DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n /** The type of decoration to apply. */\n type?: DecorationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n}\n\nexport enum DecorationType {\n BOLD = 'BOLD',\n ITALIC = 'ITALIC',\n UNDERLINE = 'UNDERLINE',\n SPOILER = 'SPOILER',\n ANCHOR = 'ANCHOR',\n MENTION = 'MENTION',\n LINK = 'LINK',\n COLOR = 'COLOR',\n FONT_SIZE = 'FONT_SIZE',\n EXTERNAL = 'EXTERNAL',\n STRIKETHROUGH = 'STRIKETHROUGH',\n SUPERSCRIPT = 'SUPERSCRIPT',\n SUBSCRIPT = 'SUBSCRIPT',\n}\n\n/** @enumType */\nexport type DecorationTypeWithLiterals =\n | DecorationType\n | 'BOLD'\n | 'ITALIC'\n | 'UNDERLINE'\n | 'SPOILER'\n | 'ANCHOR'\n | 'MENTION'\n | 'LINK'\n | 'COLOR'\n | 'FONT_SIZE'\n | 'EXTERNAL'\n | 'STRIKETHROUGH'\n | 'SUPERSCRIPT'\n | 'SUBSCRIPT';\n\nexport interface AnchorData {\n /** The target node's ID. */\n anchor?: string;\n}\n\nexport interface ColorData {\n /** The text's background color as a hexadecimal value. */\n background?: string | null;\n /** The text's foreground color as a hexadecimal value. */\n foreground?: string | null;\n}\n\nexport interface LinkData {\n /** Link details. */\n link?: Link;\n}\n\nexport interface MentionData {\n /** The mentioned user's name. */\n name?: string;\n /** The version of the user's name that appears after the `@` character in the mention. */\n slug?: string;\n /** Mentioned user's ID. */\n id?: string | null;\n}\n\nexport interface FontSizeData {\n /** The units used for the font size. */\n unit?: FontTypeWithLiterals;\n /** Font size value. */\n value?: number | null;\n}\n\nexport enum FontType {\n PX = 'PX',\n EM = 'EM',\n}\n\n/** @enumType */\nexport type FontTypeWithLiterals = FontType | 'PX' | 'EM';\n\nexport interface SpoilerData {\n /** Spoiler ID. */\n id?: string | null;\n}\n\nexport interface AppEmbedData extends AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n /** The type of Wix App content being embedded. */\n type?: AppTypeWithLiterals;\n /** The ID of the embedded content. */\n itemId?: string | null;\n /** The name of the embedded content. */\n name?: string | null;\n /**\n * Deprecated: Use `image` instead.\n * @deprecated\n */\n imageSrc?: string | null;\n /** The URL for the embedded content. */\n url?: string | null;\n /** An image for the embedded content. */\n image?: V1Media;\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Whether to hide the title. */\n hideTitle?: boolean | null;\n /** Whether to hide the price. */\n hidePrice?: boolean | null;\n /** Whether to hide the description (Event and Booking). */\n hideDescription?: boolean | null;\n /** Whether to hide the date and time (Event). */\n hideDateTime?: boolean | null;\n /** Whether to hide the location (Event). */\n hideLocation?: boolean | null;\n /** Whether to hide the duration (Booking). */\n hideDuration?: boolean | null;\n /** Whether to hide the button. */\n hideButton?: boolean | null;\n /** Whether to hide the ribbon. */\n hideRibbon?: boolean | null;\n /** Button styling options. */\n buttonStyles?: ButtonStyles;\n /** Image styling options. */\n imageStyles?: ImageStyles;\n /** Ribbon styling options. */\n ribbonStyles?: RibbonStyles;\n /** Card styling options. */\n cardStyles?: CardStyles;\n /** Styling for the app embed's container. */\n containerData?: PluginContainerData;\n /** Pricing data for embedded Wix App content. */\n pricingData?: PricingData;\n}\n\n/** @oneof */\nexport interface AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n}\n\nexport enum Position {\n /** Image positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Image positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Image positioned at the top */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type PositionWithLiterals = Position | 'START' | 'END' | 'TOP';\n\nexport enum AspectRatio {\n /** 1:1 aspect ratio */\n SQUARE = 'SQUARE',\n /** 16:9 aspect ratio */\n RECTANGLE = 'RECTANGLE',\n}\n\n/** @enumType */\nexport type AspectRatioWithLiterals = AspectRatio | 'SQUARE' | 'RECTANGLE';\n\nexport enum Resizing {\n /** Fill the container, may crop the image */\n FILL = 'FILL',\n /** Fit the image within the container */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type ResizingWithLiterals = Resizing | 'FILL' | 'FIT';\n\nexport enum Placement {\n /** Ribbon placed on the image */\n IMAGE = 'IMAGE',\n /** Ribbon placed on the product information */\n PRODUCT_INFO = 'PRODUCT_INFO',\n}\n\n/** @enumType */\nexport type PlacementWithLiterals = Placement | 'IMAGE' | 'PRODUCT_INFO';\n\nexport enum Type {\n /** Card with visible border and background */\n CONTAINED = 'CONTAINED',\n /** Card without visible border */\n FRAMELESS = 'FRAMELESS',\n}\n\n/** @enumType */\nexport type TypeWithLiterals = Type | 'CONTAINED' | 'FRAMELESS';\n\nexport enum Alignment {\n /** Content aligned to start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Content centered */\n CENTER = 'CENTER',\n /** Content aligned to end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n}\n\n/** @enumType */\nexport type AlignmentWithLiterals = Alignment | 'START' | 'CENTER' | 'END';\n\nexport enum Layout {\n /** Elements stacked vertically */\n STACKED = 'STACKED',\n /** Elements arranged horizontally */\n SIDE_BY_SIDE = 'SIDE_BY_SIDE',\n}\n\n/** @enumType */\nexport type LayoutWithLiterals = Layout | 'STACKED' | 'SIDE_BY_SIDE';\n\nexport enum AppType {\n PRODUCT = 'PRODUCT',\n EVENT = 'EVENT',\n BOOKING = 'BOOKING',\n}\n\n/** @enumType */\nexport type AppTypeWithLiterals = AppType | 'PRODUCT' | 'EVENT' | 'BOOKING';\n\nexport interface BookingData {\n /** Booking duration in minutes. */\n durations?: string | null;\n}\n\nexport interface EventData {\n /** Event schedule. */\n scheduling?: string | null;\n /** Event location. */\n location?: string | null;\n}\n\nexport interface ButtonStyles {\n /** Text to display on the button. */\n buttonText?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface ImageStyles {\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Position of image. Defaults to `START`. */\n imagePosition?: PositionWithLiterals;\n /** Aspect ratio for the image. Defaults to `SQUARE`. */\n aspectRatio?: AspectRatioWithLiterals;\n /** How the image should be resized. Defaults to `FILL`. */\n resizing?: ResizingWithLiterals;\n /**\n * Image border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Image border width in pixels. */\n borderWidth?: number | null;\n /** Image border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface RibbonStyles {\n /** Text to display on the ribbon. */\n ribbonText?: string | null;\n /**\n * Ribbon background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Ribbon text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Ribbon border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Ribbon border width in pixels. */\n borderWidth?: number | null;\n /** Ribbon border radius in pixels. */\n borderRadius?: number | null;\n /** Placement of the ribbon. Defaults to `IMAGE`. */\n ribbonPlacement?: PlacementWithLiterals;\n}\n\nexport interface CardStyles {\n /**\n * Card background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Card border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Card border width in pixels. */\n borderWidth?: number | null;\n /** Card border radius in pixels. */\n borderRadius?: number | null;\n /** Card type. Defaults to `CONTAINED`. */\n type?: TypeWithLiterals;\n /** Content alignment. Defaults to `START`. */\n alignment?: AlignmentWithLiterals;\n /** Layout for title and price. Defaults to `STACKED`. */\n titlePriceLayout?: LayoutWithLiterals;\n /**\n * Title text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n}\n\nexport interface PricingData {\n /**\n * Minimum numeric price value as string (e.g., \"10.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueFrom?: string | null;\n /**\n * Maximum numeric price value as string (e.g., \"19.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueTo?: string | null;\n /**\n * Numeric price value as string after discount application (e.g., \"15.99\").\n * @decimalValue options { maxScale:2 }\n */\n discountedValue?: string | null;\n /**\n * Currency of the value in ISO 4217 format (e.g., \"USD\", \"EUR\").\n * @format CURRENCY\n */\n currency?: string | null;\n /**\n * Pricing plan ID.\n * @format GUID\n */\n pricingPlanId?: string | null;\n}\n\nexport interface VideoData {\n /** Styling for the video's container. */\n containerData?: PluginContainerData;\n /** Video details. */\n video?: V1Media;\n /** Video thumbnail details. */\n thumbnail?: V1Media;\n /** Sets whether the video's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Video title. */\n title?: string | null;\n /** Video options. */\n options?: PlaybackOptions;\n}\n\nexport interface PlaybackOptions {\n /** Sets whether the media will automatically start playing. */\n autoPlay?: boolean | null;\n /** Sets whether media's will be looped. */\n playInLoop?: boolean | null;\n /** Sets whether media's controls will be shown. */\n showControls?: boolean | null;\n}\n\nexport interface EmbedData {\n /** Styling for the oEmbed node's container. */\n containerData?: PluginContainerData;\n /** An [oEmbed](https://www.oembed.com) object. */\n oembed?: Oembed;\n /** Origin asset source. */\n src?: string | null;\n}\n\nexport interface Oembed {\n /** The resource type. */\n type?: string | null;\n /** The width of the resource specified in the `url` property in pixels. */\n width?: number | null;\n /** The height of the resource specified in the `url` property in pixels. */\n height?: number | null;\n /** Resource title. */\n title?: string | null;\n /** The source URL for the resource. */\n url?: string | null;\n /** HTML for embedding a video player. The HTML should have no padding or margins. */\n html?: string | null;\n /** The name of the author or owner of the resource. */\n authorName?: string | null;\n /** The URL for the author or owner of the resource. */\n authorUrl?: string | null;\n /** The name of the resource provider. */\n providerName?: string | null;\n /** The URL for the resource provider. */\n providerUrl?: string | null;\n /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */\n thumbnailUrl?: string | null;\n /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */\n thumbnailWidth?: string | null;\n /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */\n thumbnailHeight?: string | null;\n /** The URL for an embedded viedo. */\n videoUrl?: string | null;\n /** The oEmbed version number. This value must be `1.0`. */\n version?: string | null;\n}\n\nexport interface CollapsibleListData {\n /** Styling for the collapsible list's container. */\n containerData?: PluginContainerData;\n /** If `true`, only one item can be expanded at a time. Defaults to `false`. */\n expandOnlyOne?: boolean | null;\n /** Sets which items are expanded when the page loads. */\n initialExpandedItems?: InitialExpandedItemsWithLiterals;\n /** The direction of the text in the list. Either left-to-right or right-to-left. */\n direction?: DirectionWithLiterals;\n /** If `true`, The collapsible item will appear in search results as an FAQ. */\n isQapageData?: boolean | null;\n}\n\nexport enum InitialExpandedItems {\n /** First item will be expended initally */\n FIRST = 'FIRST',\n /** All items will expended initally */\n ALL = 'ALL',\n /** All items collapsed initally */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type InitialExpandedItemsWithLiterals =\n | InitialExpandedItems\n | 'FIRST'\n | 'ALL'\n | 'NONE';\n\nexport enum Direction {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type DirectionWithLiterals = Direction | 'LTR' | 'RTL';\n\nexport interface TableData {\n /** Styling for the table's container. */\n containerData?: PluginContainerData;\n /** The table's dimensions. */\n dimensions?: Dimensions;\n /**\n * Deprecated: Use `rowHeader` and `columnHeader` instead.\n * @deprecated\n */\n header?: boolean | null;\n /** Sets whether the table's first row is a header. Defaults to `false`. */\n rowHeader?: boolean | null;\n /** Sets whether the table's first column is a header. Defaults to `false`. */\n columnHeader?: boolean | null;\n}\n\nexport interface Dimensions {\n /** An array representing relative width of each column in relation to the other columns. */\n colsWidthRatio?: number[];\n /** An array representing the height of each row in pixels. */\n rowsHeight?: number[];\n /** An array representing the minimum width of each column in pixels. */\n colsMinWidth?: number[];\n}\n\nexport interface TableCellData {\n /** Styling for the cell's background color and text alignment. */\n cellStyle?: CellStyle;\n /** The cell's border colors. */\n borderColors?: BorderColors;\n}\n\nexport enum VerticalAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Middle alignment */\n MIDDLE = 'MIDDLE',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n}\n\n/** @enumType */\nexport type VerticalAlignmentWithLiterals =\n | VerticalAlignment\n | 'TOP'\n | 'MIDDLE'\n | 'BOTTOM';\n\nexport interface CellStyle {\n /** Vertical alignment for the cell's text. */\n verticalAlignment?: VerticalAlignmentWithLiterals;\n /**\n * Cell background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n}\n\nexport interface BorderColors {\n /**\n * Left border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n left?: string | null;\n /**\n * Right border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n right?: string | null;\n /**\n * Top border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n top?: string | null;\n /**\n * Bottom border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n bottom?: string | null;\n}\n\n/**\n * `NullValue` is a singleton enumeration to represent the null value for the\n * `Value` type union.\n *\n * The JSON representation for `NullValue` is JSON `null`.\n */\nexport enum NullValue {\n /** Null value. */\n NULL_VALUE = 'NULL_VALUE',\n}\n\n/** @enumType */\nexport type NullValueWithLiterals = NullValue | 'NULL_VALUE';\n\n/**\n * `ListValue` is a wrapper around a repeated field of values.\n *\n * The JSON representation for `ListValue` is JSON array.\n */\nexport interface ListValue {\n /** Repeated field of dynamically typed values. */\n values?: any[];\n}\n\nexport interface AudioData {\n /** Styling for the audio node's container. */\n containerData?: PluginContainerData;\n /** Audio file details. */\n audio?: V1Media;\n /** Sets whether the audio node's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Cover image. */\n coverImage?: V1Media;\n /** Track name. */\n name?: string | null;\n /** Author name. */\n authorName?: string | null;\n /** An HTML version of the audio node. */\n html?: string | null;\n}\n\nexport interface OrderedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n /** List start number. */\n start?: number | null;\n}\n\nexport interface BulletedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n}\n\nexport interface BlockquoteData {\n /** Indentation level from 1-4. */\n indentation?: number;\n}\n\nexport interface CaptionData {\n textStyle?: TextStyle;\n}\n\nexport interface LayoutCellData {\n /** Size of the cell in 12 columns grid. */\n colSpan?: number | null;\n}\n\nexport interface Metadata {\n /** Schema version. */\n version?: number;\n /**\n * When the object was created.\n * @readonly\n * @deprecated\n */\n createdTimestamp?: Date | null;\n /**\n * When the object was most recently updated.\n * @deprecated\n */\n updatedTimestamp?: Date | null;\n /** Object ID. */\n _id?: string | null;\n}\n\nexport interface DocumentStyle {\n /** Styling for H1 nodes. */\n headerOne?: TextNodeStyle;\n /** Styling for H2 nodes. */\n headerTwo?: TextNodeStyle;\n /** Styling for H3 nodes. */\n headerThree?: TextNodeStyle;\n /** Styling for H4 nodes. */\n headerFour?: TextNodeStyle;\n /** Styling for H5 nodes. */\n headerFive?: TextNodeStyle;\n /** Styling for H6 nodes. */\n headerSix?: TextNodeStyle;\n /** Styling for paragraph nodes. */\n paragraph?: TextNodeStyle;\n /** Styling for block quote nodes. */\n blockquote?: TextNodeStyle;\n /** Styling for code block nodes. */\n codeBlock?: TextNodeStyle;\n}\n\nexport interface TextNodeStyle {\n /** The decorations to apply to the node. */\n decorations?: Decoration[];\n /** Padding and background color for the node. */\n nodeStyle?: NodeStyle;\n /** Line height for text in the node. */\n lineHeight?: string | null;\n}\n\nexport interface Media {\n /**\n * Main media (image, video, etc.) associated with this product.\n * @readonly\n */\n main?: ProductMedia;\n /**\n * All media items.\n * > **Note:** Returned only when you pass `\"MEDIA_ITEMS_INFO\"` to the `fields` array in Products API requests.\n */\n itemsInfo?: MediaItemsInfo;\n}\n\nexport interface ProductMedia\n extends ProductMediaSetByOneOf,\n ProductMediaMediaOneOf {\n /**\n * Set media by ID of an existing file in Wix Media Manager.\n * @minLength 1\n * @maxLength 200\n */\n _id?: string;\n /**\n * Set media using an external media URL.\n * @format WEB_URL\n */\n url?: string;\n /**\n * Product image.\n * @readonly\n */\n image?: string;\n /**\n * Product video.\n * @readonly\n */\n video?: string;\n /**\n * Image alt text.\n * @minLength 1\n * @maxLength 1000\n */\n altText?: string | null;\n /**\n * Media display name.\n * Allows to override the default media name. Can be passed only when `setBy: url`.\n * @maxLength 80\n */\n displayName?: string | null;\n /**\n * Media type.\n * @readonly\n */\n mediaType?: MediaTypeWithLiterals;\n /**\n * Media thumbnail.\n * > **Note:** Returned only when you pass `\"THUMBNAIL\"` to the `fields` array in Products API requests.\n */\n thumbnail?: Thumbnail;\n /**\n * ID used to upload media to Wix Media Manager.\n * @readonly\n * @format GUID\n */\n uploadId?: string;\n}\n\n/** @oneof */\nexport interface ProductMediaSetByOneOf {\n /**\n * Set media by ID of an existing file in Wix Media Manager.\n * @minLength 1\n * @maxLength 200\n */\n _id?: string;\n /**\n * Set media using an external media URL.\n * @format WEB_URL\n */\n url?: string;\n}\n\n/** @oneof */\nexport interface ProductMediaMediaOneOf {\n /**\n * Product image.\n * @readonly\n */\n image?: string;\n /**\n * Product video.\n * @readonly\n */\n video?: string;\n}\n\nexport interface VideoResolution {\n /**\n * Video URL.\n * @format WEB_URL\n */\n url?: string;\n /** Video height. */\n height?: number;\n /** Video width. */\n width?: number;\n /**\n * Video format for example, mp4, hls.\n * @maxLength 200\n */\n format?: string;\n}\n\nexport enum MediaType {\n UNKNOWN_MEDIA_TYPE = 'UNKNOWN_MEDIA_TYPE',\n /** Image media type. */\n IMAGE = 'IMAGE',\n /** Video media type. */\n VIDEO = 'VIDEO',\n}\n\n/** @enumType */\nexport type MediaTypeWithLiterals =\n | MediaType\n | 'UNKNOWN_MEDIA_TYPE'\n | 'IMAGE'\n | 'VIDEO';\n\nexport interface Thumbnail {\n /**\n * Thumbnail url.\n * @format WEB_URL\n */\n url?: string;\n /** Thumbnail height. */\n height?: number;\n /** Thumbnail width. */\n width?: number;\n /**\n * Thumbnail alt text.\n * @minLength 1\n * @maxLength 1000\n */\n altText?: string | null;\n}\n\nexport interface MediaItemsInfo {\n /**\n * All media items (images, videos etc) associated with this product.\n * @maxSize 15\n */\n items?: ProductMedia[];\n}\n\n/**\n * 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.\n * The search engines use this information for ranking purposes, or to display snippets in the search results.\n * This data will override other sources of tags (for example patterns) and will be included in the <head> section of the HTML document, while not being displayed on the page itself.\n */\nexport interface SeoSchema {\n /** SEO tag information. */\n tags?: Tag[];\n /** SEO general settings. */\n settings?: Settings;\n}\n\nexport interface Keyword {\n /** Keyword value. */\n term?: string;\n /** Whether the keyword is the main focus keyword. */\n isMain?: boolean;\n /**\n * The source that added the keyword terms to the SEO settings.\n * @maxLength 1000\n */\n origin?: string | null;\n}\n\nexport interface Tag {\n /**\n * SEO tag type.\n *\n *\n * Supported values: `title`, `meta`, `script`, `link`.\n */\n type?: string;\n /**\n * A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\n * For example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.\n */\n props?: Record<string, any> | null;\n /** SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`. */\n meta?: Record<string, any> | null;\n /** SEO tag inner content. For example, `<title> inner content </title>`. */\n children?: string;\n /** Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages). */\n custom?: boolean;\n /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */\n disabled?: boolean;\n}\n\nexport interface Settings {\n /**\n * 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.\n *\n *\n * Default: `false` (automatical redirect is enabled).\n */\n preventAutoRedirect?: boolean;\n /**\n * User-selected keyword terms for a specific page.\n * @maxSize 5\n */\n keywords?: Keyword[];\n}\n\nexport interface ConnectedOption extends ConnectedOptionOptionSettingsOneOf {\n /** Choices settings. */\n choicesSettings?: ChoicesSettings;\n /**\n * ID of a customization with `customizationType: PRODUCT_OPTION`.\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /**\n * Option name.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /** Option render type. */\n optionRenderType?: ProductOptionRenderTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface ConnectedOptionOptionSettingsOneOf {\n /** Choices settings. */\n choicesSettings?: ChoicesSettings;\n}\n\nexport enum ProductOptionRenderType {\n /** Not implemented. */\n UNKNOWN_OPTION_RENDER_TYPE = 'UNKNOWN_OPTION_RENDER_TYPE',\n /** Text choices. */\n TEXT_CHOICES = 'TEXT_CHOICES',\n /** Swatch choices. */\n SWATCH_CHOICES = 'SWATCH_CHOICES',\n}\n\n/** @enumType */\nexport type ProductOptionRenderTypeWithLiterals =\n | ProductOptionRenderType\n | 'UNKNOWN_OPTION_RENDER_TYPE'\n | 'TEXT_CHOICES'\n | 'SWATCH_CHOICES';\n\nexport interface ChoicesSettings {\n /**\n * List of available choices for the option.\n * @minSize 1\n * @maxSize 100\n * @immutable\n */\n choices?: ConnectedOptionChoice[];\n}\n\nexport interface ConnectedOptionChoice extends ConnectedOptionChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n /**\n * The id of the choice.\n * @format GUID\n */\n choiceId?: string | null;\n /**\n * Product media overrides. When not empty only these images will be shown when such choices selected by customer. Otherwise all images of product.\n * When several choices from different options selected only media filter present in `media_overrides` of ALL choices will be shown.\n * For example if Color:red has images 1,2,3 and Material:Silk has images 2,3,5 then only images 2,3 will be shown when both of them selected.\n * @maxSize 100\n */\n linkedMedia?: ProductMedia[];\n /** The type of this choice. */\n choiceType?: ChoiceTypeWithLiterals;\n /**\n * Choice name.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /**\n * A flag that indicates if at least one variant with this choice is in stock in the default store's location.\n * For example, a product with 'Color' and 'Size' options with variants: [Blue, Small] which is out of stock and [Red Large] which is in stock. For choice 'Blue' ths flag will be 'false' and for 'Red' the flag will be true\n * @readonly\n */\n inStock?: boolean;\n /**\n * Whether at least one variant with this choice is visible.\n *\n * Default: `false`\n * @readonly\n */\n visible?: boolean;\n}\n\n/** @oneof */\nexport interface ConnectedOptionChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n}\n\nexport enum ChoiceType {\n UNKNOWN_CHOICE_TYPE = 'UNKNOWN_CHOICE_TYPE',\n /** Text choice. */\n CHOICE_TEXT = 'CHOICE_TEXT',\n /** Single color choice. */\n ONE_COLOR = 'ONE_COLOR',\n /** Multiple colors choice. */\n MULTIPLE_COLORS = 'MULTIPLE_COLORS',\n /** Image choice. */\n IMAGE = 'IMAGE',\n}\n\n/** @enumType */\nexport type ChoiceTypeWithLiterals =\n | ChoiceType\n | 'UNKNOWN_CHOICE_TYPE'\n | 'CHOICE_TEXT'\n | 'ONE_COLOR'\n | 'MULTIPLE_COLORS'\n | 'IMAGE';\n\nexport interface MultipleColors {\n /**\n * List of color codes.\n * @minLength 3\n * @maxLength 20\n * @minSize 2\n * @maxSize 2\n */\n colorCodes?: string[];\n}\n\nexport interface ConnectedModifier\n extends ConnectedModifierModifierSettingsOneOf {\n /** Free text modifier settings. */\n freeTextSettings?: FreeTextSettings;\n /** Choice settings. */\n choicesSettings?: ModifierChoicesSettings;\n /**\n * ID of a customization with `customizationType: MODIFIER`.\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /**\n * Modifier title.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /** Modifier render type. */\n modifierRenderType?: ModifierRenderTypeWithLiterals;\n /** Whether customer input is required for this modifier. */\n mandatory?: boolean;\n}\n\n/** @oneof */\nexport interface ConnectedModifierModifierSettingsOneOf {\n /** Free text modifier settings. */\n freeTextSettings?: FreeTextSettings;\n /** Choice settings. */\n choicesSettings?: ModifierChoicesSettings;\n}\n\nexport enum ModifierRenderType {\n /** Not implemented. */\n UNKNOWN_MODIFIER_RENDER_TYPE = 'UNKNOWN_MODIFIER_RENDER_TYPE',\n /** Free text. */\n FREE_TEXT = 'FREE_TEXT',\n /** Text choices. */\n TEXT_CHOICES = 'TEXT_CHOICES',\n /** Swatch choices. */\n SWATCH_CHOICES = 'SWATCH_CHOICES',\n}\n\n/** @enumType */\nexport type ModifierRenderTypeWithLiterals =\n | ModifierRenderType\n | 'UNKNOWN_MODIFIER_RENDER_TYPE'\n | 'FREE_TEXT'\n | 'TEXT_CHOICES'\n | 'SWATCH_CHOICES';\n\nexport interface FreeTextSettings {\n /** Minimum number of characters. */\n minCharCount?: number;\n /**\n * Maximum number of characters.\n * @max 500\n */\n maxCharCount?: number;\n /**\n * Default amount to be added to the product's price.\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n defaultAddedPrice?: string | null;\n /**\n * Title of the text to be input by the customer.\n * @minLength 1\n * @maxLength 150\n */\n title?: string;\n}\n\nexport interface ModifierChoicesSettings {\n /**\n * List of modifier choices.\n * @minSize 1\n * @maxSize 100\n * @immutable\n */\n choices?: ConnectedModifierChoice[];\n}\n\nexport interface ConnectedModifierChoice\n extends ConnectedModifierChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n /**\n * Choice ID.\n * @format GUID\n */\n choiceId?: string | null;\n /**\n * Product media.\n * @maxSize 100\n */\n linkedMedia?: ProductMedia[];\n /** Choice type. */\n choiceType?: ChoiceTypeWithLiterals;\n /**\n * Modifier key. Used for eCommerce integration.\n * @readonly\n * @minLength 1\n * @maxLength 50\n */\n key?: string;\n /**\n * Choice name.\n * @minLength 1\n * @maxLength 50\n */\n name?: string | null;\n /**\n * Added price.\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n addedPrice?: string | null;\n}\n\n/** @oneof */\nexport interface ConnectedModifierChoiceValueOneOf {\n /**\n * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).\n * @minLength 3\n * @maxLength 20\n */\n colorCode?: string;\n}\n\nexport interface Brand {\n /**\n * Brand ID.\n * @format GUID\n */\n _id?: string | null;\n /**\n * Brand name.\n * @maxLength 50\n */\n name?: string | null;\n}\n\nexport interface InfoSection {\n /**\n * Info section ID.\n * @format GUID\n */\n _id?: string | null;\n /**\n * Info section unique name.\n * > **Note:** Returned only when you pass `\"INFO_SECTION\"` to the `fields` array in Products API requests.\n * @maxLength 100\n */\n uniqueName?: string | null;\n /**\n * Info section title.\n * > **Note:** Returned only when you pass `\"INFO_SECTION\"` to the `fields` array in Products API requests.\n * @minLength 1\n * @maxLength 50\n * @readonly\n */\n title?: string | null;\n /**\n * Info section description using rich content.\n * > **Note:** Returned only when you pass `\"INFO_SECTION_DESCRIPTION\"` to the `fields` array in Products API requests.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" plugins=\"indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor\" exampleid=\"7dc9240e-d548-417a-abcf-0291b68b4303\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n * @readonly\n */\n description?: RichContent;\n /**\n * Info section description in HTML.\n *\n * When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"INFO_SECTION_PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n}\n\nexport interface Ribbon {\n /**\n * Ribbon ID.\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /**\n * Ribbon name.\n * @maxLength 30\n */\n name?: string | null;\n}\n\nexport interface ProductCategoriesInfo {\n /**\n * A list of categories related to product.\n * @readonly\n * @maxSize 2000\n */\n categories?: ProductCategory[];\n}\n\nexport interface ProductCategory {\n /**\n * Category ID.\n * @format GUID\n */\n _id?: string;\n /**\n * Index location of the product within the category, which can be utilized for sorting products in a specific category. For detailed instructions on how to set this up, refer to the [Add and arrange products in category](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/sample-use-cases-and-flows#add-and-arrange-products-in-category) sample flow.\n * @max 200\n */\n index?: number | null;\n}\n\nexport interface ProductCategoryIdsInfo {\n /**\n * A list of category ids related to product.\n * @readonly\n * @maxSize 2000\n * @format GUID\n */\n categoryIds?: string[];\n}\n\nexport interface PriceRange {\n /** Minimum value. */\n minValue?: FixedMonetaryAmount;\n /** Maximum value. */\n maxValue?: FixedMonetaryAmount;\n}\n\nexport interface FixedMonetaryAmount {\n /**\n * Monetary amount. For example, `\"3.99\"`, or `\"-4.99\"` for a negative amount.\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n amount?: string;\n /**\n * Formatted monetary amount. For example, `\"$3.99\"`.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @readonly\n * @maxLength 20\n */\n formattedAmount?: string | null;\n}\n\nexport interface Inventory {\n /**\n * Current availability status.\n * @readonly\n */\n availabilityStatus?: InventoryAvailabilityStatusWithLiterals;\n /**\n * Current preorder status.\n * @readonly\n */\n preorderStatus?: PreorderStatusWithLiterals;\n /**\n * Preorder availability status.\n * @readonly\n */\n preorderAvailability?: ProductPreorderAvailabilityWithLiterals;\n}\n\nexport enum InventoryAvailabilityStatus {\n UNKNOWN_AVAILABILITY_STATUS = 'UNKNOWN_AVAILABILITY_STATUS',\n /** All variants are in stock and available for purchase. */\n IN_STOCK = 'IN_STOCK',\n /** All variants are out of stock. */\n OUT_OF_STOCK = 'OUT_OF_STOCK',\n /** Some variants are out of stock and some are in stock and available for purchase. */\n PARTIALLY_OUT_OF_STOCK = 'PARTIALLY_OUT_OF_STOCK',\n}\n\n/** @enumType */\nexport type InventoryAvailabilityStatusWithLiterals =\n | InventoryAvailabilityStatus\n | 'UNKNOWN_AVAILABILITY_STATUS'\n | 'IN_STOCK'\n | 'OUT_OF_STOCK'\n | 'PARTIALLY_OUT_OF_STOCK';\n\nexport enum PreorderStatus {\n UNKNOWN_PREORDER_STATUS = 'UNKNOWN_PREORDER_STATUS',\n /** All variants are enabled for preorder. */\n ENABLED = 'ENABLED',\n /** All variants are disabled for preorder. */\n DISABLED = 'DISABLED',\n /** Some variants are disabled and some are enabled for preorder. */\n PARTIALLY_ENABLED = 'PARTIALLY_ENABLED',\n}\n\n/** @enumType */\nexport type PreorderStatusWithLiterals =\n | PreorderStatus\n | 'UNKNOWN_PREORDER_STATUS'\n | 'ENABLED'\n | 'DISABLED'\n | 'PARTIALLY_ENABLED';\n\nexport enum ProductPreorderAvailability {\n UNKNOWN_PREORDER_AVAILABILITY_STATUS = 'UNKNOWN_PREORDER_AVAILABILITY_STATUS',\n /** All the product variants are available for preorder. */\n ALL_VARIANTS = 'ALL_VARIANTS',\n /** None of the product variants are available for preorder. */\n NO_VARIANTS = 'NO_VARIANTS',\n /** Some of the product variants are available for preorder. */\n SOME_VARIANTS = 'SOME_VARIANTS',\n}\n\n/** @enumType */\nexport type ProductPreorderAvailabilityWithLiterals =\n | ProductPreorderAvailability\n | 'UNKNOWN_PREORDER_AVAILABILITY_STATUS'\n | 'ALL_VARIANTS'\n | 'NO_VARIANTS'\n | 'SOME_VARIANTS';\n\nexport enum ProductType {\n /** Not implemented. */\n UNKNOWN_PRODUCT_TYPE = 'UNKNOWN_PRODUCT_TYPE',\n /** Physical product. */\n PHYSICAL = 'PHYSICAL',\n /** Digital product. */\n DIGITAL = 'DIGITAL',\n}\n\n/** @enumType */\nexport type ProductTypeWithLiterals =\n | ProductType\n | 'UNKNOWN_PRODUCT_TYPE'\n | 'PHYSICAL'\n | 'DIGITAL';\n\nexport interface PhysicalProperties {\n /**\n * Price per unit settings.\n * > **Note:** Use this field only when relevant. For example, for products that are sold by weight, volume, or length.\n */\n pricePerUnit?: PricePerUnitSettings;\n /**\n * Fulfiller ID.\n * @format GUID\n */\n fulfillerId?: string | null;\n /**\n * Product shipping weight range - Calculated from the lightest and heaviest variant shipping weights.\n * @readonly\n */\n shippingWeightRange?: WeightRange;\n /**\n * Product price per unit range. The minimum and maximum price per unit of all the variants.\n * @readonly\n */\n pricePerUnitRange?: PricePerUnitRange;\n /**\n * Weight measurement unit.\n * > **Note:** Returned only when you pass `\"WEIGHT_MEASUREMENT_UNIT_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n weightMeasurementUnitInfo?: WeightMeasurementUnitInfo;\n /**\n * Delivery profile ID.\n * @format GUID\n */\n deliveryProfileId?: string | null;\n}\n\nexport interface PricePerUnitSettings {\n /**\n * Quantity.\n * For example, to define price per per 100 grams, set this field to `100`.\n * @min 0.01\n * @max 999999999.99\n */\n quantity?: number;\n /**\n * Measurement unit.\n * For example, to define price per 100 grams, set this field to \"G\".\n */\n measurementUnit?: MeasurementUnitWithLiterals;\n}\n\nexport enum MeasurementUnit {\n UNSPECIFIED = 'UNSPECIFIED',\n ML = 'ML',\n CL = 'CL',\n L = 'L',\n CBM = 'CBM',\n MG = 'MG',\n G = 'G',\n KG = 'KG',\n MM = 'MM',\n CM = 'CM',\n M = 'M',\n SQM = 'SQM',\n OZ = 'OZ',\n LB = 'LB',\n FLOZ = 'FLOZ',\n PT = 'PT',\n QT = 'QT',\n GAL = 'GAL',\n IN = 'IN',\n FT = 'FT',\n YD = 'YD',\n SQFT = 'SQFT',\n}\n\n/** @enumType */\nexport type MeasurementUnitWithLiterals =\n | MeasurementUnit\n | 'UNSPECIFIED'\n | 'ML'\n | 'CL'\n | 'L'\n | 'CBM'\n | 'MG'\n | 'G'\n | 'KG'\n | 'MM'\n | 'CM'\n | 'M'\n | 'SQM'\n | 'OZ'\n | 'LB'\n | 'FLOZ'\n | 'PT'\n | 'QT'\n | 'GAL'\n | 'IN'\n | 'FT'\n | 'YD'\n | 'SQFT';\n\nexport interface WeightRange {\n /**\n * Minimum weight across all variants associated with this product.\n * @max 999999999.99\n */\n minValue?: number;\n /**\n * Maximum weight across all variants associated with this product.\n * @max 999999999.99\n */\n maxValue?: number;\n}\n\nexport interface PricePerUnitRange {\n /** Minimum price per unit across all variants. */\n minValue?: PricePerUnitRangePricePerUnit;\n /** Maximum price per unit across all variants. */\n maxValue?: PricePerUnitRangePricePerUnit;\n}\n\nexport interface PricePerUnitRangePricePerUnit {\n /**\n * Calculated value of price per unit. Takes into account pricePerUnit settings of product and variants and price of variants.\n * 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$).\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n value?: string;\n /**\n * Price per unit info in the format of variant specific data / product setting, for example €4.00 / 1 Kg.\n * > **Note:** This field is returned by the API only when you pass `fields: \"CURRENCY\"` in a request.\n * @readonly\n * @maxLength 100\n */\n description?: string | null;\n}\n\nexport interface WeightMeasurementUnitInfo {\n /**\n * Weight measurement unit.\n * @readonly\n */\n weightMeasurementUnit?: WeightUnitWithLiterals;\n}\n\nexport enum WeightUnit {\n /** Weight unit can't be classified due to an error. */\n UNSPECIFIED_WEIGHT_UNIT = 'UNSPECIFIED_WEIGHT_UNIT',\n /** Kilograms. */\n KG = 'KG',\n /** Pounds. */\n LB = 'LB',\n}\n\n/** @enumType */\nexport type WeightUnitWithLiterals =\n | WeightUnit\n | 'UNSPECIFIED_WEIGHT_UNIT'\n | 'KG'\n | 'LB';\n\nexport interface BreadcrumbsInfo {\n /**\n * Breadcrumbs.\n * @readonly\n * @maxSize 5\n */\n breadcrumbs?: BreadCrumb[];\n}\n\nexport interface BreadCrumb {\n /**\n * Category ID.\n * @format GUID\n */\n categoryId?: string;\n /**\n * Category name.\n * @minLength 1\n * @maxLength 80\n */\n categoryName?: string;\n /**\n * Category slug.\n * @minLength 1\n * @maxLength 100\n */\n categorySlug?: string;\n}\n\nexport interface VariantsInfo {\n /**\n * List of related variants.\n * @minSize 1\n * @maxSize 1000\n */\n variants?: Variant[];\n}\n\nexport interface Variant extends VariantTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n /**\n * Variant ID.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Whether the variant is visible to site visitors.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Variant SKU (stock keeping unit).\n * @minLength 1\n * @maxLength 40\n */\n sku?: string | null;\n /**\n * Variant barcode.\n * @minLength 1\n * @maxLength 40\n */\n barcode?: string | null;\n /**\n * List of choices that define the product's variant, which requires exactly one choice per product option.\n * Must use `optionChoiceNames` in all requests this field is required.\n * Empty only for default variants of unmanaged products.\n * @maxSize 6\n * @immutable\n */\n choices?: OptionChoice[];\n /** Variant price. */\n price?: PriceInfo;\n /**\n * Variant revenue details.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n revenueDetails?: RevenueDetails;\n /**\n * Variant media.\n * @readonly\n */\n media?: ProductMedia;\n /**\n * Subscription prices calculated by applying subscription discount to the variant `price.actual_price`.\n * > **Note:** Returned only when you pass `\"SUBSCRIPTION_PRICES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n subscriptionPricesInfo?: SubscriptionPricesInfo;\n /**\n * Variant inventory status.\n * @readonly\n */\n inventoryStatus?: InventoryStatus;\n}\n\n/** @oneof */\nexport interface VariantTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n}\n\nexport interface OptionChoice {\n /** Option and choice IDs. These match the IDs of the option and choice from the product's options field. */\n optionChoiceIds?: OptionChoiceIds;\n /**\n * Option and choice names.\n * This needs to be used in all requests `OptionChoice` is needed, and all `OptionChoiceNames` fields are required.\n * > **Note:** Returned only when you pass `\"VARIANT_OPTION_CHOICE_NAMES\"` to the `fields` array in Products API requests.\n */\n optionChoiceNames?: OptionChoiceNames;\n}\n\nexport interface OptionChoiceIds {\n /**\n * Option ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n */\n optionId?: string;\n /**\n * Choice ID.\n * @format GUID\n * @immutable\n */\n choiceId?: string;\n}\n\nexport interface OptionChoiceNames {\n /**\n * Option name.\n * @minLength 1\n */\n optionName?: string;\n /**\n * Choice name.\n * @minLength 1\n */\n choiceName?: string;\n /** Render type. */\n renderType?: ProductOptionRenderTypeWithLiterals;\n}\n\nexport interface PriceInfo {\n /** Variant price. Must be greater or equal to 0. */\n actualPrice?: FixedMonetaryAmount;\n /** 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. */\n compareAtPrice?: FixedMonetaryAmount;\n}\n\nexport interface RevenueDetails {\n /** Item cost. */\n cost?: FixedMonetaryAmount;\n /**\n * Profit. Calculated by reducing `cost` from `discountedPrice`.\n * @readonly\n */\n profit?: FixedMonetaryAmount;\n /**\n * Profit Margin. Calculated by dividing `profit` by `discountedPrice`.\n * The result is rounded to 4 decimal places.\n * @readonly\n * @max 1\n */\n profitMargin?: number;\n}\n\nexport interface VariantPhysicalProperties {\n /**\n * Variant shipping weight.\n * product.physicalProperties.shipping_weight_range values are taken from here.\n * @max 999999999.99\n */\n weight?: number | null;\n /**\n * Price per unit info, in order to show price per unit on the product page.\n * For example if one sells cheese and defines 100g here then we know that buying this variant buyer receives 100g of cheese.\n * But on product page price will be displayed for units defined on product level. See `pricePerUnit.value` to understand how it's calculated.\n */\n pricePerUnit?: PricePerUnit;\n}\n\nexport interface PricePerUnit {\n /**\n * Price per unit data for this variant.\n * `measurementUnit` value must correspond to the measurement unit set on the product.\n */\n settings?: PricePerUnitSettings;\n /**\n * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, of this variant, and discounted price of variant.\n * 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$).\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n value?: string;\n /**\n * Price per unit description.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @readonly\n * @maxLength 100\n */\n description?: string | null;\n}\n\nexport interface VariantDigitalProperties {\n /** Digital file which will be downloaded by customer after successful purchase. */\n digitalFile?: SecuredMedia;\n}\n\nexport interface SecuredMedia {\n /**\n * Media ID in media manager.\n * @minLength 1\n * @maxLength 100\n */\n _id?: string;\n /**\n * Original file name.\n * @minLength 1\n * @maxLength 1000\n * @readonly\n */\n fileName?: string;\n /**\n * Original file size.\n * @minLength 1\n * @maxLength 1000\n * @readonly\n * @format DECIMAL_VALUE\n * @decimalValue options { maxScale:0 }\n */\n fileSize?: string | null;\n /**\n * File type.\n * @readonly\n */\n fileType?: FileTypeWithLiterals;\n}\n\nexport enum FileType {\n /** Unspecified file type. */\n UNSPECIFIED = 'UNSPECIFIED',\n /** Secure picture file. */\n SECURE_PICTURE = 'SECURE_PICTURE',\n /** Secure video file. */\n SECURE_VIDEO = 'SECURE_VIDEO',\n /** Secure document file. */\n SECURE_DOCUMENT = 'SECURE_DOCUMENT',\n /** Secure music file. */\n SECURE_MUSIC = 'SECURE_MUSIC',\n /** Secure archive file. */\n SECURE_ARCHIVE = 'SECURE_ARCHIVE',\n}\n\n/** @enumType */\nexport type FileTypeWithLiterals =\n | FileType\n | 'UNSPECIFIED'\n | 'SECURE_PICTURE'\n | 'SECURE_VIDEO'\n | 'SECURE_DOCUMENT'\n | 'SECURE_MUSIC'\n | 'SECURE_ARCHIVE';\n\nexport interface SubscriptionPricesInfo {\n /**\n * Subscription prices.\n * @maxSize 6\n */\n subscriptionPrices?: SubscriptionPrice[];\n}\n\nexport interface SubscriptionPrice {\n /**\n * Subscription ID.\n * @format GUID\n * @readonly\n */\n subscriptionId?: string;\n /**\n * Subscription price calculated by applying subscription discount to the variant `price.actual_price`\n * @readonly\n */\n price?: FixedMonetaryAmount;\n /**\n * Price per unit info.\n * @readonly\n */\n pricePerUnit?: SubscriptionPricePerUnit;\n}\n\nexport interface SubscriptionPricePerUnit {\n /**\n * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n value?: string;\n /**\n * Price per unit description.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @readonly\n * @maxLength 20\n */\n description?: string | null;\n}\n\nexport interface InventoryStatus {\n /** Whether the variant is in stock. */\n inStock?: boolean;\n /** Whether preorder is enabled for this variant. */\n preorderEnabled?: boolean;\n}\n\nexport interface ExtendedFields {\n /**\n * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\n * The value of each key is structured according to the schema defined when the extended fields were configured.\n *\n * You can only access fields for which you have the appropriate permissions.\n *\n * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).\n */\n namespaces?: Record<string, Record<string, any>>;\n}\n\nexport interface SubscriptionDetails {\n /**\n * Subscriptions.\n * @minSize 1\n * @maxSize 6\n */\n subscriptions?: Subscription[];\n /**\n * Whether to allow one-time purchases in addition to subscription-based purchases.\n *\n * Default: `false`\n */\n allowOneTimePurchases?: boolean | null;\n /**\n * Whether to add a 'Cancel subscription' button to the My Subscriptions tab of the [Members Area page](https://support.wix.com/en/article/site-members-about-the-members-area).\n *\n * Default: `false`\n * @internal\n */\n enableCustomerCancellation?: boolean | null;\n}\n\nexport interface Subscription extends SubscriptionCyclesOneOf {\n /** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */\n autoRenewal?: boolean;\n /**\n * Number of billing cycles before subscription ends.\n * @min 2\n * @max 999\n */\n billingCycles?: number;\n /**\n * Subscription ID.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Subscription title.\n * @minLength 1\n * @maxLength 20\n */\n title?: string;\n /**\n * Subscription description.\n * @maxLength 60\n */\n description?: string | null;\n /**\n * Whether the subscription is visible to site visitors.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Frequency of recurring payment.\n * For example, if `frequency: MONTH` and `billingCycles: 6`; payment will be made monthly for 6 months.\n */\n frequency?: SubscriptionFrequencyWithLiterals;\n /**\n * 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.\n * @min 1\n * @max 50\n */\n interval?: number | null;\n /**\n * Discount info (optional).\n * For example, a $20 discount would be `amount: 20`, `type: AMOUNT`.\n */\n discount?: SubscriptionDiscount;\n}\n\n/** @oneof */\nexport interface SubscriptionCyclesOneOf {\n /** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */\n autoRenewal?: boolean;\n /**\n * Number of billing cycles before subscription ends.\n * @min 2\n * @max 999\n */\n billingCycles?: number;\n}\n\n/** Frequency unit of recurring payment */\nexport enum SubscriptionFrequency {\n UNDEFINED = 'UNDEFINED',\n DAY = 'DAY',\n WEEK = 'WEEK',\n MONTH = 'MONTH',\n YEAR = 'YEAR',\n}\n\n/** @enumType */\nexport type SubscriptionFrequencyWithLiterals =\n | SubscriptionFrequency\n | 'UNDEFINED'\n | 'DAY'\n | 'WEEK'\n | 'MONTH'\n | 'YEAR';\n\nexport interface SubscriptionDiscount\n extends SubscriptionDiscountDiscountOneOf {\n /**\n * Amount to discount from the variant discounted_price.\n * @decimalValue options { gt:0, lte:999999999, maxScale:3 }\n */\n amountOff?: string;\n /**\n * Percentage to discount from variant discounted_price.\n * @min 0.1\n * @max 99.9\n */\n percentOff?: number;\n /** Discount type. */\n type?: DiscountTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface SubscriptionDiscountDiscountOneOf {\n /**\n * Amount to discount from the variant discounted_price.\n * @decimalValue options { gt:0, lte:999999999, maxScale:3 }\n */\n amountOff?: string;\n /**\n * Percentage to discount from variant discounted_price.\n * @min 0.1\n * @max 99.9\n */\n percentOff?: number;\n}\n\nexport enum DiscountType {\n UNKNOWN_DISCOUNT = 'UNKNOWN_DISCOUNT',\n /** Discount by a specific amount. */\n AMOUNT = 'AMOUNT',\n /** Discount by a percentage. */\n PERCENT = 'PERCENT',\n}\n\n/** @enumType */\nexport type DiscountTypeWithLiterals =\n | DiscountType\n | 'UNKNOWN_DISCOUNT'\n | 'AMOUNT'\n | 'PERCENT';\n\nexport interface VariantSummary {\n /**\n * The total number of variants for the product.\n * @readonly\n */\n variantCount?: number;\n}\n\nexport interface MinVariantPriceInfo {\n /**\n * Subscription price calculated by applying subscription discount to the variant `price.actualPrice`\n * @readonly\n */\n minSubscriptionPrice?: FixedMonetaryAmount;\n /**\n * Subscription price per unit calculated value of price per unit.\n * Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.\n * @readonly\n * @decimalValue options { gte:0, lte:999999999, maxScale:3 }\n */\n minSubscriptionPricePerUnit?: string | null;\n /**\n * Variant price per unit.\n * @readonly\n */\n pricePerUnitData?: PricePerUnit;\n /**\n * Variant SKU (stock keeping unit).\n * @readonly\n * @minLength 1\n * @maxLength 40\n */\n sku?: string | null;\n /**\n * Variant shipping weight.\n * @readonly\n * @max 999999999.99\n */\n weight?: number | null;\n /**\n * Variant revenue details.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @readonly\n */\n revenueDetails?: RevenueDetails;\n /** Variant price. Must be greater or equal to 0. */\n actualPrice?: FixedMonetaryAmount;\n /** 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. */\n compareAtPrice?: FixedMonetaryAmount;\n}\n\nexport interface CreateBatchRequest {}\n\nexport interface CreateBatchResponse {\n /**\n * Batch ID to use in subsequent BulkAddItems and SubmitBatch calls\n * @format GUID\n */\n batchId?: string;\n}\n\nexport interface BulkAddProductsToBatchRequest {\n /**\n * Batch ID from CreateBatch\n * @format GUID\n */\n batchId?: string;\n /**\n * Products to add to the batch session\n * @minSize 1\n * @maxSize 100\n */\n products?: ProductItem[];\n}\n\nexport interface ProductItem {\n /** Product to upsert - handle field is required for identification */\n product?: ProductWithInventory;\n /**\n * Categories to set for the product.\n * Overrides any existing category assignments.\n */\n categoryIdsInfo?: V3ProductCategoryIdsInfo;\n}\n\nexport interface ProductWithInventory\n extends ProductWithInventoryTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product with inventory.\n * @readonly\n */\n revision?: string | null;\n /**\n * Product name.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows buyer to customize product, e.g. select Color, Size and so on.\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * 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.\n * 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.\n * *None*: you cannot change name of existing option via this endpoint but you can do it by calling CustomizationService\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * 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.\n * 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.\n * 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.\n * *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\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * Main category ID.\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /**\n * Optional - ID of the app that manages the inventory for this product.\n * @internal\n * @format GUID\n */\n inventoryAppId?: string | null;\n /** Product variants. */\n variantsInfo?: V3VariantsInfo;\n /** Subscription details. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the [app dashboard](https://dev.wix.com/dc3/my-apps/) before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n}\n\n/** @oneof */\nexport interface ProductWithInventoryTypedPropertiesOneOf {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n}\n\nexport interface V3VariantsInfo {\n /**\n * List of related variants.\n * Partial update of variants is not supported so on update you must pass all data for all of them.\n * 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.\n * @minSize 1\n * @maxSize 1000\n */\n variants?: VariantWithInventory[];\n}\n\nexport interface VariantWithInventory\n extends VariantWithInventoryTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n /**\n * Variant ID.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Whether the variant is visible to site visitors.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Variant SKU (stock keeping unit).\n * @minLength 1\n * @maxLength 40\n */\n sku?: string | null;\n /**\n * Variant barcode.\n * @minLength 1\n * @maxLength 40\n */\n barcode?: string | null;\n /** Variant price. */\n price?: PriceInfo;\n /**\n * Variant revenue details.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n revenueDetails?: RevenueDetails;\n /** Inventory item of the variant on the default location. */\n inventoryItem?: InventoryItemComposite;\n /**\n * List of choices.\n * @maxSize 6\n * @immutable\n */\n choices?: OptionChoiceReferences[];\n}\n\n/** @oneof */\nexport interface VariantWithInventoryTypedPropertiesOneOf {\n /** Physical properties. Must be passed when `productType: PHYSICAL` */\n physicalProperties?: VariantPhysicalProperties;\n /** Digital properties. Must be passed when `productType: DIGITAL` */\n digitalProperties?: VariantDigitalProperties;\n}\n\nexport interface InventoryItemComposite\n extends InventoryItemCompositeTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n /**\n * Inventory item ID.\n * If you want to update existing inventory item you must provide id,\n * otherwise new inventory item with different id will be created.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Inventory item revision.\n * @readonly\n */\n revision?: string | null;\n /** Item preorder info. */\n preorderInfo?: PreorderInfo;\n}\n\n/** @oneof */\nexport interface InventoryItemCompositeTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n}\n\nexport interface PreorderInfo {\n /**\n * Whether preorder is enabled for the product.\n *\n * Default: `false`\n */\n enabled?: boolean | null;\n /**\n * A message the customer will see when the item is out of stock and preorder is enabled.\n * @minLength 1\n * @maxLength 250\n */\n message?: string | null;\n /**\n * Number of products that can be preordered after stock reaches zero.\n * Supported only for inventory items with `trackQuantity = true`.\n *\n * Default: `100000`\n * @max 100000\n */\n limit?: number | null;\n /**\n * Number of times the product was preordered.\n *\n * Supported only for inventory items with `trackQuantity = true`.\n * @readonly\n * @max 99999\n */\n counter?: number | null;\n /**\n * Quantity of products that can be preordered.\n *\n * Supported only for inventory items with `trackQuantity = true`.\n * @readonly\n */\n quantity?: number | null;\n}\n\nexport interface OptionChoiceReferences {\n /** Option and choice IDs. */\n optionChoiceIds?: V3OptionChoiceIds;\n /** Option and choice names. */\n optionChoiceNames?: V3OptionChoiceNames;\n}\n\nexport interface V3OptionChoiceIds {\n /**\n * Option ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n */\n optionId?: string;\n /**\n * Choice ID.\n * @format GUID\n * @immutable\n */\n choiceId?: string;\n}\n\nexport interface V3OptionChoiceNames {\n /**\n * Option name.\n * @minLength 1\n */\n optionName?: string;\n /**\n * Choice name.\n * @minLength 1\n */\n choiceName?: string;\n /** Render type. */\n renderType?: ProductOptionRenderTypeWithLiterals;\n}\n\nexport interface V3ProductCategoryIdsInfo {\n /**\n * List of category IDs to set for the product\n * @maxSize 1000\n * @format GUID\n */\n categoryIds?: string[];\n}\n\nexport interface BulkAddProductsToBatchResponse {\n /**\n * Items added by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkItemResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: CommonBulkActionMetadata;\n}\n\nexport interface WixCommonItemMetadata {\n /**\n * Item ID. Provided only whenever possible. For example, `itemId` can't be provided when item creation has failed.\n * @format GUID\n */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action for this item was successful. When `false`, the `error` field is returned. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface ApplicationError {\n /** Error code. */\n code?: string;\n /** Description of the error. */\n description?: string;\n /** Data related to the error. */\n data?: Record<string, any> | null;\n}\n\nexport interface BulkItemResult {\n /** Bulk action metadata for item. */\n itemMetadata?: WixCommonItemMetadata;\n}\n\nexport interface CommonBulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface SubmitBatchRequest {\n /**\n * Batch ID from CreateBatch\n * @format GUID\n */\n batchId?: string;\n}\n\nexport interface SubmitBatchResponse {\n /**\n * Job ID for async operation tracking. Pass to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/get-async-job) or [List Async Job Items](https://dev.wix.com/docs/rest/business-management/async-job/list-async-job-items) to retrieve details and metadata\n * @format GUID\n */\n jobId?: string;\n /** Total number of products submitted for processing */\n totalProducts?: number;\n}\n\nexport interface UpdateDocumentsEvent\n extends UpdateDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: DocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update documents matching filter */\n updateByFilter?: UpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: UpdateExistingOperation;\n /**\n * application which owns documents\n * @minLength 2\n */\n appDefId?: string | null;\n /**\n * type of the documents\n * @minLength 2\n */\n documentType?: string | null;\n /**\n * language of the documents\n * @minLength 2\n */\n language?: string | null;\n /**\n * site documents belong to\n * @minLength 2\n */\n msId?: string | null;\n}\n\n/** @oneof */\nexport interface UpdateDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: DocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update documents matching filter */\n updateByFilter?: UpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: UpdateExistingOperation;\n}\n\nexport interface DocumentUpdateOperation {\n /** documents to index or update */\n documents?: IndexDocument[];\n}\n\nexport interface IndexDocument {\n /** data bag with non-searchable fields (url, image) */\n payload?: DocumentPayload;\n /** what type of users should documents be visible to */\n exposure?: EnumWithLiterals;\n /** document with mandatory fields (id, title, description) and with fields specific to the type of the document */\n document?: Record<string, any> | null;\n /** what member groups is the document exposed to. Used only with GROUP_PROTECTED exposure */\n permittedMemberGroups?: string[];\n /** if true SEO is disabled for this document */\n seoHidden?: boolean | null;\n /** if true the page is a lightbox popup */\n isPopup?: boolean | null;\n}\n\nexport interface DocumentPayload {\n /** url of the page representing the document */\n url?: string | null;\n /** image which represents the document */\n documentImage?: DocumentImage;\n}\n\nexport interface DocumentImage {\n /** the name of the image */\n name?: string;\n /** the width of the image */\n width?: number;\n /** the height of the image */\n height?: number;\n}\n\nexport enum Enum {\n /** Default value. Means that permission not set */\n UNKNOWN = 'UNKNOWN',\n /** Protected exposure. Exposed to members and owners */\n PROTECTED = 'PROTECTED',\n /** Private exposure. Exposed to owners */\n PRIVATE = 'PRIVATE',\n /** Public exposure. Visible to everyone */\n PUBLIC = 'PUBLIC',\n /** Used for partial updates, to state that exposure is not changing */\n UNCHANGED = 'UNCHANGED',\n /** Protected to members of permitted groups and owners */\n GROUP_PROTECTED = 'GROUP_PROTECTED',\n}\n\n/** @enumType */\nexport type EnumWithLiterals =\n | Enum\n | 'UNKNOWN'\n | 'PROTECTED'\n | 'PRIVATE'\n | 'PUBLIC'\n | 'UNCHANGED'\n | 'GROUP_PROTECTED';\n\nexport interface DeleteByIdsOperation {\n /** ids of the documents to delete */\n documentIds?: string[];\n}\n\nexport interface DeleteByFilterOperation {\n /** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */\n filter?: Record<string, any> | null;\n}\n\nexport interface UpdateByFilterOperation {\n /** documents matching this filter will be updated */\n filter?: Record<string, any> | null;\n /** partial document to apply */\n document?: IndexDocument;\n}\n\nexport interface UpdateExistingOperation {\n /** documents to update */\n documents?: IndexDocument[];\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * 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.\n * 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.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface Empty {}\n\nexport interface SearchIndexingNotification {\n /** new state of indexing for the site specified in ms_id */\n indexState?: StateWithLiterals;\n /** type of the document the notification is targeted for. Applies to all types if not provided */\n documentType?: string | null;\n /** languaInternalDocumentUpdateByFilterOperationge the notification is targeted for. Applies to all languages if not provided */\n language?: string | null;\n /**\n * site for which notification is targeted\n * @minLength 2\n */\n msId?: string | null;\n}\n\nexport enum State {\n /** default state */\n Unknown = 'Unknown',\n /** metasite does not require site search indexing */\n Off = 'Off',\n /** metasite requires site search indexing */\n On = 'On',\n}\n\n/** @enumType */\nexport type StateWithLiterals = State | 'Unknown' | 'Off' | 'On';\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface InvalidateCache extends InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n /**\n * tell us why you're invalidating the cache. You don't need to add your app name\n * @maxLength 256\n */\n reason?: string | null;\n /** Is local DS */\n localDc?: boolean;\n hardPurge?: boolean;\n}\n\n/** @oneof */\nexport interface InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n}\n\nexport interface App {\n /**\n * The AppDefId\n * @minLength 1\n */\n appDefId?: string;\n /**\n * The instance Id\n * @format GUID\n */\n instanceId?: string;\n}\n\nexport interface Page {\n /**\n * the msid the page is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Page ID\n * @minLength 1\n */\n pageId?: string;\n}\n\nexport interface URI {\n /**\n * the msid the URI is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes\n * @minLength 1\n */\n uriPath?: string;\n}\n\nexport interface File {\n /**\n * the msid the file is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by filename (for media files such as PDFs)\n * @minLength 1\n * @maxLength 256\n */\n fileName?: string;\n}\n\nexport interface CustomTag {\n /**\n * the msid the tag is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Tag to invalidate by\n * @minLength 1\n * @maxLength 256\n */\n tag?: string;\n}\n\nexport interface DoNotCallCreateProductRequest {\n /** Product to be created */\n product?: V3Product;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport enum SingleEntityOpsRequestedFields {\n /** Not implemented. */\n UNKNOWN_REQUESTED_FIELD = 'UNKNOWN_REQUESTED_FIELD',\n /** The product's public storefront URL, including both relative path and full URL with base domain. */\n URL = 'URL',\n /** Currency information including the currency code and formatted price amounts for storefront display. */\n CURRENCY = 'CURRENCY',\n /** Returns basic info section metadata including IDs, unique names, and titles. Use with `INFO_SECTION_DESCRIPTION` or `INFO_SECTION_PLAIN_DESCRIPTION` to include content. */\n INFO_SECTION = 'INFO_SECTION',\n /**\n * Returns merchant-related financial data including cost ranges and variant revenue details like cost, profit, and profit margin.\n * Requires the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n MERCHANT_DATA = 'MERCHANT_DATA',\n /** Provides product description as plain HTML text. */\n PLAIN_DESCRIPTION = 'PLAIN_DESCRIPTION',\n /** Returns info section descriptions as HTML content. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_PLAIN_DESCRIPTION = 'INFO_SECTION_PLAIN_DESCRIPTION',\n /** Details subscription pricing options, empty for non-subscription products. */\n SUBSCRIPTION_PRICES_INFO = 'SUBSCRIPTION_PRICES_INFO',\n /** Returns the category breadcrumb navigation path from root categories down to the product's main category, including category IDs, names, and slugs. */\n BREADCRUMBS_INFO = 'BREADCRUMBS_INFO',\n /** Returns the weight measurement unit (KG, LB) for the product. */\n WEIGHT_MEASUREMENT_UNIT_INFO = 'WEIGHT_MEASUREMENT_UNIT_INFO',\n /** Enriches variant choices with human-readable option and choice names alongside render types. */\n VARIANT_OPTION_CHOICE_NAMES = 'VARIANT_OPTION_CHOICE_NAMES',\n /** Returns all media items associated with the product, including detailed metadata (URLs, alt-text, dimensions, filenames, file sizes). */\n MEDIA_ITEMS_INFO = 'MEDIA_ITEMS_INFO',\n /** Returns the product description as rich content with complete node structure, metadata, and styling information. */\n DESCRIPTION = 'DESCRIPTION',\n /** Provides the IDs and indexes of categories the product is directly assigned to. */\n DIRECT_CATEGORIES_INFO = 'DIRECT_CATEGORIES_INFO',\n /** Provides IDs and indexes for all categories including inherited parent categories. */\n ALL_CATEGORIES_INFO = 'ALL_CATEGORIES_INFO',\n /** Returns info section descriptions as rich content with complete node structure, metadata, and styling information. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_DESCRIPTION = 'INFO_SECTION_DESCRIPTION',\n /** Returns an optimized thumbnail image with standard dimensions, suitable for listings or previews. */\n THUMBNAIL = 'THUMBNAIL',\n}\n\n/** @enumType */\nexport type SingleEntityOpsRequestedFieldsWithLiterals =\n | SingleEntityOpsRequestedFields\n | 'UNKNOWN_REQUESTED_FIELD'\n | 'URL'\n | 'CURRENCY'\n | 'INFO_SECTION'\n | 'MERCHANT_DATA'\n | 'PLAIN_DESCRIPTION'\n | 'INFO_SECTION_PLAIN_DESCRIPTION'\n | 'SUBSCRIPTION_PRICES_INFO'\n | 'BREADCRUMBS_INFO'\n | 'WEIGHT_MEASUREMENT_UNIT_INFO'\n | 'VARIANT_OPTION_CHOICE_NAMES'\n | 'MEDIA_ITEMS_INFO'\n | 'DESCRIPTION'\n | 'DIRECT_CATEGORIES_INFO'\n | 'ALL_CATEGORIES_INFO'\n | 'INFO_SECTION_DESCRIPTION'\n | 'THUMBNAIL';\n\nexport interface DoNotCallCreateProductResponse {\n /** The created Product */\n product?: V3Product;\n}\n\nexport interface DuplicateMediaIdAssignedToProduct {\n /**\n * List of media IDs passed more than once.\n * @maxSize 15\n * @format GUID\n */\n mediaIds?: string[];\n}\n\nexport interface GetProductRequest {\n /**\n * Id of the Product to retrieve\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface GetProductResponse {\n /** The retrieved Product */\n product?: V3Product;\n}\n\nexport interface GetProductBySlugRequest {\n /**\n * Product slug. A permanent, friendly URL name unique per store.\n * @minLength 1\n * @maxLength 100\n */\n slug?: string;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface GetProductBySlugResponse {\n /** The retrieved Product */\n product?: V3Product;\n}\n\nexport interface DoNotCallUpdateProductRequest {\n /** Product to be updated, may be partial */\n product?: V3Product;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface DoNotCallUpdateProductResponse {\n /** The updated Product */\n product?: V3Product;\n}\n\nexport interface VariantsRemoved {\n /**\n * Removed variants ids.\n * @format GUID\n * @minSize 1\n * @maxSize 1000\n */\n variantIds?: string[];\n}\n\nexport interface UnsupportedFieldMasks {\n /**\n * Field masks provided in request but not supported\n * @maxLength 1000\n * @maxSize 100\n */\n fieldMasks?: string[];\n}\n\nexport interface DeleteProductRequest {\n /**\n * Id of the Product to delete\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n}\n\nexport interface DeleteProductResponse {}\n\nexport interface SearchProductsRequest {\n /**\n * 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).\n * It means that product will be returned only if one or more items satisfy all filters specified in $matchItems.\n * 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.\n * You still can use `$isEmpty` and `$exists` operators for fields listed above.\n * See examples to understand supported capabilities.\n * 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.\n * If you need variants-info, you can retrieve it for a specific product using the getProduct endpoint.\n */\n search?: CursorSearch;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CursorSearch extends CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).\n */\n filter?: Record<string, any> | null;\n /**\n * List of sort objects.\n *\n * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section).\n * @maxSize 10\n */\n sort?: Sorting[];\n /**\n * 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.\n * @maxSize 10\n */\n aggregations?: Aggregation[];\n /** Free text to match in searchable fields. */\n search?: SearchDetails;\n /**\n * UTC offset or IANA time zone. Valid values are\n * ISO 8601 UTC offsets, such as +02:00 or -06:00,\n * and IANA time zone IDs, such as Europe/Rome\n *\n * Affects all filters and aggregations returned values.\n * You may override this behavior in a specific filter by providing\n * timestamps including time zone. e.g. `\"2023-12-20T10:52:34.795Z\"`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n /** Ascending order. */\n ASC = 'ASC',\n /** Descending order. */\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface Aggregation extends AggregationKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n /** Nested aggregation */\n nested?: NestedAggregation;\n /**\n * User-defined name of aggregation, should be unique, will appear in aggregation results\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation, client must provide matching aggregation field below */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by, use dot notation to specify json path\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n /** Nested aggregation */\n nested?: NestedAggregation;\n}\n\nexport interface RangeBucket {\n /** Inclusive lower bound of the range. Required if to is not given */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if from is not given */\n to?: number | null;\n}\n\nexport enum SortType {\n /** Should sort by number of matches. */\n COUNT = 'COUNT',\n /** Should sort by value of the field alphabetically. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';\n\nexport enum SortDirection {\n /** Should sort by descending order. */\n DESC = 'DESC',\n /** Should sort by ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';\n\nexport enum MissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values from the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';\n\nexport interface IncludeMissingValuesOptions {\n /**\n * Can specify custom bucket name. Defaults are [string -> \"N/A\"], [int -> \"0\"], [bool -> \"false\"] ...\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum ScalarType {\n /** Undefined scalar type. */\n UNKNOWN_SCALAR_TYPE = 'UNKNOWN_SCALAR_TYPE',\n /** Count of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n}\n\n/** @enumType */\nexport type ScalarTypeWithLiterals =\n | ScalarType\n | 'UNKNOWN_SCALAR_TYPE'\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface ValueAggregation extends ValueAggregationOptionsOneOf {\n /** Options for including missing values */\n includeOptions?: IncludeMissingValuesOptions;\n /** Should sort by number of matches or value of the field */\n sortType?: SortTypeWithLiterals;\n /** Should sort in ascending or descending order */\n sortDirection?: SortDirectionWithLiterals;\n /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */\n limit?: number | null;\n /** Should missing values be included or excluded from the aggregation results. Default is EXCLUDE */\n missingValues?: MissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface ValueAggregationOptionsOneOf {\n /** Options for including missing values */\n includeOptions?: IncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationType {\n /** Undefined nested aggregation type. */\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** An aggregation where result buckets are dynamically built - one per unique value. */\n VALUE = 'VALUE',\n /** An aggregation where user can define set of ranges - each representing a bucket. */\n RANGE = 'RANGE',\n /** A single-value metric aggregation. For example: min, max, sum, avg. */\n SCALAR = 'SCALAR',\n /** An aggregation where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationTypeWithLiterals =\n | NestedAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface RangeAggregation {\n /**\n * 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\n * @maxSize 50\n */\n buckets?: RangeBucket[];\n}\n\nexport interface ScalarAggregation {\n /** Define the operator for the scalar aggregation */\n type?: ScalarTypeWithLiterals;\n}\n\nexport interface DateHistogramAggregation {\n /** Interval for date histogram aggregation */\n interval?: IntervalWithLiterals;\n}\n\nexport enum Interval {\n /** Undefined interval type. */\n UNKNOWN_INTERVAL = 'UNKNOWN_INTERVAL',\n /** Yearly interval. */\n YEAR = 'YEAR',\n /** Monthly interval. */\n MONTH = 'MONTH',\n /** Weekly interval. */\n WEEK = 'WEEK',\n /** Daily interval. */\n DAY = 'DAY',\n /** Hourly interval. */\n HOUR = 'HOUR',\n /** Minute interval. */\n MINUTE = 'MINUTE',\n /** Second interval. */\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type IntervalWithLiterals =\n | Interval\n | 'UNKNOWN_INTERVAL'\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface NestedAggregationItem extends NestedAggregationItemKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n /**\n * User-defined name of aggregation, should be unique, will appear in aggregation results\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation, client must provide matching aggregation field below */\n type?: NestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by, use dont notation to specify json path\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationItemKindOneOf {\n /** Value aggregation */\n value?: ValueAggregation;\n /** Range aggregation */\n range?: RangeAggregation;\n /** Scalar aggregation */\n scalar?: ScalarAggregation;\n /** Date histogram aggregation */\n dateHistogram?: DateHistogramAggregation;\n}\n\nexport enum AggregationType {\n /** Undefined aggregation type. */\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** An aggregation where result buckets are dynamically built - one per unique value. */\n VALUE = 'VALUE',\n /** An aggregation where a user can define set of ranges - each representing a bucket. */\n RANGE = 'RANGE',\n /** A single-value metric aggregation. For example: min, max, sum, avg. */\n SCALAR = 'SCALAR',\n /** An aggregation where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** A Multi-level aggregation where each next aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type AggregationTypeWithLiterals =\n | AggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */\nexport interface NestedAggregation {\n /**\n * Flattened list of aggregations, where each next aggregation is nested within previous one\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: NestedAggregationItem[];\n}\n\nexport interface SearchDetails {\n /** Defines how separate search terms in `expression` are combined. */\n mode?: ModeWithLiterals;\n /**\n * Search term or expression\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */\n fuzzy?: boolean;\n}\n\nexport enum Mode {\n /** Any of the search terms must be present. */\n OR = 'OR',\n /** All search terms must be present. */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type ModeWithLiterals = Mode | 'OR' | 'AND';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport enum RequestedFields {\n /** Not implemented. */\n UNKNOWN_REQUESTED_FIELD = 'UNKNOWN_REQUESTED_FIELD',\n /** The product's public storefront URL, including both relative path and full URL with base domain. */\n URL = 'URL',\n /** Currency information including the currency code and formatted price amounts for storefront display. */\n CURRENCY = 'CURRENCY',\n /** Returns basic info section metadata including IDs, unique names, and titles. Use with `INFO_SECTION_DESCRIPTION` or `INFO_SECTION_PLAIN_DESCRIPTION` to include content. */\n INFO_SECTION = 'INFO_SECTION',\n /**\n * Returns merchant-related financial data including cost ranges and variant revenue details like cost, profit, and profit margin.\n * Requires the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\n MERCHANT_DATA = 'MERCHANT_DATA',\n /** Provides product description as plain HTML text. */\n PLAIN_DESCRIPTION = 'PLAIN_DESCRIPTION',\n /** Returns info section descriptions as HTML content. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_PLAIN_DESCRIPTION = 'INFO_SECTION_PLAIN_DESCRIPTION',\n /** Details subscription pricing options, empty for non-subscription products. */\n SUBSCRIPTION_PRICES_INFO = 'SUBSCRIPTION_PRICES_INFO',\n /** Returns the category breadcrumb navigation path from root categories down to the product's main category, including category IDs, names, and slugs. */\n BREADCRUMBS_INFO = 'BREADCRUMBS_INFO',\n /** Returns the weight measurement unit (KG, LB) for the product. */\n WEIGHT_MEASUREMENT_UNIT_INFO = 'WEIGHT_MEASUREMENT_UNIT_INFO',\n /** Enriches variant choices with human-readable option and choice names alongside render types. */\n VARIANT_OPTION_CHOICE_NAMES = 'VARIANT_OPTION_CHOICE_NAMES',\n /** Returns all media items associated with the product, including detailed metadata (URLs, alt-text, dimensions, filenames, file sizes). */\n MEDIA_ITEMS_INFO = 'MEDIA_ITEMS_INFO',\n /** Returns the product description as rich content with complete node structure, metadata, and styling information. */\n DESCRIPTION = 'DESCRIPTION',\n /** Provides the IDs and indexes of categories the product is directly assigned to. */\n DIRECT_CATEGORIES_INFO = 'DIRECT_CATEGORIES_INFO',\n /** Provides IDs and indexes for all categories including inherited parent categories. */\n ALL_CATEGORIES_INFO = 'ALL_CATEGORIES_INFO',\n /** Returns info section descriptions as rich content with complete node structure, metadata, and styling information. Use with `INFO_SECTION` for complete metadata. */\n INFO_SECTION_DESCRIPTION = 'INFO_SECTION_DESCRIPTION',\n /** Returns an optimized thumbnail image with standard dimensions, suitable for listings or previews. */\n THUMBNAIL = 'THUMBNAIL',\n}\n\n/** @enumType */\nexport type RequestedFieldsWithLiterals =\n | RequestedFields\n | 'UNKNOWN_REQUESTED_FIELD'\n | 'URL'\n | 'CURRENCY'\n | 'INFO_SECTION'\n | 'MERCHANT_DATA'\n | 'PLAIN_DESCRIPTION'\n | 'INFO_SECTION_PLAIN_DESCRIPTION'\n | 'SUBSCRIPTION_PRICES_INFO'\n | 'BREADCRUMBS_INFO'\n | 'WEIGHT_MEASUREMENT_UNIT_INFO'\n | 'VARIANT_OPTION_CHOICE_NAMES'\n | 'MEDIA_ITEMS_INFO'\n | 'DESCRIPTION'\n | 'DIRECT_CATEGORIES_INFO'\n | 'ALL_CATEGORIES_INFO'\n | 'INFO_SECTION_DESCRIPTION'\n | 'THUMBNAIL';\n\nexport interface SearchProductsResponse {\n /** Products which satisfy the provided query. */\n products?: V3Product[];\n /** Paging metadata. Contains cursor which can be used in next query. */\n pagingMetadata?: CursorPagingMetadata;\n /** Aggregation data. */\n aggregationData?: AggregationData;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface AggregationData {\n /**\n * key = aggregation name (as derived from search request)\n * @maxSize 10000\n */\n results?: AggregationResults[];\n}\n\nexport interface ValueAggregationResult {\n /**\n * Value of the field\n * @maxLength 100\n */\n value?: string;\n /** Count of entities with this value */\n count?: number;\n}\n\nexport interface RangeAggregationResult {\n /** Inclusive lower bound of the range */\n from?: number | null;\n /** Exclusive upper bound of the range */\n to?: number | null;\n /** Count of entities in this range */\n count?: number;\n}\n\nexport interface NestedAggregationResults\n extends NestedAggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n /**\n * User-defined name of aggregation, matches the one provided in request\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that matches result */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by, matches the one provided in request\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n}\n\nexport interface ValueResults {\n /**\n * List of value aggregations\n * @maxSize 250\n */\n results?: ValueAggregationResult[];\n}\n\nexport interface RangeResults {\n /**\n * List of ranges returned in same order as requested\n * @maxSize 50\n */\n results?: RangeAggregationResult[];\n}\n\nexport interface AggregationResultsScalarResult {\n /** Type of scalar aggregation */\n type?: ScalarTypeWithLiterals;\n /** Value of the scalar aggregation */\n value?: number;\n}\n\nexport interface NestedValueAggregationResult {\n /**\n * Value of the field\n * @maxLength 1000\n */\n value?: string;\n /** Nested aggregations */\n nestedResults?: NestedAggregationResults;\n}\n\nexport interface ValueResult {\n /**\n * Value of the field\n * @maxLength 1000\n */\n value?: string;\n /** Count of entities with this value */\n count?: number | null;\n}\n\nexport interface RangeResult {\n /** Inclusive lower bound of the range */\n from?: number | null;\n /** Exclusive upper bound of the range */\n to?: number | null;\n /** Count of entities in this range */\n count?: number | null;\n}\n\nexport interface ScalarResult {\n /** Value of the scalar aggregation */\n value?: number;\n}\n\nexport interface NestedResultValue extends NestedResultValueResultOneOf {\n /** Value aggregation result */\n value?: ValueResult;\n /** Range aggregation result */\n range?: RangeResult;\n /** Scalar aggregation result */\n scalar?: ScalarResult;\n /** Date histogram aggregation result */\n dateHistogram?: ValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultValueResultOneOf {\n /** Value aggregation result */\n value?: ValueResult;\n /** Range aggregation result */\n range?: RangeResult;\n /** Scalar aggregation result */\n scalar?: ScalarResult;\n /** Date histogram aggregation result */\n dateHistogram?: ValueResult;\n}\n\nexport interface Results {\n /** List of nested aggregations */\n results?: Record<string, NestedResultValue>;\n}\n\nexport interface DateHistogramResult {\n /**\n * Date in ISO 8601 format\n * @maxLength 100\n */\n value?: string;\n /** Count of documents in the bucket */\n count?: number;\n}\n\nexport interface GroupByValueResults {\n /**\n * List of value aggregations\n * @maxSize 1000\n */\n results?: NestedValueAggregationResult[];\n}\n\nexport interface DateHistogramResults {\n /**\n * List of date histogram aggregations\n * @maxSize 200\n */\n results?: DateHistogramResult[];\n}\n\n/**\n * Results of `NESTED` aggregation type in a flattened form\n * aggregations in resulting array are keyed by requested aggregation `name`.\n */\nexport interface NestedResults {\n /**\n * List of nested aggregations\n * @maxSize 1000\n */\n results?: Results[];\n}\n\nexport interface AggregationResults extends AggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results */\n nested?: NestedResults;\n /**\n * User-defined name of aggregation as derived from search request\n * @maxLength 100\n */\n name?: string;\n /** Type of aggregation that must match provided kind as derived from search request */\n type?: AggregationTypeWithLiterals;\n /**\n * Field to aggregate by as derived from search request\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsResultOneOf {\n /** Value aggregation results */\n values?: ValueResults;\n /** Range aggregation results */\n ranges?: RangeResults;\n /** Scalar aggregation results */\n scalar?: AggregationResultsScalarResult;\n /** Group by value aggregation results */\n groupedByValue?: GroupByValueResults;\n /** Date histogram aggregation results */\n dateHistogram?: DateHistogramResults;\n /** Nested aggregation results */\n nested?: NestedResults;\n}\n\nexport interface SearchRelatedProductsRequest {\n /** Search parameters. */\n searchRelated?: SearchRelated;\n}\n\nexport interface SearchRelated {\n /**\n * A list of entity IDs to search related entities for\n * @minSize 1\n * @maxSize 10\n * @maxLength 50\n */\n relatedToIds?: string[];\n /** Search details */\n search?: SearchRelatedDetails;\n /** A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language). */\n filter?: Record<string, any> | null;\n /**\n * Sort object in the form [{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}]\n * @maxSize 10\n */\n sort?: Sorting[];\n /**\n * Number of related documents to return\n * @max 100\n */\n limit?: number | null;\n}\n\nexport interface SearchRelatedDetails {\n /**\n * Search term or expression\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n}\n\nexport interface SearchRelatedProductsResponse {\n /**\n * The IDs of related Products that satisfy the request.\n * @format GUID\n * @maxLength 100\n */\n productIds?: string[];\n}\n\nexport interface EventuallyConsistentQueryProductsRequest {\n /**\n * 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).\n * It means that product will be returned only if one or more items satisfy all filters specified in $matchItems.\n * 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.\n * You still can use `$isEmpty` and `$exists` operators for fields listed above.\n * See examples to understand supported capabilities.\n */\n query?: CursorQuery;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section).\n * @maxSize 5\n */\n sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface EventuallyConsistentQueryProductsResponse {\n /** Products which satisfy the provided query. */\n products?: V3Product[];\n /** Paging metadata. Contains cursor which can be used in next query. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface QueryProductsRequest {\n /** WQL expression */\n query?: CursorQuery;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface QueryProductsResponse {\n /** The retrieved Products */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface DeprecatedSearchProductsWithOffsetRequest {\n /** Filter and sort with limit/offset based paging */\n search?: PlatformOffsetSearch;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface PlatformOffsetSearch\n extends PlatformOffsetSearchPagingMethodOneOf {\n /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */\n paging?: PlatformPaging;\n /** A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language). */\n filter?: Record<string, any> | null;\n /** Sort object in the form [{\"fieldName\":\"sortField1\"},{\"fieldName\":\"sortField2\",\"direction\":\"DESC\"}] */\n sort?: CommonSorting[];\n /** 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. */\n aggregations?: CommonAggregation[];\n /** free text to match in searchable fields */\n search?: CommonSearchDetails;\n}\n\n/** @oneof */\nexport interface PlatformOffsetSearchPagingMethodOneOf {\n /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */\n paging?: PlatformPaging;\n}\n\nexport interface CommonSorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: CommonSortOrderWithLiterals;\n}\n\nexport enum CommonSortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type CommonSortOrderWithLiterals = CommonSortOrder | 'ASC' | 'DESC';\n\nexport interface CommonAggregation extends CommonAggregationKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n /** 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`. */\n nested?: AggregationNestedAggregation;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n type?: CommonAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n /**\n * Deprecated. Use `nested` instead.\n * @deprecated Deprecated. Use `nested` instead.\n * @replacedBy kind.nested\n * @targetRemovalDate 2024-03-30\n */\n groupBy?: GroupByAggregation;\n}\n\n/** @oneof */\nexport interface CommonAggregationKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n /** 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`. */\n nested?: AggregationNestedAggregation;\n}\n\nexport interface RangeAggregationRangeBucket {\n /** Inclusive lower bound of the range. Required if `to` is not provided. */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if `from` is not provided. */\n to?: number | null;\n}\n\nexport enum ValueAggregationSortType {\n /** Number of matches in the results. */\n COUNT = 'COUNT',\n /** Alphabetically by the field value. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type ValueAggregationSortTypeWithLiterals =\n | ValueAggregationSortType\n | 'COUNT'\n | 'VALUE';\n\nexport enum ValueAggregationSortDirection {\n /** Descending order. */\n DESC = 'DESC',\n /** Ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type ValueAggregationSortDirectionWithLiterals =\n | ValueAggregationSortDirection\n | 'DESC'\n | 'ASC';\n\nexport enum ValueAggregationMissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values in the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type ValueAggregationMissingValuesWithLiterals =\n | ValueAggregationMissingValues\n | 'EXCLUDE'\n | 'INCLUDE';\n\nexport interface ValueAggregationIncludeMissingValuesOptions {\n /**\n * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum CommonScalarType {\n UNKNOWN_SCALAR_TYPE = 'UNKNOWN_SCALAR_TYPE',\n /** Total number of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n}\n\n/** @enumType */\nexport type CommonScalarTypeWithLiterals =\n | CommonScalarType\n | 'UNKNOWN_SCALAR_TYPE'\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface AggregationValueAggregation\n extends AggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: ValueAggregationIncludeMissingValuesOptions;\n /** Sort type. */\n sortType?: ValueAggregationSortTypeWithLiterals;\n /** Sort direction. */\n sortDirection?: ValueAggregationSortDirectionWithLiterals;\n /**\n * Number of aggregation results to return.\n * Min: `1`\n * Max: `250`\n * Default: `10`\n */\n limit?: number | null;\n /**\n * Whether to include or exclude missing values in the aggregation results.\n * Default: `EXCLUDE`.\n */\n missingValues?: ValueAggregationMissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface AggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: ValueAggregationIncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationNestedAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationNestedAggregationTypeWithLiterals =\n | NestedAggregationNestedAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface AggregationRangeAggregation {\n /**\n * List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.\n * @maxSize 50\n */\n buckets?: RangeAggregationRangeBucket[];\n}\n\nexport interface AggregationScalarAggregation {\n /** Operator type for the scalar aggregation. */\n type?: CommonScalarTypeWithLiterals;\n}\n\nexport interface AggregationDateHistogramAggregation {\n /** Interval for date histogram aggregation. */\n interval?: DateHistogramAggregationIntervalWithLiterals;\n}\n\nexport enum DateHistogramAggregationInterval {\n UNKNOWN_INTERVAL = 'UNKNOWN_INTERVAL',\n YEAR = 'YEAR',\n MONTH = 'MONTH',\n WEEK = 'WEEK',\n DAY = 'DAY',\n HOUR = 'HOUR',\n MINUTE = 'MINUTE',\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type DateHistogramAggregationIntervalWithLiterals =\n | DateHistogramAggregationInterval\n | 'UNKNOWN_INTERVAL'\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface NestedAggregationNestedAggregationItem\n extends NestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. The matching aggregation field must be passed. */\n type?: NestedAggregationNestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: AggregationValueAggregation;\n /** 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. */\n range?: AggregationRangeAggregation;\n /** 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`. */\n scalar?: AggregationScalarAggregation;\n /** 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. */\n dateHistogram?: AggregationDateHistogramAggregation;\n}\n\nexport enum CommonAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type CommonAggregationTypeWithLiterals =\n | CommonAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */\nexport interface AggregationNestedAggregation {\n /**\n * Flattened list of aggregations, where each aggregation is nested within previous one.\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: NestedAggregationNestedAggregationItem[];\n}\n\nexport interface GroupByAggregation extends GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: AggregationValueAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /**\n * Field to aggregate by.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface GroupByAggregationKindOneOf {\n /** Value aggregation configuration. */\n value?: AggregationValueAggregation;\n}\n\nexport interface CommonSearchDetails {\n /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */\n mode?: SearchDetailsModeWithLiterals;\n /**\n * Search term or expression.\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * 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`.\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** 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. */\n fuzzy?: boolean;\n}\n\nexport enum SearchDetailsMode {\n /** At least one of the search terms must be present. */\n OR = 'OR',\n /** All search terms must be present. */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type SearchDetailsModeWithLiterals = SearchDetailsMode | 'OR' | 'AND';\n\nexport interface PlatformPaging {\n /**\n * Number of items to load.\n * @max 100\n */\n limit?: number | null;\n /** Number of items to skip in the current sort order. */\n offset?: number | null;\n}\n\nexport interface DeprecatedSearchProductsWithOffsetResponse {\n /** Products which satisfy the provided query. */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: PagingMetadata;\n /** Aggregation data. */\n aggregationData?: AggregationData;\n}\n\nexport interface PagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Offset that was requested. */\n offset?: number | null;\n /** Total number of items that match the query. */\n total?: number | null;\n /** Flag that indicates the server failed to calculate the `total` field. */\n tooManyToCount?: boolean | null;\n}\n\nexport interface RetrieveVariantsRequest {\n /**\n * Ids of the product and variants to retrieve\n * @maxSize 100\n */\n productVariantIds?: ProductVariantIds[];\n /**\n * Pointer to the next page in the list of results.\n * Pass the relevant cursor token from the `pagingMetadata` in the previous call's response.\n * Not relevant for the first request.\n */\n cursorPaging?: VariantsCursorPaging;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: VariantsOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface ProductVariantIds {\n /**\n * Product id of the requested variants.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * A list of variant ids.\n * @maxSize 1000\n * @minLength 1\n * @maxLength 36\n */\n variantIds?: string[];\n}\n\nexport interface VariantsCursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 1000\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 64\n */\n cursor?: string | null;\n}\n\nexport enum VariantsOpsRequestedFields {\n /** Not implemented. */\n UNKNOWN_REQUESTED_FIELD = 'UNKNOWN_REQUESTED_FIELD',\n CURRENCY = 'CURRENCY',\n /** You can request merchant data only if you have the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope. */\n MERCHANT_DATA = 'MERCHANT_DATA',\n SUBSCRIPTION_PRICES_INFO = 'SUBSCRIPTION_PRICES_INFO',\n VARIANT_OPTION_CHOICE_NAMES = 'VARIANT_OPTION_CHOICE_NAMES',\n THUMBNAIL = 'THUMBNAIL',\n}\n\n/** @enumType */\nexport type VariantsOpsRequestedFieldsWithLiterals =\n | VariantsOpsRequestedFields\n | 'UNKNOWN_REQUESTED_FIELD'\n | 'CURRENCY'\n | 'MERCHANT_DATA'\n | 'SUBSCRIPTION_PRICES_INFO'\n | 'VARIANT_OPTION_CHOICE_NAMES'\n | 'THUMBNAIL';\n\nexport interface RetrieveVariantsResponse {\n /** The retrieved Products and Variants */\n productVariants?: ProductVariants[];\n /** Paging metadata. Contains cursor which can be used in next query. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface ProductVariants {\n /**\n * Product id of the requested variants.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * A list of variants.\n * @maxSize 1000\n */\n variants?: Variant[];\n}\n\nexport interface CountProductsRequest {\n /**\n * A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language).\n * To understand supported filters and limitations see `SearchProducts` method.\n */\n filter?: Record<string, any> | null;\n /** free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface CountProductsResponse {\n /** The amount of products which apply to the request */\n count?: number;\n}\n\nexport interface DoNotCallBulkCreateProductsRequest {\n /**\n * List of products to be created.\n * @minSize 1\n * @maxSize 100\n */\n products?: V3Product[];\n /** Whether to return the full product entity in the response. */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response. Relevant only if `return_entity` true.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface DoNotCallBulkCreateProductsResponse {\n /**\n * Products created by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface V3BulkProductResult {\n /** Bulk action metadata for product. */\n itemMetadata?: CommonItemMetadata;\n /**\n * Full product entity.\n *\n * Returned only if `returnEntity: true` is passed in the request.\n */\n item?: V3Product;\n}\n\nexport interface CommonItemMetadata {\n /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface BulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface DoNotCallBulkUpdateProductsRequest {\n /**\n * List of products to be updated.\n * @minSize 1\n * @maxSize 100\n */\n products?: MaskedProduct[];\n /** Whether to return the full product entity in the response. */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response. Relevant only if `return_entity` true.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface MaskedProduct {\n /** product to be updated, may be partial. */\n product?: V3Product;\n}\n\nexport interface DoNotCallBulkUpdateProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpdateProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"name\": \"value1\",\n * \"categoryIds\":{\"$in\":[\"categoryId1\", \"categoryId2\"]}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /** Product with new field values. */\n product?: V3Product;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkUpdateProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkDeleteProductsRequest {\n /**\n * IDs of products to be deleted.\n * @minLength 1\n * @maxLength 36\n * @minSize 1\n * @maxSize 100\n */\n productIds?: string[];\n}\n\nexport interface BulkDeleteProductsResponse {\n /**\n * Products deleted by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkProductResult {\n /** Information about successful action or error for failure. */\n itemMetadata?: CommonItemMetadata;\n}\n\nexport interface BulkDeleteProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"actualPriceRange.minValue\": {\"$lte\": 5.99}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkDeleteProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkAddInfoSectionsToProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"actualPriceRange.minValue\": {\"$lte\": 5.99}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /**\n * Info sections to be added\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds?: string[];\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkAddInfoSectionsToProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface FulfillerDeleted {\n /** @format GUID */\n _id?: string;\n}\n\nexport interface BulkAddInfoSectionsToProductsRequest {\n /**\n * Products to be updated with id and revision.\n * @minSize 1\n * @maxSize 100\n */\n products?: ProductIdWithRevision[];\n /**\n * Products to be updated with id and revision.\n * Info section to be added\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds?: string[];\n /** Whether to return all updated product entities in the response. Default: false */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface ProductIdWithRevision {\n /**\n * ID of product.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /** The revision of the Product */\n revision?: string;\n}\n\nexport interface BulkAddInfoSectionsToProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsByFilterRequest {\n /**\n * Filter object in the following format:\n * `\"filter\" : {\n * \"name\": \"value1\",\n * \"categoryIds\":{\"$in\":[\"categoryId1\", \"categoryId2\"]}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n */\n filter?: Record<string, any> | null;\n /**\n * Info sections to be removed\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds?: string[];\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsRequest {\n /**\n * Products to be updated with id and revision.\n * @minSize 1\n * @maxSize 100\n */\n products?: ProductIdWithRevision[];\n /**\n * Info section to be removed.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds?: string[];\n /** Whether to return all updated product entities in the response. Default: false */\n returnEntity?: boolean;\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 5\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: V3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpdateVariantsByFilterRequest {\n /** Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */\n filter?: Record<string, any> | null;\n /** Variant with new field values. */\n variant?: Variant;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n}\n\nexport interface BulkUpdateVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkAdjustProductVariantsByFilterRequest {\n /** Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$contains` */\n filter?: Record<string, any> | null;\n /** The amount or percentage to change the variants cost by */\n cost?: AdjustValue;\n /** Defines rounding strategy of new calculated prices. Default: CURRENCY_PRECISION. */\n rounding?: RoundingStrategyWithLiterals;\n /** Free text to match in searchable fields */\n search?: SearchDetails;\n /** Actual price adjustment. */\n actualPrice?: AdjustValue;\n /** Compare at price adjustment. */\n compareAtPrice?: AdjustValue;\n /**\n * Set variant actualPrice from compareAtPrice by applying provided discount to it.\n * if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.\n * 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%).\n */\n compareAtPriceDiscount?: UnsignedAdjustValue;\n}\n\nexport interface AdjustValue extends AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\nexport enum RoundingStrategy {\n /** Undefined rounding strategy. */\n UNKNOWN_ROUNDING_STRATEGY = 'UNKNOWN_ROUNDING_STRATEGY',\n /**\n * Calculated prices are saved without rounding to keep the maximum possible precision. It's a good idea to round numbers before displaying them.\n * For example, input $3.5555 -> saved value $3.5555\n */\n NO_ROUNDING = 'NO_ROUNDING',\n /**\n * Calculated prices are rounded according to currency precision.\n * For example:, input $3.5555 -> saved value $3.56, input ¥3.5555 -> saved value ¥4\n */\n CURRENCY_PRECISION = 'CURRENCY_PRECISION',\n /**\n * Calculated prices are rounded to nearest whole number.\n * For example, input $3.5555 -> saved value $4\n */\n NEAREST_WHOLE_NUMBER = 'NEAREST_WHOLE_NUMBER',\n}\n\n/** @enumType */\nexport type RoundingStrategyWithLiterals =\n | RoundingStrategy\n | 'UNKNOWN_ROUNDING_STRATEGY'\n | 'NO_ROUNDING'\n | 'CURRENCY_PRECISION'\n | 'NEAREST_WHOLE_NUMBER';\n\nexport interface UnsignedAdjustValue\n extends UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\nexport interface BulkAdjustProductVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkInventoryItemAction {\n /**\n * Inventory items.\n * @maxSize 1000\n */\n inventoryItems?: InventoryItem[];\n /** Type of bulk inventory changed event - created, updated or deleted */\n eventType?: EventTypeWithLiterals;\n}\n\n/** Inventory Item. */\nexport interface InventoryItem extends InventoryItemTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n /**\n * Inventory item ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the inventory item is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the inventory item.\n *\n * Ignored when creating an inventory item.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the inventory item was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the inventory item was created.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Variant ID.\n * @format GUID\n * @immutable\n */\n variantId?: string;\n /**\n * Stores location ID.\n * @format GUID\n * @immutable\n */\n locationId?: string | null;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n */\n productId?: string;\n /**\n * Whether the quantity is being tracked.\n * @readonly\n */\n trackQuantity?: boolean;\n /**\n * Inventory item availability status.\n *\n * Supported values:\n * + OUT_OF_STOCK: Product is out of stock.\n * + IN_STOCK: Product is in stock. See `quantity` field for exact amount in stock.\n * + PREORDER: Product is only available for preorder. See `preorderInfo` field for more info.\n * @readonly\n */\n availabilityStatus?: AvailabilityStatusWithLiterals;\n /** Item preorder info. */\n preorderInfo?: PreorderInfo;\n /**\n * Product.\n * @readonly\n */\n product?: Product;\n /**\n * Custom field data for the inventory item object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the app dashboard before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n}\n\n/** @oneof */\nexport interface InventoryItemTrackingMethodOneOf {\n /**\n * Tracking method - in stock.\n *\n * When set to `true`, the item is available for sale without a quantity limit.\n */\n inStock?: boolean;\n /**\n * Tracking method - quantity left in inventory.\n *\n * Quantity can be negative when decrementing inventory for an order that has already been paid.\n * @min -99999\n * @max 99999\n */\n quantity?: number;\n}\n\nexport enum AvailabilityStatus {\n UNKNOWN_AVAILABILITY_STATUS = 'UNKNOWN_AVAILABILITY_STATUS',\n /** Product is out of stock. */\n OUT_OF_STOCK = 'OUT_OF_STOCK',\n /** Product is in stock. See `quantity` field for exact amount in stock. */\n IN_STOCK = 'IN_STOCK',\n /** Product is only available for preorder. See `preorderInfo` field for more info. */\n PREORDER = 'PREORDER',\n}\n\n/** @enumType */\nexport type AvailabilityStatusWithLiterals =\n | AvailabilityStatus\n | 'UNKNOWN_AVAILABILITY_STATUS'\n | 'OUT_OF_STOCK'\n | 'IN_STOCK'\n | 'PREORDER';\n\nexport interface Product {\n /**\n * Product name.\n * @maxLength 80\n */\n name?: string | null;\n /**\n * List of category IDs that this product is included in directly.\n * @format GUID\n * @maxSize 2000\n */\n directCategoryIds?: string[];\n /**\n * Variant name.\n * @minLength 1\n * @maxLength 250\n */\n variantName?: string | null;\n /**\n * Variant SKU (stock keeping unit).\n * @minLength 1\n * @maxLength 40\n */\n variantSku?: string | null;\n /** Variant visible. */\n variantVisible?: boolean | null;\n}\n\nexport enum EventType {\n UNKNOWN = 'UNKNOWN',\n CREATED = 'CREATED',\n UPDATED = 'UPDATED',\n DELETED = 'DELETED',\n}\n\n/** @enumType */\nexport type EventTypeWithLiterals =\n | EventType\n | 'UNKNOWN'\n | 'CREATED'\n | 'UPDATED'\n | 'DELETED';\n\nexport interface CalculateProductInventorPreorderStatusAsyncRequest {\n /**\n * ID of the product to calculate inventory for\n * @format GUID\n */\n productId?: string;\n}\n\nexport interface CalculateProductInventorPreorderStatusAsyncResponse {}\n\nexport interface CreateProductRequest {\n /**\n * Product to create.\n *\n * At least 1 variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n */\n product: V3Product;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface CreateProductResponse {\n /** Created product. */\n product?: V3Product;\n}\n\nexport interface VariantsNotAlignedWithProduct {\n /**\n * Variants not aligned with product\n * @maxSize 1000\n */\n variants?: VariantNotAlignedWithProduct[];\n}\n\nexport interface VariantNotAlignedWithProduct {\n /**\n * variant id\n * @format GUID\n */\n variantId?: string;\n /**\n * what's wrong with this specific variant\n * @maxLength 200\n */\n errorDescription?: string;\n}\n\nexport interface CreateProductWithInventoryRequest {\n /**\n * Product to create with inventory.\n *\n * At least one variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n */\n product: ProductWithInventory;\n /**\n * Whether to return inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface CreateProductWithInventoryResponse {\n /** Created product. */\n product?: V3Product;\n /** Inventories created by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface BulkInventoryItemResults {\n /**\n * Inventories modified by bulk action.\n * @maxSize 1000\n */\n results?: BulkInventoryItemResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n /** Error details in case of failed action. */\n error?: ApplicationError;\n}\n\nexport interface BulkInventoryItemResult {\n /** Bulk action metadata for inventory item. */\n itemMetadata?: ItemMetadata;\n /**\n * Full inventory item entity.\n *\n * Returned only if `returnEntity: true` is passed in the request.\n */\n item?: InventoryItem;\n}\n\nexport interface ItemMetadata {\n /**\n * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n * @format GUID\n */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface WixCommonBulkActionMetadata {\n /** Number of items that were successfully processed. */\n totalSuccesses?: number;\n /** Number of items that couldn't be processed. */\n totalFailures?: number;\n /** Number of failures without details because detailed failure threshold was exceeded. */\n undetailedFailures?: number;\n}\n\nexport interface UpdateProductRequest {\n /** Product to update. */\n product: V3Product;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface UpdateProductResponse {\n /** Updated product. */\n product?: V3Product;\n}\n\nexport interface UpdateProductWithInventoryRequest {\n /** Product to update. */\n product: ProductWithInventory;\n /**\n * Whether to return the full inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface UpdateProductWithInventoryResponse {\n /** Updated product. */\n product?: V3Product;\n /** Inventories updated by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface BulkCreateProductsRequest {\n /**\n * List of products to create.\n * @minSize 1\n * @maxSize 100\n */\n products: V3Product[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkCreateProductsResponse {\n /**\n * Products created by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface CatalogV3BulkProductResult {\n /** Information about successful action or error for failure. */\n itemMetadata?: UpstreamWixCommonItemMetadata;\n /**\n * Full product entity.\n *\n * Returned only if `returnEntity: true` is passed in the request.\n */\n item?: V3Product;\n}\n\nexport interface UpstreamWixCommonItemMetadata {\n /**\n * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n * @minLength 1\n * @maxLength 36\n */\n _id?: string | null;\n /** Index of the item within the request array. Allows for correlation between request and response items. */\n originalIndex?: number;\n /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n success?: boolean;\n /** Details about the error in case of failure. */\n error?: ApplicationError;\n}\n\nexport interface InvalidDigitalFileIds {\n /**\n * ids of digital files which caused errors.\n * @maxSize 1000\n * @minLength 1\n * @maxLength 100\n */\n ids?: string[];\n}\n\nexport interface BulkCreateProductsWithInventoryRequest {\n /**\n * List of products to create with inventory.\n * @minSize 1\n * @maxSize 100\n */\n products: ProductWithInventory[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface BulkCreateProductsWithInventoryResponse {\n /** Products created by bulk action. */\n productResults?: BulkProductResults;\n /** Inventories created by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface BulkProductResults {\n /**\n * Products modified by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkUpdateProductsRequest {\n /**\n * List of products to update.\n * @minSize 1\n * @maxSize 100\n */\n products: V3MaskedProduct[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3MaskedProduct {\n /** Product to update. */\n product?: V3Product;\n}\n\nexport interface BulkUpdateProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkUpdateProductsWithInventoryRequest {\n /**\n * List of products to update.\n * @minSize 1\n * @maxSize 100\n */\n products: MaskedProductWithInventory[];\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface MaskedProductWithInventory {\n /** Product to update. */\n product?: ProductWithInventory;\n}\n\nexport interface BulkUpdateProductsWithInventoryResponse {\n /** Products updated by bulk action. */\n productResults?: BulkProductResults;\n /** Inventories updated by bulk action. */\n inventoryResults?: BulkInventoryItemResults;\n}\n\nexport interface V3BulkUpdateProductsByFilterRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Product to update. */\n product: V3Product;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface WixCommonSearchDetails {\n /** Defines how separate search terms in `expression` are combined */\n mode?: CommonSearchDetailsModeWithLiterals;\n /**\n * Search term or expression\n * @maxLength 100\n */\n expression?: string | null;\n /**\n * 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`.\n * @maxLength 200\n * @maxSize 20\n */\n fields?: string[];\n /** 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. */\n fuzzy?: boolean;\n}\n\nexport enum CommonSearchDetailsMode {\n /** Any of the search terms must be present */\n OR = 'OR',\n /** All search terms must be present */\n AND = 'AND',\n}\n\n/** @enumType */\nexport type CommonSearchDetailsModeWithLiterals =\n | CommonSearchDetailsMode\n | 'OR'\n | 'AND';\n\nexport interface V3BulkUpdateProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3DeleteProductRequest {\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n */\n productId: string;\n}\n\nexport interface V3DeleteProductResponse {}\n\nexport interface V3BulkDeleteProductsRequest {\n /**\n * IDs of products to delete.\n * @minLength 1\n * @maxLength 36\n * @minSize 1\n * @maxSize 100\n */\n productIds: string[];\n}\n\nexport interface V3BulkDeleteProductsResponse {\n /**\n * Products deleted by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: BulkDeleteProductsResponseBulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkDeleteProductsResponseBulkProductResult {\n /** Bulk action metadata for products. */\n itemMetadata?: UpstreamWixCommonItemMetadata;\n}\n\nexport interface V3BulkDeleteProductsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface V3BulkDeleteProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3GetProductRequest {\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n */\n productId: string;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface V3GetProductResponse {\n /** Product. */\n product?: V3Product;\n}\n\nexport interface V3GetProductBySlugRequest {\n /**\n * Product slug.\n * @minLength 1\n * @maxLength 100\n */\n slug: string;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\nexport interface V3GetProductBySlugResponse {\n /** Product. */\n product?: V3Product;\n}\n\nexport interface V3SearchProductsRequest {\n /** Search options. */\n search?: CommonCursorSearch;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CommonCursorSearch\n extends CommonCursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 10\n */\n sort?: WixCommonSorting[];\n /**\n * 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.\n * @maxSize 10\n */\n aggregations?: WixCommonAggregation[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /**\n * 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.\n * Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\".\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CommonCursorSearchPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n}\n\nexport interface WixCommonSorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: WixCommonSortOrderWithLiterals;\n /**\n * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by\n * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked.\n *\n * If multiple filters are provided, they are combined with AND operator.\n *\n * Example:\n * Given we have document like {\"id\": \"1\", \"nestedField\": [{\"price\": 10, \"region\": \"EU\"}, {\"price\": 20, \"region\": \"US\"}]}\n * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be\n * { fieldName: \"nestedField.price\", \"select_items_by\": [{\"nestedField.region\": \"US\"}] }\n * @maxSize 10\n */\n selectItemsBy?: Record<string, any>[] | null;\n}\n\nexport enum WixCommonSortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type WixCommonSortOrderWithLiterals =\n | WixCommonSortOrder\n | 'ASC'\n | 'DESC';\n\nexport interface WixCommonAggregation extends WixCommonAggregationKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n /** 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`. */\n nested?: CommonAggregationNestedAggregation;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n type?: WixCommonAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface WixCommonAggregationKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n /** 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`. */\n nested?: CommonAggregationNestedAggregation;\n}\n\nexport interface AggregationRangeAggregationRangeBucket {\n /** Inclusive lower bound of the range. Required if `to` is not provided. */\n from?: number | null;\n /** Exclusive upper bound of the range. Required if `from` is not provided. */\n to?: number | null;\n}\n\nexport enum AggregationValueAggregationSortType {\n /** Number of matches in the results. */\n COUNT = 'COUNT',\n /** Alphabetically by the field value. */\n VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type AggregationValueAggregationSortTypeWithLiterals =\n | AggregationValueAggregationSortType\n | 'COUNT'\n | 'VALUE';\n\nexport enum AggregationValueAggregationSortDirection {\n /** Descending order. */\n DESC = 'DESC',\n /** Ascending order. */\n ASC = 'ASC',\n}\n\n/** @enumType */\nexport type AggregationValueAggregationSortDirectionWithLiterals =\n | AggregationValueAggregationSortDirection\n | 'DESC'\n | 'ASC';\n\nexport enum AggregationValueAggregationMissingValues {\n /** Exclude missing values from the aggregation results. */\n EXCLUDE = 'EXCLUDE',\n /** Include missing values in the aggregation results. */\n INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type AggregationValueAggregationMissingValuesWithLiterals =\n | AggregationValueAggregationMissingValues\n | 'EXCLUDE'\n | 'INCLUDE';\n\nexport interface AggregationValueAggregationIncludeMissingValuesOptions {\n /**\n * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n * @maxLength 20\n */\n addToBucket?: string;\n}\n\nexport enum WixCommonScalarType {\n UNKNOWN_SCALAR_TYPE = 'UNKNOWN_SCALAR_TYPE',\n /** Total number of distinct values. */\n COUNT_DISTINCT = 'COUNT_DISTINCT',\n /** Minimum value. */\n MIN = 'MIN',\n /** Maximum value. */\n MAX = 'MAX',\n}\n\n/** @enumType */\nexport type WixCommonScalarTypeWithLiterals =\n | WixCommonScalarType\n | 'UNKNOWN_SCALAR_TYPE'\n | 'COUNT_DISTINCT'\n | 'MIN'\n | 'MAX';\n\nexport interface CommonAggregationValueAggregation\n extends CommonAggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: AggregationValueAggregationIncludeMissingValuesOptions;\n /** Sort type. */\n sortType?: AggregationValueAggregationSortTypeWithLiterals;\n /** Sort direction. */\n sortDirection?: AggregationValueAggregationSortDirectionWithLiterals;\n /**\n * Number of aggregation results to return.\n * Min: `1`\n * Max: `250`\n * Default: `10`\n */\n limit?: number | null;\n /**\n * Whether to include or exclude missing values in the aggregation results.\n * Default: `EXCLUDE`.\n */\n missingValues?: AggregationValueAggregationMissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface CommonAggregationValueAggregationOptionsOneOf {\n /** Options for including missing values in results. */\n includeOptions?: AggregationValueAggregationIncludeMissingValuesOptions;\n}\n\nexport enum AggregationNestedAggregationNestedAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type AggregationNestedAggregationNestedAggregationTypeWithLiterals =\n | AggregationNestedAggregationNestedAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM';\n\nexport interface CommonAggregationRangeAggregation {\n /**\n * List of range buckets. During aggregation each entity is placed in the first bucket its value falls into, based on the provided range bounds.\n * @maxSize 50\n */\n buckets?: AggregationRangeAggregationRangeBucket[];\n}\n\nexport interface CommonAggregationScalarAggregation {\n /** Operator type for the scalar aggregation. */\n type?: WixCommonScalarTypeWithLiterals;\n}\n\nexport interface CommonAggregationDateHistogramAggregation {\n /** Interval for date histogram aggregation. */\n interval?: AggregationDateHistogramAggregationIntervalWithLiterals;\n}\n\nexport enum AggregationDateHistogramAggregationInterval {\n UNKNOWN_INTERVAL = 'UNKNOWN_INTERVAL',\n /** Yearly interval */\n YEAR = 'YEAR',\n /** Monthly interval */\n MONTH = 'MONTH',\n /** Weekly interval */\n WEEK = 'WEEK',\n /** Daily interval */\n DAY = 'DAY',\n /** Hourly interval */\n HOUR = 'HOUR',\n /** Minute interval */\n MINUTE = 'MINUTE',\n /** Second interval */\n SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type AggregationDateHistogramAggregationIntervalWithLiterals =\n | AggregationDateHistogramAggregationInterval\n | 'UNKNOWN_INTERVAL'\n | 'YEAR'\n | 'MONTH'\n | 'WEEK'\n | 'DAY'\n | 'HOUR'\n | 'MINUTE'\n | 'SECOND';\n\nexport interface AggregationNestedAggregationNestedAggregationItem\n extends AggregationNestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n /**\n * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n * @maxLength 100\n */\n name?: string | null;\n /** Type of aggregation to perform. The matching aggregation field must be passed. */\n type?: AggregationNestedAggregationNestedAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationNestedAggregationNestedAggregationItemKindOneOf {\n /** 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. */\n value?: CommonAggregationValueAggregation;\n /** 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. */\n range?: CommonAggregationRangeAggregation;\n /** 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`. */\n scalar?: CommonAggregationScalarAggregation;\n /** 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. */\n dateHistogram?: CommonAggregationDateHistogramAggregation;\n}\n\nexport enum WixCommonAggregationType {\n UNKNOWN_AGGREGATION_TYPE = 'UNKNOWN_AGGREGATION_TYPE',\n /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n VALUE = 'VALUE',\n /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n RANGE = 'RANGE',\n /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n SCALAR = 'SCALAR',\n /** 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.). */\n DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type WixCommonAggregationTypeWithLiterals =\n | WixCommonAggregationType\n | 'UNKNOWN_AGGREGATION_TYPE'\n | 'VALUE'\n | 'RANGE'\n | 'SCALAR'\n | 'DATE_HISTOGRAM'\n | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */\nexport interface CommonAggregationNestedAggregation {\n /**\n * Flattened list of aggregations, where each next aggregation is nested within previous one.\n * @minSize 2\n * @maxSize 3\n */\n nestedAggregations?: AggregationNestedAggregationNestedAggregationItem[];\n}\n\nexport interface CommonCursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface V3SearchProductsResponse {\n /** List of products. */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: CommonCursorPagingMetadata;\n /** Aggregation data. */\n aggregationData?: CommonAggregationData;\n}\n\nexport interface CommonCursorPagingMetadata {\n /** Number of items returned in the response. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: CommonCursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface CommonCursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface CommonAggregationData {\n /**\n * List of the aggregated data results.\n * @maxSize 10000\n */\n results?: AggregationDataAggregationResults[];\n}\n\nexport interface ValueResultsValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 100\n */\n value?: string;\n /** Number of entities with this value. */\n count?: number;\n}\n\nexport interface RangeResultsRangeAggregationResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Total number of entities in this range. */\n count?: number;\n}\n\nexport interface AggregationResultsNestedAggregationResults\n extends AggregationResultsNestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n /**\n * Unique, caller-defined aggregation name, identifiable by the requested aggregation `name`.\n * @maxLength 100\n */\n name?: string;\n /** Aggregation type. */\n type?: WixCommonAggregationTypeWithLiterals;\n /**\n * Field which the data was aggregated by.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsNestedAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n}\n\nexport interface AggregationResultsValueResults {\n /**\n * List of value aggregations.\n * @maxSize 250\n */\n results?: ValueResultsValueAggregationResult[];\n}\n\nexport interface AggregationResultsRangeResults {\n /**\n * List of ranges returned in same order as requested.\n * @maxSize 50\n */\n results?: RangeResultsRangeAggregationResult[];\n}\n\nexport interface AggregationDataAggregationResultsScalarResult {\n /** Type of scalar aggregation. */\n type?: WixCommonScalarTypeWithLiterals;\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface GroupByValueResultsNestedValueAggregationResult {\n /**\n * Value of the field.\n * @maxLength 1000\n */\n value?: string;\n /** Nested aggregations. */\n nestedResults?: AggregationResultsNestedAggregationResults;\n}\n\nexport interface NestedResultsValueResult {\n /**\n * Value of the field\n * @maxLength 1000\n */\n value?: string;\n /** Number of entities with this value. */\n count?: number | null;\n}\n\nexport interface NestedResultsRangeResult {\n /** Inclusive lower bound of the range. */\n from?: number | null;\n /** Exclusive upper bound of the range. */\n to?: number | null;\n /** Number of entities in this range. */\n count?: number | null;\n}\n\nexport interface NestedResultsScalarResult {\n /** Value of the scalar aggregation. */\n value?: number;\n}\n\nexport interface NestedResultsNestedResultValue\n extends NestedResultsNestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: NestedResultsValueResult;\n /** Range aggregation result. */\n range?: NestedResultsRangeResult;\n /** Scalar aggregation result. */\n scalar?: NestedResultsScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: NestedResultsValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultsNestedResultValueResultOneOf {\n /** Value aggregation result. */\n value?: NestedResultsValueResult;\n /** Range aggregation result. */\n range?: NestedResultsRangeResult;\n /** Scalar aggregation result. */\n scalar?: NestedResultsScalarResult;\n /** Date histogram aggregation result. */\n dateHistogram?: NestedResultsValueResult;\n}\n\nexport interface NestedResultsResults {\n /** List of nested aggregations. */\n results?: Record<string, NestedResultsNestedResultValue>;\n}\n\nexport interface DateHistogramResultsDateHistogramResult {\n /**\n * Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n * @maxLength 100\n */\n value?: string;\n /** Number of entities in the bucket. */\n count?: number;\n}\n\nexport interface AggregationResultsGroupByValueResults {\n /**\n * List of value aggregations.\n * @maxSize 1000\n */\n results?: GroupByValueResultsNestedValueAggregationResult[];\n}\n\nexport interface AggregationResultsDateHistogramResults {\n /**\n * List of date histogram aggregations.\n * @maxSize 200\n */\n results?: DateHistogramResultsDateHistogramResult[];\n}\n\n/** Results of `NESTED` aggregation type in a flattened array, identifiable by the requested aggregation `name`. */\nexport interface AggregationResultsNestedResults {\n /**\n * List of nested aggregations.\n * @maxSize 1000\n */\n results?: NestedResultsResults[];\n}\n\nexport interface AggregationDataAggregationResults\n extends AggregationDataAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: AggregationResultsGroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: AggregationResultsDateHistogramResults;\n /** Nested aggregation results. */\n nested?: AggregationResultsNestedResults;\n /**\n * Aggregation name, returned in `aggregations.results.name`.\n * @maxLength 100\n */\n name?: string;\n /** Aggregation type. Must align with the corresponding aggregation field. */\n type?: WixCommonAggregationTypeWithLiterals;\n /**\n * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n * @maxLength 200\n */\n fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationDataAggregationResultsResultOneOf {\n /** Value aggregation results. */\n values?: AggregationResultsValueResults;\n /** Range aggregation results. */\n ranges?: AggregationResultsRangeResults;\n /** Scalar aggregation results. */\n scalar?: AggregationDataAggregationResultsScalarResult;\n /** Group by value aggregation results. */\n groupedByValue?: AggregationResultsGroupByValueResults;\n /** Date histogram aggregation results. */\n dateHistogram?: AggregationResultsDateHistogramResults;\n /** Nested aggregation results. */\n nested?: AggregationResultsNestedResults;\n}\n\nexport interface V3QueryProductsRequest {\n /** Query options. */\n query?: CommonCursorQuery;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface CommonCursorQuery extends CommonCursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 5\n */\n sort?: WixCommonSorting[];\n}\n\n/** @oneof */\nexport interface CommonCursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CommonCursorPaging;\n}\n\nexport interface V3QueryProductsResponse {\n /** List of products. */\n products?: V3Product[];\n /** Paging metadata. */\n pagingMetadata?: CommonCursorPagingMetadata;\n}\n\nexport interface V3CountProductsRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /**\n * Whether to return non-visible products (`visible:false`). Your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n *\n * Default: `false`\n */\n returnNonVisibleProducts?: boolean;\n}\n\nexport interface V3CountProductsResponse {\n /** Total number of products. */\n count?: number;\n}\n\nexport interface BulkUpdateProductVariantsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /** Variant to update. */\n variant: Variant;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface BulkUpdateProductVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkAdjustProductVariantsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /** Cost adjustment. */\n cost?: V3AdjustValue;\n /**\n * Rounding strategy of new calculated prices.\n *\n * + `NO_ROUNDING`: Calculated prices will be saved without rounding to keep max possible precision.\n * + `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`.\n * + `NEAREST_WHOLE_NUMBER`: Calculated prices will be rounded to the nearest whole number.\n */\n rounding?: BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /** Actual price adjustment. */\n actualPrice?: V3AdjustValue;\n /** Compare at price adjustment. */\n compareAtPrice?: V3AdjustValue;\n /**\n * Set variant actualPrice from compareAtPrice by applying provided discount to it.\n * if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.\n * 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%).\n */\n compareAtPriceDiscount?: V3UnsignedAdjustValue;\n}\n\nexport interface V3AdjustValue extends V3AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface V3AdjustValueAdjustValueOneOf {\n /**\n * A decimal value to increase or reduce from the original value, can be negative.\n * @decimalValue options { gte:-999999999, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to increase or reduce from the current value, can be negative.\n * @min -100\n * @max 1000\n */\n percentage?: number;\n}\n\nexport enum BulkAdjustProductVariantsByFilterRequestRoundingStrategy {\n UNKNOWN_ROUNDING_STRATEGY = 'UNKNOWN_ROUNDING_STRATEGY',\n /**\n * Calculated prices will be saved without rounding to keep max possible precision. It's still good idea to round numbers before displaying them.\n * Example: input $3.5555 -> saved value $3.5555\n */\n NO_ROUNDING = 'NO_ROUNDING',\n /**\n * Calculated prices will be rounded according to currency precision.\n * Example: input $3.5555 -> saved value $3.56, input ¥3.5555 -> saved value ¥4\n */\n CURRENCY_PRECISION = 'CURRENCY_PRECISION',\n /**\n * Calculated prices will be rounded to nearest whole number.\n * Example: input $3.5555 -> saved value $4\n */\n NEAREST_WHOLE_NUMBER = 'NEAREST_WHOLE_NUMBER',\n}\n\n/** @enumType */\nexport type BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals =\n\n | BulkAdjustProductVariantsByFilterRequestRoundingStrategy\n | 'UNKNOWN_ROUNDING_STRATEGY'\n | 'NO_ROUNDING'\n | 'CURRENCY_PRECISION'\n | 'NEAREST_WHOLE_NUMBER';\n\nexport interface V3UnsignedAdjustValue\n extends V3UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\n/** @oneof */\nexport interface V3UnsignedAdjustValueAdjustValueOneOf {\n /**\n * A decimal value to reduce from the original value.\n * @decimalValue options { gte:0, lte:999999999, maxScale:2 }\n */\n amount?: string;\n /**\n * The percentage value to reduce from the original value.\n * @max 100\n */\n percentage?: number;\n}\n\nexport interface V3BulkAdjustProductVariantsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /**\n * IDs of the info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsRequest {\n /**\n * List of product IDs and revisions.\n * @minSize 1\n * @maxSize 100\n */\n products: V3ProductIdWithRevision[];\n /**\n * List of IDs of info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3ProductIdWithRevision {\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n */\n productId?: string;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n */\n revision?: string;\n}\n\nexport interface V3BulkAddInfoSectionsToProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsByFilterRequest {\n /** Filter object. */\n filter: Record<string, any> | null;\n /**\n * IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsRequest {\n /**\n * List of product IDs and revisions.\n * @minSize 1\n * @maxSize 100\n */\n products: V3ProductIdWithRevision[];\n /**\n * List of IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3BulkRemoveInfoSectionsFromProductsResponse {\n /**\n * Products updated by bulk action.\n * @minSize 1\n * @maxSize 100\n */\n results?: CatalogV3BulkProductResult[];\n /** Bulk action metadata. */\n bulkActionMetadata?: WixCommonBulkActionMetadata;\n}\n\nexport interface BulkAddProductsToCategoriesByFilterRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories to which products will be added.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface BulkAddProductsToCategoriesByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkRemoveProductsFromCategoriesByFilterRequest {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories from which products will be removed.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\nexport interface BulkRemoveProductsFromCategoriesByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata..\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface GetAllProductsCategoryRequest {}\n\nexport interface GetAllProductsCategoryResponse {\n /**\n * Id of the \"All Products\" category automatically assigned to all products.\n * @format GUID\n */\n categoryId?: string;\n /** Category tree reference details. */\n treeReference?: TreeReference;\n}\n\nexport interface TreeReference {\n /**\n * Namespace of the app that manages the tree.\n *\n * For example, `\"@wix/stores\"`, `\"@bookings/bookingslist\"`, `\"@achievements/quizzes\"`.\n * @minLength 4\n * @maxLength 150\n */\n appNamespace?: string;\n /**\n * Tree key. You must pass this when a single app manages more than one tree.\n * @minLength 1\n * @maxLength 44\n */\n treeKey?: string | null;\n}\n\n/** @docsIgnore */\nexport type CreateProductApplicationErrors =\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_MEDIA_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ONLY_SPACES_STRING_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type CreateProductValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type CreateProductWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type CreateProductWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type UpdateProductApplicationErrors =\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type UpdateProductValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type UpdateProductWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_RESTRICTION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type UpdateProductWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkCreateProductsApplicationErrors =\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: InvalidDigitalFileIds;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCTS_LIMIT_EXCEEDED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_MEDIA_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ONLY_SPACES_STRING_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkCreateProductsValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'ID_NOT_ALLOWED_IN_REQUEST';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkCreateProductsWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATIONS_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_OPTION_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MODIFIER_CHOICE_NAME_AND_TYPE_REQUIRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkCreateProductsWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'ID_NOT_ALLOWED_IN_REQUEST';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsApplicationErrors =\n | {\n code?: 'TOO_MANY_VARIANTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'MISSING_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_VARIANT_OPTION_CHOICE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_PRODUCT_OPTIONS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_DEFAULT_VARIANT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'VARIANTS_ARE_NOT_ALIGNED_WITH_PRODUCT';\n description?: string;\n data?: VariantsNotAlignedWithProduct;\n }\n | {\n code?: 'DUPLICATE_SLUG_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DIGITAL_FILE_NOT_FOUND_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BARCODE_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_BARCODE_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SKU_ALREADY_EXIST_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'DUPLICATE_SKU_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsValidationErrors =\n | {\n ruleName?: 'VARIANTS_TYPED_PROPERTIES_ARE_NOT_ALIGNED';\n }\n | {\n ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DIGITAL_PRODUCT_CANNOT_BE_VISIBLE_IN_POS';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n }\n | {\n ruleName?: 'DUPLICATE_MEDIA_ERROR';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsWithInventoryApplicationErrors =\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PRODUCT_RESTRICTION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PREORDER_VALIDATION_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TOO_MANY_OPTIONS_IN_REQUEST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COMPARE_AT_PRICE_LOWER_THAN_ACTUAL_PRICE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsWithInventoryValidationErrors =\n | {\n ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n }\n | {\n ruleName?: 'BRAND_MISSING_ID';\n }\n | {\n ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';\n }\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsByFilterApplicationErrors =\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'INVALID_PRODUCT_TYPE_FOR_SUBSCRIPTION';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ERROR_ALL_SUBSCRIPTIONS_HIDDEN_FOR_SUBSCRIPTION_ONLY_PRODUCT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_SUBSCRIPTION_DISCOUNT_AMOUNT';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'SUBSCRIPTION_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'BRAND_CREATION_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'RIBBON_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INFO_SECTION_ERROR_OCCURRED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CUSTOMIZATION_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADD_CUSTOMIZATION_CHOICES_FAILED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CHOICE_NOT_EXIST';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductsByFilterValidationErrors =\n | {\n ruleName?: 'PRICE_PER_UNIT_NOT_ALIGNED';\n }\n | {\n ruleName?: 'MISSING_OPTIONS_ON_UPDATE_VARIANTS';\n }\n | {\n ruleName?: 'SUBSCRIPTION_INVALID_AUTO_RENEWAL';\n }\n | {\n ruleName?: 'DESCRIPTION_SIZE_TOO_BIG';\n };\n/** @docsIgnore */\nexport type BulkDeleteProductsValidationErrors = {\n ruleName?: 'DUPLICATE_PRODUCT_IDS_REQUEST';\n};\n/** @docsIgnore */\nexport type GetProductApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type GetProductBySlugApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type SearchProductsApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type QueryProductsApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type CountProductsApplicationErrors =\n | {\n code?: 'NO_PERMISSION_TO_READ_MERCHANT_DATA';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_PERMISSION_TO_INCLUDE_NOT_VISIBLE_PRODUCTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductVariantsByFilterApplicationErrors =\n | {\n code?: 'FIELD_MASK_VALUE_NOT_SUPPORTED';\n description?: string;\n data?: UnsupportedFieldMasks;\n }\n | {\n code?: 'VARIANT_ID_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'FIELD_MASK_WITH_FIELD_NOT_PASSED_ERROR';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkUpdateProductVariantsByFilterValidationErrors =\n | {\n ruleName?: 'EMPTY_FIELD_MASK';\n }\n | {\n ruleName?: 'CANNOT_REMOVE_VARIANT_ACTUAL_PRICE';\n };\n/** @docsIgnore */\nexport type BulkAdjustProductVariantsByFilterApplicationErrors =\n | {\n code?: 'ADJUSTED_ACTUAL_PRICE_OUT_OF_RANGE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADJUSTED_COMPARE_AT_PRICE_OUT_OF_RANGE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'ADJUSTED_COST_OUT_OF_RANGE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'CANNOT_ADJUST_PRICE_RESTRICTED_VARIANT';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type BulkAdjustProductVariantsByFilterValidationErrors =\n | {\n ruleName?: 'NO_VARIANT_ADJUSTMENTS_PASSED';\n }\n | {\n ruleName?: 'INVALID_PRICES_ADJUSTMENTS';\n };\n/** @docsIgnore */\nexport type BulkAddInfoSectionsToProductsByFilterApplicationErrors = {\n code?: 'TOO_MANY_INFO_SECTIONS_ERROR';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type BulkAddInfoSectionsToProductsApplicationErrors = {\n code?: 'TOO_MANY_INFO_SECTIONS_ERROR';\n description?: string;\n data?: Record<string, any>;\n};\n\nexport interface BaseEventMetadata {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n}\n\nexport interface EventMetadata extends BaseEventMetadata {\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * 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.\n * 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.\n */\n entityEventSequence?: string | null;\n}\n\nexport interface ProductCreatedEnvelope {\n entity: V3Product;\n metadata: EventMetadata;\n}\n\n/** @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read products in v3 catalog\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Product v3 read admin\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ_ADMIN\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.PRODUCT_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.product_created\n * @serviceIdentifier com.wix.stores.catalog.product.api.v3.ProductService\n * @slug created\n */\nexport declare function onProductCreated(\n handler: (event: ProductCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ProductDeletedEnvelope {\n entity: V3Product;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a product is deleted.\n * @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read products in v3 catalog\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Product v3 read admin\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ_ADMIN\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.PRODUCT_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.product_deleted\n * @serviceIdentifier com.wix.stores.catalog.product.api.v3.ProductService\n * @slug deleted\n */\nexport declare function onProductDeleted(\n handler: (event: ProductDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ProductUpdatedEnvelope {\n entity: V3Product;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a product is updated.\n * @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read products in v3 catalog\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Product v3 read admin\n * @permissionScopeId SCOPE.STORES.PRODUCT_READ_ADMIN\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.PRODUCT_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.product_updated\n * @serviceIdentifier com.wix.stores.catalog.product.api.v3.ProductService\n * @slug updated\n */\nexport declare function onProductUpdated(\n handler: (event: ProductUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a new product.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param product - Product to create.\n *\n * At least 1 variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n * @public\n * @requiredField product\n * @requiredField product.name\n * @requiredField product.productType\n * @requiredField product.variantsInfo\n * @requiredField product.variantsInfo.variants\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @applicableIdentity APP\n * @returns Created product.\n * @fqn wix.stores.catalog.v3.CatalogApi.CreateProduct\n */\nexport async function createProduct(\n product: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductOptions\n): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: CreateProductApplicationErrors;\n __validationErrorsType?: CreateProductValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n { product: product, fields: options?.fields },\n ['product.description', 'product.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.createProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )?.product!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { product: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateProductOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates a new product, and can create the product's inventory in the variants' default locations.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n * @param product - Product to create with inventory.\n *\n * At least one variant must be provided and each variant must have relevant item in `choices` field for every item in `options`.\n * If `options` is empty one default variant must be provided with empty `choices` list.\n * @public\n * @requiredField product\n * @requiredField product.name\n * @requiredField product.productType\n * @requiredField product.variantsInfo\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.CreateProductWithInventory\n */\nexport async function createProductWithInventory(\n product: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: CreateProductWithInventoryOptions\n): Promise<\n NonNullablePaths<\n CreateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: CreateProductWithInventoryApplicationErrors;\n __validationErrorsType?: CreateProductWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n product: product,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.createProductWithInventory(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n product: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateProductWithInventoryOptions {\n /**\n * Whether to return inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants and options are mutually dependant and must be aligned.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * > + Updating media per variant is not supported. Instead, assign media items to product option choices using the `linkedMedia` field. You must use preexisting product media.\n * @param _id - Product ID.\n * @public\n * @requiredField _id\n * @requiredField product\n * @requiredField product.revision\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @returns Updated product.\n * @fqn wix.stores.catalog.v3.CatalogApi.UpdateProduct\n */\nexport async function updateProduct(\n _id: string,\n product: NonNullablePaths<\n UpdateProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductOptions\n): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: UpdateProductApplicationErrors;\n __validationErrorsType?: UpdateProductValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n { product: { ...product, id: _id }, fields: options?.fields },\n ['product.description', 'product.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.updateProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )?.product!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { product: '$[1]' },\n explicitPathsToArguments: {\n 'product.id': '$[0]',\n fields: '$[2].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateProduct {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the product was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the product was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * Product name. Translatable.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * URL to the site's product page.\n *\n * > **Note:** Returned only when you pass `\"URL\"` to the `fields` array in Products API requests.\n * @readonly\n */\n url?: string;\n /**\n * Product description using rich content.\n * > **Note:** Returned only when you pass `\"DESCRIPTION\"` to the `fields` array in Products API requests.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" plugins=\"indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor\" exampleid=\"7dc9240e-d548-417a-abcf-0291b68b4303\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n */\n description?: RichContent;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows the customer to customize the product. For example, selecting color, size, and more.\n *\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * Product modifiers.\n *\n * Allows the customer to customize product, e.g. select Color, Size and so on similarly to `options` but with one main difference - `modifiers` never generate any variants.\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * List of categories that directly contain this product.\n *\n * 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.\n * > **Note:** Returned only when you pass `\"DIRECT_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n directCategoriesInfo?: ProductCategoriesInfo;\n /**\n * List of categories that directly contain this product, as well as their parent categories.\n * > **Note:** Returned only when you pass `\"ALL_CATEGORIES_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n allCategoriesInfo?: ProductCategoriesInfo;\n /**\n * 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\".\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product cost range - minimum and maximum costs of all product variants.\n *\n * > **Note:** Returned only when the following conditions are met:\n * > + You pass `\"MERCHANT_DATA\"` to the `fields` array in Products API requests.\n * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @readonly\n */\n costRange?: PriceRange;\n /**\n * Product inventory info.\n * @readonly\n */\n inventory?: Inventory;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /**\n * 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.\n *\n * Defaults to the currency defined in the site settings, unless specified in `x-wix-currency` header.\n * > **Note:** Returned only when you pass `\"CURRENCY\"` to the `fields` array in Products API requests.\n * @format CURRENCY\n * @readonly\n */\n currency?: string | null;\n /**\n * Breadcrumbs of the `mainCategoryId`. Used to navigate to parent categories.\n * > **Note:** Returned only when you pass `\"BREADCRUMBS_INFO\"` to the `fields` array in Products API requests.\n * @readonly\n */\n breadcrumbsInfo?: BreadcrumbsInfo;\n /**\n * Product actualPrice range - minimum and maximum prices of all product variants.\n * @readonly\n */\n actualPriceRange?: PriceRange;\n /**\n * Product compareAtPrice range - minimum and maximum compare at prices of all product variants.\n * @readonly\n */\n compareAtPriceRange?: PriceRange;\n /**\n * Optional - ID of the app that manages the inventory for this product.\n * @internal\n * @format GUID\n */\n inventoryAppId?: string | null;\n /**\n * Product variants. Each variant must reference all product options via its `choices` array.\n * Each choice references an option using `optionChoiceNames` for all requests.\n */\n variantsInfo?: VariantsInfo;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the app dashboard before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n /** Product subscriptions. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * The total number of variants for the product.\n * @readonly\n */\n variantSummary?: VariantSummary;\n}\n\nexport interface UpdateProductOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants depend on options, and options depend on variants.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * @param _id - Product ID.\n * @public\n * @requiredField _id\n * @requiredField product\n * @requiredField product.revision\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField product.variantsInfo.variants.price\n * @requiredField product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.UpdateProductWithInventory\n */\nexport async function updateProductWithInventory(\n _id: string,\n product: NonNullablePaths<\n UpdateProductWithInventoryProduct,\n | `modifiers.${number}.choicesSettings.choices`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `revision`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >,\n options?: UpdateProductWithInventoryOptions\n): Promise<\n NonNullablePaths<\n UpdateProductWithInventoryResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 8\n > & {\n __applicationErrorsType?: UpdateProductWithInventoryApplicationErrors;\n __validationErrorsType?: UpdateProductWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n product: { ...product, id: _id },\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.updateProductWithInventory(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { product: '$[1]' },\n explicitPathsToArguments: {\n 'product.id': '$[0]',\n returnEntity: '$[2].returnEntity',\n fields: '$[2].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'product', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateProductWithInventoryProduct {\n /**\n * Physical properties.\n *\n * Required when `productType: PHYSICAL`.\n */\n physicalProperties?: PhysicalProperties;\n /**\n * Product ID.\n * @minLength 1\n * @maxLength 36\n * @immutable\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the product is updated.\n * To prevent conflicting changes,\n * the current revision must be passed when updating the product.\n *\n * Ignored when creating a product with inventory.\n * @readonly\n */\n revision?: string | null;\n /**\n * Product name.\n * @minLength 1\n * @maxLength 80\n */\n name?: string | null;\n /**\n * Product slug.\n *\n * If not provided, the slug is autogenerated based on the product name.\n * @format URL_SLUG\n */\n slug?: string | null;\n /**\n * Product description in HTML.\n *\n * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.\n * + `plainDescription` is ignored when value is also passed to the `description` field.\n * > **Note:** Returned only when you pass `\"PLAIN_DESCRIPTION\"` to the `fields` array in Products API requests.\n * @maxLength 16000\n */\n plainDescription?: string | null;\n /**\n * Whether the product is visible to site visitors on the site.\n *\n * Default: `true`\n */\n visible?: boolean | null;\n /**\n * Whether the product is visible in POS (point of sale).\n *\n * Default: `true`\n * > **Note:** Always `false` for `productType: DIGITAL`.\n */\n visibleInPos?: boolean | null;\n /** Product media items. */\n media?: Media;\n /** Product SEO data. */\n seoData?: SeoSchema;\n /**\n * Tax group ID.\n * @format GUID\n */\n taxGroupId?: string | null;\n /**\n * Product options. Allows buyer to customize product, e.g. select Color, Size and so on.\n * Always generates variants: every variant must have exactly one choice related to each option.\n * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.\n * 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.\n * 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.\n * *None*: you cannot change name of existing option via this endpoint but you can do it by calling CustomizationService\n * @maxSize 6\n */\n options?: ConnectedOption[];\n /**\n * 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.\n * 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.\n * 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.\n * *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\n * @maxSize 10\n */\n modifiers?: ConnectedModifier[];\n /**\n * Product brand.\n *\n * + Pass `brand.name` to add a new brand while creating a product.\n * + Pass an existing brand's `id` to assign that brand to the product.\n */\n brand?: Brand;\n /**\n * Product info section.\n *\n * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.\n * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.\n * @maxSize 10\n */\n infoSections?: InfoSection[];\n /**\n * Product ribbon.\n *\n * + Pass `ribbon.name` to add a new ribbon while creating a product.\n * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.\n */\n ribbon?: Ribbon;\n /**\n * Main category ID.\n * @format GUID\n */\n mainCategoryId?: string | null;\n /**\n * Product type.\n *\n * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.\n * @immutable\n */\n productType?: ProductTypeWithLiterals;\n /**\n * A unique human-friendly identifier for the product.\n * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.\n * In case handle wasn't given, the handle will be automatically generated.\n * @minLength 1\n * @maxLength 100\n * @readonly\n */\n handle?: string | null;\n /**\n * ID of the last import job that affected the product.\n * @internal\n * @format GUID\n */\n importId?: string | null;\n /**\n * Optional - ID of the app that manages the inventory for this product.\n * @internal\n * @format GUID\n */\n inventoryAppId?: string | null;\n /** Product variants. */\n variantsInfo?: V3VariantsInfo;\n /** Subscription details. */\n subscriptionDetails?: SubscriptionDetails;\n /**\n * Custom extended fields for the product object.\n *\n * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the [app dashboard](https://dev.wix.com/dc3/my-apps/) before they can be accessed with API calls.\n */\n extendedFields?: ExtendedFields;\n}\n\nexport interface UpdateProductWithInventoryOptions {\n /**\n * Whether to return the full inventory entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to create.\n * @public\n * @requiredField products\n * @requiredField products.name\n * @requiredField products.productType\n * @requiredField products.variantsInfo\n * @requiredField products.variantsInfo.variants\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.variantsInfo.variants.price\n * @requiredField products.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkCreateProducts\n */\nexport async function bulkCreateProducts(\n products: NonNullablePaths<\n V3Product,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsOptions\n): Promise<\n NonNullablePaths<\n BulkCreateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkCreateProductsApplicationErrors;\n __validationErrorsType?: BulkCreateProductsValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n ['products.description', 'products.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'products.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkCreateProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateProductsOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Creates up to 100 products, and can create the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to create with inventory.\n * @public\n * @requiredField products\n * @requiredField products.name\n * @requiredField products.productType\n * @requiredField products.variantsInfo\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.variantsInfo.variants.price\n * @requiredField products.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_CREATE\n * @permissionId WIX_STORES.INVENTORY_CREATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkCreateProductsWithInventory\n */\nexport async function bulkCreateProductsWithInventory(\n products: NonNullablePaths<\n ProductWithInventory,\n | `modifiers.${number}.choicesSettings.choices`\n | `name`\n | `options.${number}.choicesSettings.choices`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `productType`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `variantsInfo`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `variantsInfo.variants.${number}.price`\n | `variantsInfo.variants.${number}.price.actualPrice`,\n 8\n >[],\n options?: BulkCreateProductsWithInventoryOptions\n): Promise<\n NonNullablePaths<\n BulkCreateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkCreateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkCreateProductsWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkCreateProductsWithInventory(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'productResults.results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'productResults.results.item.media.main.image' },\n { path: 'productResults.results.item.media.itemsInfo.items.image' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image',\n },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'productResults.results.item.media.main.video' },\n { path: 'productResults.results.item.media.itemsInfo.items.video' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video',\n },\n ],\n },\n ]),\n [\n 'productResults.results.item.description',\n 'productResults.results.item.infoSections.description',\n ]\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkCreateProductsWithInventoryOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to update.\n * @public\n * @requiredField products\n * @requiredField products.product\n * @requiredField products.product._id\n * @requiredField products.product.revision\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.product.variantsInfo.variants.price\n * @requiredField products.product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProducts\n */\nexport async function bulkUpdateProducts(\n products: NonNullablePaths<\n V3MaskedProduct,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkUpdateProductsApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n [\n 'products.product.description',\n 'products.product.infoSections.description',\n ]\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'products.product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.product.media.main.image' },\n { path: 'products.product.media.itemsInfo.items.image' },\n { path: 'products.product.options.choicesSettings.choices.image' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.product.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.product.media.main.video' },\n { path: 'products.product.media.itemsInfo.items.video' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductsOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates up to 100 products, and can update the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n * @param products - List of products to update.\n * @public\n * @requiredField products\n * @requiredField products.product\n * @requiredField products.product._id\n * @requiredField products.product.revision\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile\n * @requiredField products.product.variantsInfo.variants.digitalProperties.digitalFile._id\n * @requiredField products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.measurementUnit\n * @requiredField products.product.variantsInfo.variants.price\n * @requiredField products.product.variantsInfo.variants.price.actualPrice\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsWithInventory\n */\nexport async function bulkUpdateProductsWithInventory(\n products: NonNullablePaths<\n MaskedProductWithInventory,\n | `product`\n | `product._id`\n | `product.modifiers.${number}.choicesSettings.choices`\n | `product.options.${number}.choicesSettings.choices`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.revision`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.settings.measurementUnit`\n | `product.variantsInfo.variants.${number}.price`\n | `product.variantsInfo.variants.${number}.price.actualPrice`,\n 9\n >[],\n options?: BulkUpdateProductsWithInventoryOptions\n): Promise<\n NonNullablePaths<\n BulkUpdateProductsWithInventoryResponse,\n | `productResults.results`\n | `productResults.results.${number}.itemMetadata.originalIndex`\n | `productResults.results.${number}.itemMetadata.success`\n | `productResults.results.${number}.itemMetadata.error.code`\n | `productResults.results.${number}.itemMetadata.error.description`\n | `productResults.results.${number}.item.inventory.availabilityStatus`\n | `productResults.results.${number}.item.inventory.preorderStatus`\n | `productResults.results.${number}.item.inventory.preorderAvailability`\n | `productResults.results.${number}.item.productType`\n | `productResults.results.${number}.item.variantSummary.variantCount`\n | `productResults.bulkActionMetadata.totalSuccesses`\n | `productResults.bulkActionMetadata.totalFailures`\n | `productResults.bulkActionMetadata.undetailedFailures`\n | `inventoryResults.results`\n | `inventoryResults.results.${number}.itemMetadata.originalIndex`\n | `inventoryResults.results.${number}.itemMetadata.success`\n | `inventoryResults.results.${number}.itemMetadata.error.code`\n | `inventoryResults.results.${number}.itemMetadata.error.description`\n | `inventoryResults.results.${number}.item.inStock`\n | `inventoryResults.results.${number}.item.quantity`\n | `inventoryResults.results.${number}.item.variantId`\n | `inventoryResults.results.${number}.item.productId`\n | `inventoryResults.results.${number}.item.trackQuantity`\n | `inventoryResults.results.${number}.item.availabilityStatus`\n | `inventoryResults.bulkActionMetadata.totalSuccesses`\n | `inventoryResults.bulkActionMetadata.totalFailures`\n | `inventoryResults.bulkActionMetadata.undetailedFailures`,\n 7\n > & {\n __applicationErrorsType?: BulkUpdateProductsWithInventoryApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsWithInventoryValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'products.product.media.main.image' },\n { path: 'products.product.media.itemsInfo.items.image' },\n { path: 'products.product.options.choicesSettings.choices.image' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.product.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'products.product.media.main.video' },\n { path: 'products.product.media.itemsInfo.items.video' },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProductsWithInventory(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'productResults.results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'productResults.results.item.media.main.image' },\n { path: 'productResults.results.item.media.itemsInfo.items.image' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image',\n },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'productResults.results.item.media.main.video' },\n { path: 'productResults.results.item.media.itemsInfo.items.video' },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video',\n },\n ],\n },\n ]),\n [\n 'productResults.results.item.description',\n 'productResults.results.item.infoSections.description',\n ]\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductsWithInventoryOptions {\n /**\n * Whether to return the full product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Updates multiple products, given the provided filter.\n *\n * To update `infoSections`, `brand` or `ribbon` fields, you must also pass their existing `id`.\n *\n * > **Note:**\n * > The following fields cannot be updated with this endpoint:\n * > + `slug`\n * > + `options`\n * > + `modifiers`\n * > + `variantsInfo`\n * >\n * > To update these fields, use [Bulk Update Products](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/bulk-update-products).\n * @public\n * @requiredField options.product\n * @requiredField options.product.subscriptionDetails.subscriptions.cycles\n * @requiredField options.product.subscriptionDetails.subscriptions.discount.discount\n * @requiredField options.product.subscriptionDetails.subscriptions.frequency\n * @requiredField options.product.subscriptionDetails.subscriptions.title\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsByFilter\n */\nexport async function bulkUpdateProductsByFilter(\n options?: NonNullablePaths<\n BulkUpdateProductsByFilterOptions,\n | `product`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.title`,\n 7\n >\n): Promise<\n NonNullablePaths<V3BulkUpdateProductsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductsByFilterValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n product: options?.product,\n search: options?.search,\n },\n ['product.description', 'product.infoSections.description']\n ),\n [\n {\n transformFn: transformSDKPageURLV2ToRESTPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.image' },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n { path: 'product.options.choicesSettings.choices.linkedMedia.video' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProductsByFilter(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n product: '$[0].product',\n search: '$[0].search',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductsByFilterOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Product to update. */\n product: V3Product;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Deletes a product and all its variants.\n * @param productId - Product ID.\n * @public\n * @requiredField productId\n * @permissionId WIX_STORES.PRODUCT_DELETE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.DeleteProduct\n */\nexport async function deleteProduct(productId: string): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { productId: productId },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.deleteProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { productId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['productId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Deletes multiple products.\n * @param productIds - IDs of products to delete.\n * @public\n * @requiredField productIds\n * @permissionId WIX_STORES.PRODUCT_DELETE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkDeleteProducts\n */\nexport async function bulkDeleteProducts(productIds: string[]): Promise<\n NonNullablePaths<\n V3BulkDeleteProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __validationErrorsType?: BulkDeleteProductsValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { productIds: productIds },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkDeleteProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { productIds: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['productIds']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Delete multiple products, given the provided filter.\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @permissionId WIX_STORES.PRODUCT_DELETE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkDeleteProductsByFilter\n */\nexport async function bulkDeleteProductsByFilter(\n filter: Record<string, any>,\n options?: BulkDeleteProductsByFilterOptions\n): Promise<NonNullablePaths<V3BulkDeleteProductsByFilterResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { filter: filter, search: options?.search },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkDeleteProductsByFilter(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { filter: '$[0]', search: '$[1].search' },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkDeleteProductsByFilterOptions {\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Retrieves a product.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param productId - Product ID.\n * @public\n * @requiredField productId\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @returns Product.\n * @fqn wix.stores.catalog.v3.CatalogApi.GetProduct\n */\nexport async function getProduct(\n productId: string,\n options?: GetProductOptions\n): Promise<\n NonNullablePaths<\n V3Product,\n | `physicalProperties.pricePerUnit.quantity`\n | `physicalProperties.pricePerUnit.measurementUnit`\n | `physicalProperties.shippingWeightRange.minValue`\n | `physicalProperties.shippingWeightRange.maxValue`\n | `physicalProperties.pricePerUnitRange.minValue.value`\n | `physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `media.main._id`\n | `media.main.url`\n | `media.main.mediaType`\n | `media.main.thumbnail.url`\n | `media.main.thumbnail.height`\n | `media.main.thumbnail.width`\n | `media.main.uploadId`\n | `media.itemsInfo.items`\n | `seoData.tags`\n | `seoData.tags.${number}.type`\n | `seoData.tags.${number}.children`\n | `seoData.tags.${number}.custom`\n | `seoData.tags.${number}.disabled`\n | `seoData.settings.preventAutoRedirect`\n | `seoData.settings.keywords`\n | `seoData.settings.keywords.${number}.term`\n | `seoData.settings.keywords.${number}.isMain`\n | `options`\n | `options.${number}.optionRenderType`\n | `modifiers`\n | `modifiers.${number}.freeTextSettings.minCharCount`\n | `modifiers.${number}.freeTextSettings.maxCharCount`\n | `modifiers.${number}.freeTextSettings.title`\n | `modifiers.${number}.modifierRenderType`\n | `modifiers.${number}.mandatory`\n | `infoSections`\n | `directCategoriesInfo.categories`\n | `directCategoriesInfo.categories.${number}._id`\n | `costRange.minValue.amount`\n | `inventory.availabilityStatus`\n | `inventory.preorderStatus`\n | `inventory.preorderAvailability`\n | `productType`\n | `breadcrumbsInfo.breadcrumbs`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `variantsInfo.variants`\n | `variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `subscriptionDetails.subscriptions`\n | `subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `subscriptionDetails.subscriptions.${number}.billingCycles`\n | `subscriptionDetails.subscriptions.${number}.title`\n | `subscriptionDetails.subscriptions.${number}.frequency`\n | `subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `subscriptionDetails.subscriptions.${number}.discount.type`\n | `variantSummary.variantCount`,\n 7\n > & {\n __applicationErrorsType?: GetProductApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { productId: productId, fields: options?.fields },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.getProduct(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )?.product!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { productId: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['productId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetProductOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Retrieves a product by slug.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param slug - Product slug.\n * @public\n * @requiredField slug\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.GetProductBySlug\n */\nexport async function getProductBySlug(\n slug: string,\n options?: GetProductBySlugOptions\n): Promise<\n NonNullablePaths<\n V3GetProductBySlugResponse,\n | `product.physicalProperties.pricePerUnit.quantity`\n | `product.physicalProperties.pricePerUnit.measurementUnit`\n | `product.physicalProperties.shippingWeightRange.minValue`\n | `product.physicalProperties.shippingWeightRange.maxValue`\n | `product.physicalProperties.pricePerUnitRange.minValue.value`\n | `product.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `product.media.main._id`\n | `product.media.main.url`\n | `product.media.main.mediaType`\n | `product.media.main.thumbnail.url`\n | `product.media.main.thumbnail.height`\n | `product.media.main.thumbnail.width`\n | `product.media.main.uploadId`\n | `product.media.itemsInfo.items`\n | `product.seoData.tags`\n | `product.seoData.tags.${number}.type`\n | `product.seoData.tags.${number}.children`\n | `product.seoData.tags.${number}.custom`\n | `product.seoData.tags.${number}.disabled`\n | `product.seoData.settings.preventAutoRedirect`\n | `product.seoData.settings.keywords`\n | `product.seoData.settings.keywords.${number}.term`\n | `product.seoData.settings.keywords.${number}.isMain`\n | `product.options`\n | `product.options.${number}.optionRenderType`\n | `product.modifiers`\n | `product.modifiers.${number}.freeTextSettings.minCharCount`\n | `product.modifiers.${number}.freeTextSettings.maxCharCount`\n | `product.modifiers.${number}.freeTextSettings.title`\n | `product.modifiers.${number}.modifierRenderType`\n | `product.modifiers.${number}.mandatory`\n | `product.infoSections`\n | `product.directCategoriesInfo.categories`\n | `product.directCategoriesInfo.categories.${number}._id`\n | `product.costRange.minValue.amount`\n | `product.inventory.availabilityStatus`\n | `product.inventory.preorderStatus`\n | `product.inventory.preorderAvailability`\n | `product.productType`\n | `product.breadcrumbsInfo.breadcrumbs`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryId`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categoryName`\n | `product.breadcrumbsInfo.breadcrumbs.${number}.categorySlug`\n | `product.variantsInfo.variants`\n | `product.variantsInfo.variants.${number}.physicalProperties.pricePerUnit.value`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile._id`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileName`\n | `product.variantsInfo.variants.${number}.digitalProperties.digitalFile.fileType`\n | `product.variantsInfo.variants.${number}.revenueDetails.profitMargin`\n | `product.variantsInfo.variants.${number}.inventoryStatus.inStock`\n | `product.variantsInfo.variants.${number}.inventoryStatus.preorderEnabled`\n | `product.subscriptionDetails.subscriptions`\n | `product.subscriptionDetails.subscriptions.${number}.autoRenewal`\n | `product.subscriptionDetails.subscriptions.${number}.billingCycles`\n | `product.subscriptionDetails.subscriptions.${number}.title`\n | `product.subscriptionDetails.subscriptions.${number}.frequency`\n | `product.subscriptionDetails.subscriptions.${number}.discount.amountOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.percentOff`\n | `product.subscriptionDetails.subscriptions.${number}.discount.type`\n | `product.variantSummary.variantCount`,\n 8\n > & {\n __applicationErrorsType?: GetProductBySlugApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { slug: slug, fields: options?.fields },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.getProductBySlug(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'product.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'product.media.main.image' },\n { path: 'product.media.itemsInfo.items.image' },\n { path: 'product.options.choicesSettings.choices.image' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.modifiers.choicesSettings.choices.image' },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'product.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'product.media.main.video' },\n { path: 'product.media.itemsInfo.items.video' },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'product.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['product.description', 'product.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { slug: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['slug', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetProductBySlugOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: SingleEntityOpsRequestedFieldsWithLiterals[];\n}\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, search expression, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @param search - Search options.\n * @public\n * @requiredField search\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.SearchProducts\n */\nexport async function searchProducts(\n search: V3ProductSearch,\n options?: SearchProductsOptions\n): Promise<\n NonNullablePaths<\n V3SearchProductsResponse,\n | `products`\n | `products.${number}.physicalProperties.pricePerUnit.quantity`\n | `products.${number}.physicalProperties.pricePerUnit.measurementUnit`\n | `products.${number}.physicalProperties.shippingWeightRange.minValue`\n | `products.${number}.physicalProperties.shippingWeightRange.maxValue`\n | `products.${number}.physicalProperties.weightMeasurementUnitInfo.weightMeasurementUnit`\n | `products.${number}.media.main._id`\n | `products.${number}.media.main.url`\n | `products.${number}.media.main.mediaType`\n | `products.${number}.media.main.uploadId`\n | `products.${number}.seoData.settings.preventAutoRedirect`\n | `products.${number}.costRange.minValue.amount`\n | `products.${number}.inventory.availabilityStatus`\n | `products.${number}.inventory.preorderStatus`\n | `products.${number}.inventory.preorderAvailability`\n | `products.${number}.productType`\n | `products.${number}.variantSummary.variantCount`\n | `aggregationData.results`\n | `aggregationData.results.${number}.scalar.type`\n | `aggregationData.results.${number}.scalar.value`\n | `aggregationData.results.${number}.name`\n | `aggregationData.results.${number}.type`\n | `aggregationData.results.${number}.fieldPath`,\n 6\n > & {\n __applicationErrorsType?: SearchProductsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { search: search, fields: options?.fields },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.searchProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'products.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['products.description', 'products.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { search: '$[0]', fields: '$[1].fields' },\n singleArgumentUnchanged: false,\n },\n ['search', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface SearchProductsOptions {\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\nexport interface V3ProductSearchSpec extends SearchSpec {\n searchable: [\n 'description',\n 'directCategoryIdsInfo.categoryIds',\n 'minVariantPriceInfo.sku',\n 'name',\n 'physicalProperties.deliveryProfileId',\n 'physicalProperties.shippingGroupId',\n 'variantsInfo.variants.sku'\n ];\n aggregatable: [\n '_createdDate',\n '_id',\n '_updatedDate',\n 'actualPriceRange.maxValue.amount',\n 'actualPriceRange.minValue.amount',\n 'allCategoriesInfo.categories',\n 'allCategoriesInfo.categories._id',\n 'allCategoriesInfo.categories.index',\n 'brand._id',\n 'brand.name',\n 'compareAtPriceRange.maxValue.amount',\n 'compareAtPriceRange.minValue.amount',\n 'directCategoriesInfo.categories',\n 'directCategoriesInfo.categories._id',\n 'directCategoriesInfo.categories.index',\n 'flattenModifiers',\n 'flattenOptions',\n 'handle',\n 'importId',\n 'infoSections._id',\n 'infoSections.uniqueName',\n 'inventory.availabilityStatus',\n 'inventory.preorderAvailability',\n 'inventory.preorderStatus',\n 'minVariantPriceInfo.sku',\n 'modifiers._id',\n 'modifiers.choicesSettings.choices.choiceId',\n 'modifiers.choicesSettings.choices.name',\n 'modifiers.name',\n 'name',\n 'numericId',\n 'options._id',\n 'options.choicesSettings.choices.choiceId',\n 'options.choicesSettings.choices.name',\n 'options.name',\n 'physicalProperties.deliveryProfileId',\n 'physicalProperties.fulfillerId',\n 'physicalProperties.shippingGroupId',\n 'physicalProperties.shippingWeightRange.maxValue',\n 'physicalProperties.shippingWeightRange.minValue',\n 'productType',\n 'ribbon._id',\n 'ribbon.name',\n 'slug',\n 'subscriptionDetails.allowOneTimePurchases',\n 'taxGroupId',\n 'variantsInfo.variants',\n 'variantsInfo.variants.barcode',\n 'variantsInfo.variants.choices.optionChoiceIds.choiceId',\n 'variantsInfo.variants.choices.optionChoiceIds.optionId',\n 'variantsInfo.variants.physicalProperties.weight',\n 'variantsInfo.variants.price.actualPrice.amount',\n 'variantsInfo.variants.price.compareAtPrice.amount',\n 'variantsInfo.variants.sku',\n 'variantsInfo.variants.visible',\n 'visible',\n 'visibleInPos'\n ];\n paging: 'cursor';\n wql: [\n {\n operators: ['$matchItems'];\n fields: [\n 'allCategoriesInfo.categories',\n 'directCategoriesInfo.categories',\n 'variantsInfo.variants'\n ];\n sort: 'NONE';\n },\n {\n operators: ['$hasAll', '$hasSome'];\n fields: [\n 'infoSections._id',\n 'infoSections.uniqueName',\n 'modifiers._id',\n 'modifiers.choicesSettings.choices.choiceId',\n 'modifiers.choicesSettings.choices.name',\n 'modifiers.name',\n 'options._id',\n 'options.choicesSettings.choices.choiceId',\n 'options.choicesSettings.choices.name',\n 'options.name'\n ];\n sort: 'NONE';\n },\n {\n operators: '*';\n fields: [\n '_id',\n 'brand._id',\n 'brand.name',\n 'flattenModifiers',\n 'flattenOptions',\n 'handle',\n 'importId',\n 'inventory.availabilityStatus',\n 'inventory.preorderAvailability',\n 'inventory.preorderStatus',\n 'physicalProperties.deliveryProfileId',\n 'physicalProperties.fulfillerId',\n 'physicalProperties.shippingGroupId',\n 'productType',\n 'ribbon._id',\n 'ribbon.name',\n 'slug',\n 'subscriptionDetails.allowOneTimePurchases',\n 'taxGroupId',\n 'visible',\n 'visibleInPos'\n ];\n sort: 'NONE';\n },\n {\n operators: '*';\n fields: [\n '_createdDate',\n '_updatedDate',\n 'actualPriceRange.maxValue.amount',\n 'actualPriceRange.minValue.amount',\n 'compareAtPriceRange.maxValue.amount',\n 'compareAtPriceRange.minValue.amount',\n 'minVariantPriceInfo.sku',\n 'name',\n 'numericId',\n 'physicalProperties.shippingWeightRange.maxValue',\n 'physicalProperties.shippingWeightRange.minValue'\n ];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonSearchWithEntityContext = SearchSdkType<\n V3Product,\n V3ProductSearchSpec\n>;\nexport type V3ProductSearch = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonSearchWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 10 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonSearchWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonSearchWithEntityContext['sort']>[number]['order'];\n /** \n When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by\n a specific element from a collection, filter can/should be provided to ensure correct sort value is picked.\n\n If multiple filters are provided, they are combined with AND operator.\n\n Example:\n Given we have document like {\"id\": \"1\", \"nestedField\": [{\"price\": 10, \"region\": \"EU\"}, {\"price\": 20, \"region\": \"US\"}]}\n and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be\n { fieldName: \"nestedField.price\", \"select_items_by\": [{\"nestedField.region\": \"US\"}] } \n @maxSize: 10 \n */\n selectItemsBy?:\n | NonNullable<\n CommonSearchWithEntityContext['sort']\n >[number]['selectItemsBy']\n | null;\n }[];\n /** \n 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. \n @maxSize: 10 \n */\n aggregations?: {\n /** \n 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. \n */\n value?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['value'];\n /** \n 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. \n */\n range?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['range'];\n /** \n 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`. \n */\n scalar?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['scalar'];\n /** \n 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. \n */\n dateHistogram?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['dateHistogram'];\n /** \n 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`. \n */\n nested?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['nested'];\n /** \n Aggregation name, returned in `aggregations.results.name`. \n @maxLength: 100 \n */\n name?:\n | NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['name']\n | null;\n /** \n Type of aggregation to perform. Must align with the corresponding aggregation field. \n */\n type?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['type'];\n /** \n Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n @maxLength: 200 \n */\n fieldPath?: NonNullable<\n CommonSearchWithEntityContext['aggregations']\n >[number]['fieldPath'];\n }[];\n /** \n Free text to match in searchable fields. \n */\n search?: {\n /** \n Defines how separate search terms in `expression` are combined \n */\n mode?: NonNullable<CommonSearchWithEntityContext['search']>['mode'];\n /** \n Search term or expression \n @maxLength: 100 \n */\n expression?:\n | NonNullable<CommonSearchWithEntityContext['search']>['expression']\n | null;\n /** \n 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`. \n @maxLength: 200,\n @maxSize: 20 \n */\n fields?: NonNullable<CommonSearchWithEntityContext['search']>['fields'];\n /** \n 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. \n */\n fuzzy?: NonNullable<CommonSearchWithEntityContext['search']>['fuzzy'];\n };\n /** \n 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.\n Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\". \n @maxLength: 50 \n */\n timeZone?: CommonSearchWithEntityContext['timeZone'] | null;\n};\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n * @public\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.QueryProducts\n */\nexport function queryProducts(\n options?: QueryProductsOptions\n): ProductsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n V3Product,\n 'CURSOR',\n V3QueryProductsRequest,\n V3QueryProductsResponse\n >({\n func: async (payload: V3QueryProductsRequest) => {\n const reqOpts = ambassadorWixStoresCatalogV3Product.queryProducts({\n ...payload,\n ...(options ?? {}),\n });\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n return result;\n } catch (err) {\n sideEffects?.onError?.(err);\n throw err;\n }\n },\n requestTransformer: (query: V3QueryProductsRequest['query']) => {\n const args = [query, options] as [\n V3QueryProductsRequest['query'],\n QueryProductsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest(\n { ...args?.[1], query: args?.[0] },\n []\n );\n },\n responseTransformer: ({ data }: HttpResponse<V3QueryProductsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'products.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'products.media.main.image' },\n { path: 'products.media.itemsInfo.items.image' },\n { path: 'products.options.choicesSettings.choices.image' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.modifiers.choicesSettings.choices.image' },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'products.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'products.media.main.video' },\n { path: 'products.media.itemsInfo.items.video' },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'products.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['products.description', 'products.infoSections.description']\n );\n\n return {\n items: transformedData?.products,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryProductsOptions {\n /**\n * A list of requested fields to be included in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[] | undefined;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface ProductsQueryResult extends QueryCursorResult {\n items: V3Product[];\n query: ProductsQueryBuilder;\n next: () => Promise<ProductsQueryResult>;\n prev: () => Promise<ProductsQueryResult>;\n}\n\nexport interface ProductsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n eq: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ne: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ge: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n gt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n le: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n lt: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `string`.\n * @param string - String to compare against. Case-insensitive.\n */\n startsWith: (\n propertyName: '_id' | 'slug' | 'options.id' | 'handle',\n value: string\n ) => ProductsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n */\n hasSome: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any[]\n ) => ProductsQueryBuilder;\n in: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: any\n ) => ProductsQueryBuilder;\n exists: (\n propertyName:\n | '_id'\n | '_createdDate'\n | '_updatedDate'\n | 'slug'\n | 'visible'\n | 'options.id'\n | 'handle',\n value: boolean\n ) => ProductsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n ascending: (\n ...propertyNames: Array<\n '_createdDate' | '_updatedDate' | 'slug' | 'visible'\n >\n ) => ProductsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n descending: (\n ...propertyNames: Array<\n '_createdDate' | '_updatedDate' | 'slug' | 'visible'\n >\n ) => ProductsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n limit: (limit: number) => ProductsQueryBuilder;\n /** @param cursor - A pointer to specific record */\n skipTo: (cursor: string) => ProductsQueryBuilder;\n find: () => Promise<ProductsQueryResult>;\n}\n\n/**\n * Counts the number of products that match the provided filtering.\n * @public\n * @permissionId WIX_STORES.PRODUCT_READ\n * @permissionId WIX_STORES.PRODUCT_READ_NON_VISIBLE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.CountProducts\n */\nexport async function countProducts(options?: CountProductsOptions): Promise<\n NonNullablePaths<V3CountProductsResponse, `count`, 2> & {\n __applicationErrorsType?: CountProductsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n search: options?.search,\n returnNonVisibleProducts: options?.returnNonVisibleProducts,\n },\n []\n );\n\n const reqOpts = ambassadorWixStoresCatalogV3Product.countProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n search: '$[0].search',\n returnNonVisibleProducts: '$[0].returnNonVisibleProducts',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CountProductsOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /**\n * Whether to return non-visible products (`visible:false`). Your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n *\n * Default: `false`\n */\n returnNonVisibleProducts?: boolean;\n}\n\n/**\n * Updates a variant of multiple products, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be updated:\n * + `visible`\n * + `price`\n * + `revenueDetails.cost`\n * + `physicalOptions`\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @requiredField options.variant\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkUpdateProductVariantsByFilter\n */\nexport async function bulkUpdateProductVariantsByFilter(\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkUpdateProductVariantsByFilterOptions,\n `variant`,\n 2\n >\n): Promise<\n NonNullablePaths<BulkUpdateProductVariantsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkUpdateProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkUpdateProductVariantsByFilterValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = transformPaths(\n renameKeysFromSDKRequestToRESTRequest(\n { filter: filter, variant: options?.variant, search: options?.search },\n []\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [{ path: 'variant.media.image' }],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [{ path: 'variant.media.video' }],\n },\n ]\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkUpdateProductVariantsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n variant: '$[1].variant',\n search: '$[1].search',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkUpdateProductVariantsByFilterOptions {\n /** Variant to update. */\n variant: Variant;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Adjusts the price and cost of multiple variants, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be increased/decreased by amount or percentage:\n * + `compareAtPrice`\n * + `actualPrice`\n * + `cost`\n * + `compareAtPriceDiscount`\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAdjustProductVariantsByFilter\n */\nexport async function bulkAdjustProductVariantsByFilter(\n filter: Record<string, any>,\n options?: BulkAdjustProductVariantsByFilterOptions\n): Promise<\n NonNullablePaths<V3BulkAdjustProductVariantsByFilterResponse, `jobId`, 2> & {\n __applicationErrorsType?: BulkAdjustProductVariantsByFilterApplicationErrors;\n __validationErrorsType?: BulkAdjustProductVariantsByFilterValidationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: filter,\n cost: options?.cost,\n rounding: options?.rounding,\n search: options?.search,\n actualPrice: options?.actualPrice,\n compareAtPrice: options?.compareAtPrice,\n compareAtPriceDiscount: options?.compareAtPriceDiscount,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAdjustProductVariantsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n cost: '$[1].cost',\n rounding: '$[1].rounding',\n search: '$[1].search',\n actualPrice: '$[1].actualPrice',\n compareAtPrice: '$[1].compareAtPrice',\n compareAtPriceDiscount: '$[1].compareAtPriceDiscount',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAdjustProductVariantsByFilterOptions {\n /** Cost adjustment. */\n cost?: V3AdjustValue;\n /**\n * Rounding strategy of new calculated prices.\n *\n * + `NO_ROUNDING`: Calculated prices will be saved without rounding to keep max possible precision.\n * + `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`.\n * + `NEAREST_WHOLE_NUMBER`: Calculated prices will be rounded to the nearest whole number.\n */\n rounding?: BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals;\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n /** Actual price adjustment. */\n actualPrice?: V3AdjustValue;\n /** Compare at price adjustment. */\n compareAtPrice?: V3AdjustValue;\n /**\n * Set variant actualPrice from compareAtPrice by applying provided discount to it.\n * if compare-at-price doesn't exist, actualPrice will be set to compareAtPrice and the discount will be calculated from it.\n * 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%).\n */\n compareAtPriceDiscount?: V3UnsignedAdjustValue;\n}\n\n/**\n * Adds info sections to multiple products, given the provided filter and search expression.\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @requiredField options.infoSectionIds\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProductsByFilter\n */\nexport async function bulkAddInfoSectionsToProductsByFilter(\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n `jobId`,\n 2\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsByFilterApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: filter,\n infoSectionIds: options?.infoSectionIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAddInfoSectionsToProductsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n search: '$[1].search',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAddInfoSectionsToProductsByFilterOptions {\n /**\n * IDs of the info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Adds info sections to multiple products.\n * @param products - List of product IDs and revisions.\n * @public\n * @requiredField options.infoSectionIds\n * @requiredField products\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProducts\n */\nexport async function bulkAddInfoSectionsToProducts(\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkAddInfoSectionsToProductsOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkAddInfoSectionsToProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n > & {\n __applicationErrorsType?: BulkAddInfoSectionsToProductsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n infoSectionIds: options?.infoSectionIds,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAddInfoSectionsToProducts(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAddInfoSectionsToProductsOptions {\n /**\n * List of IDs of info sections to add.\n * @format GUID\n * @minSize 1\n * @maxSize 10\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Removes info sections from multiple products, given the provided filter and search expression.\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @requiredField options.infoSectionIds\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProductsByFilter\n */\nexport async function bulkRemoveInfoSectionsFromProductsByFilter(\n filter: Record<string, any>,\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n `jobId`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: filter,\n infoSectionIds: options?.infoSectionIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkRemoveInfoSectionsFromProductsByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n search: '$[1].search',\n },\n singleArgumentUnchanged: false,\n },\n ['filter', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsByFilterOptions {\n /**\n * IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Removes info sections from multiple products.\n * @param products - List of product IDs and revisions.\n * @public\n * @requiredField options.infoSectionIds\n * @requiredField products\n * @permissionId WIX_STORES.PRODUCT_UPDATE\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProducts\n */\nexport async function bulkRemoveInfoSectionsFromProducts(\n products: V3ProductIdWithRevision[],\n options?: NonNullablePaths<\n BulkRemoveInfoSectionsFromProductsOptions,\n `infoSectionIds`,\n 2\n >\n): Promise<\n NonNullablePaths<\n V3BulkRemoveInfoSectionsFromProductsResponse,\n | `results`\n | `results.${number}.itemMetadata.originalIndex`\n | `results.${number}.itemMetadata.success`\n | `results.${number}.itemMetadata.error.code`\n | `results.${number}.itemMetadata.error.description`\n | `results.${number}.item.inventory.availabilityStatus`\n | `results.${number}.item.inventory.preorderStatus`\n | `results.${number}.item.inventory.preorderAvailability`\n | `results.${number}.item.productType`\n | `results.${number}.item.variantSummary.variantCount`\n | `bulkActionMetadata.totalSuccesses`\n | `bulkActionMetadata.totalFailures`\n | `bulkActionMetadata.undetailedFailures`,\n 6\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n products: products,\n infoSectionIds: options?.infoSectionIds,\n returnEntity: options?.returnEntity,\n fields: options?.fields,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkRemoveInfoSectionsFromProducts(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(\n transformPaths(result.data, [\n {\n transformFn: transformRESTPageURLV2ToSDKPageURLV2,\n paths: [{ path: 'results.item.url' }],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'results.item.media.main.image' },\n { path: 'results.item.media.itemsInfo.items.image' },\n { path: 'results.item.options.choicesSettings.choices.image' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.modifiers.choicesSettings.choices.image' },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image',\n },\n { path: 'results.item.variantsInfo.variants.media.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'results.item.media.main.video' },\n { path: 'results.item.media.itemsInfo.items.video' },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video',\n },\n { path: 'results.item.variantsInfo.variants.media.video' },\n ],\n },\n ]),\n ['results.item.description', 'results.item.infoSections.description']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n products: '$[0]',\n infoSectionIds: '$[1].infoSectionIds',\n returnEntity: '$[1].returnEntity',\n fields: '$[1].fields',\n },\n singleArgumentUnchanged: false,\n },\n ['products', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkRemoveInfoSectionsFromProductsOptions {\n /**\n * List of IDs of info sections to remove.\n * @format GUID\n * @minSize 1\n * @maxSize 100\n */\n infoSectionIds: string[];\n /**\n * Whether to return the full updated product entities in the response.\n *\n * Default: `false`\n */\n returnEntity?: boolean;\n /**\n * Fields to include in the response.\n * @maxSize 100\n */\n fields?: RequestedFieldsWithLiterals[];\n}\n\n/**\n * Adds multiple products, given the provided filter and search expression, to up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n * @public\n * @requiredField options.categoryIds\n * @permissionId CATEGORIES.CATEGORY_ADD_ITEM\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkAddProductsToCategoriesByFilter\n */\nexport async function bulkAddProductsToCategoriesByFilter(\n options?: NonNullablePaths<\n BulkAddProductsToCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n): Promise<\n NonNullablePaths<BulkAddProductsToCategoriesByFilterResponse, `jobId`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n categoryIds: options?.categoryIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkAddProductsToCategoriesByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n categoryIds: '$[0].categoryIds',\n search: '$[0].search',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkAddProductsToCategoriesByFilterOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories to which products will be added.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Removes multiple products, given the provided filter and search expression, from up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n * @public\n * @requiredField options.categoryIds\n * @permissionId CATEGORIES.CATEGORY_REMOVE_ITEM\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.BulkRemoveProductsFromCategoriesByFilter\n */\nexport async function bulkRemoveProductsFromCategoriesByFilter(\n options?: NonNullablePaths<\n BulkRemoveProductsFromCategoriesByFilterOptions,\n `categoryIds`,\n 2\n >\n): Promise<\n NonNullablePaths<BulkRemoveProductsFromCategoriesByFilterResponse, `jobId`, 2>\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n filter: options?.filter,\n categoryIds: options?.categoryIds,\n search: options?.search,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.bulkRemoveProductsFromCategoriesByFilter(\n payload\n );\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n filter: '$[0].filter',\n categoryIds: '$[0].categoryIds',\n search: '$[0].search',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkRemoveProductsFromCategoriesByFilterOptions {\n /** Filter object. */\n filter?: Record<string, any> | null;\n /**\n * IDs of the categories from which products will be removed.\n * @format GUID\n * @minSize 1\n * @maxSize 5\n */\n categoryIds: string[];\n /** Free text to match in searchable fields. */\n search?: WixCommonSearchDetails;\n}\n\n/**\n * Retrieves the id of \"All Products\" category which is automatically assigned to all products.\n * @public\n * @permissionId WIX_STORES.ALL_PRODUCTS_CATEGORY_READ\n * @applicableIdentity APP\n * @fqn wix.stores.catalog.v3.CatalogApi.GetAllProductsCategory\n */\nexport async function getAllProductsCategory(): Promise<\n NonNullablePaths<\n GetAllProductsCategoryResponse,\n `categoryId` | `treeReference.appNamespace`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({}, []);\n\n const reqOpts =\n ambassadorWixStoresCatalogV3Product.getAllProductsCategory(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data, [])!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixStoresCatalogV3CatalogApiUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'api._api_base_domain_': [\n {\n srcPath: '/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/stores',\n destPath: '',\n },\n ],\n 'www.wixapis.com': [\n {\n srcPath: '/stores/v3/products',\n destPath: '/v3/products',\n },\n {\n srcPath: '/stores/v3/bulk/products',\n destPath: '/v3/bulk/products',\n },\n {\n srcPath: '/stores/v3/products-with-inventory',\n destPath: '/v3/products-with-inventory',\n },\n {\n srcPath: '/stores/v3/bulk/products-with-inventory',\n destPath: '/v3/bulk/products-with-inventory',\n },\n {\n srcPath: '/stores/v3/all-products-category',\n destPath: '/v3/all-products-category',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'editor._base_domain_': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'blocks._base_domain_': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'create.editorx': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n 'editor.wixapps.net': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n _: [\n {\n srcPath: '/_api/stores-catalog-orchestrator',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_stores_products-v-3';\n\n/**\n * Creates a new product.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n */\nexport function createProduct(payload: object): RequestOptionsFactory<any> {\n function __createProduct({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'product.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.CreateProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createProduct;\n}\n\n/**\n * Creates a new product, and can create the product's inventory in the variants' default locations.\n *\n * This endpoint also allows to add a ribbon, brand, info sections, options, and modifiers.\n */\nexport function createProductWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __createProductWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.CreateProductWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products-with-inventory',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createProductWithInventory;\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants and options are mutually dependant and must be aligned.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n * > + Updating media per variant is not supported. Instead, assign media items to product option choices using the `linkedMedia` field. You must use preexisting product media.\n */\nexport function updateProduct(payload: object): RequestOptionsFactory<any> {\n function __updateProduct({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'product.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'PATCH' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.UpdateProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/{product.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateProduct;\n}\n\n/**\n * Updates a product.\n *\n * Each time the product is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the product.\n * This ensures you're working with the latest product and prevents unintended overwrites.\n *\n * >**Notes:**\n * > + To update array fields like `options`, `modifiers`, `variantsInfo.variants`, and any others, you must pass the entire existing array. Passing only the changed item will overwrite the entire array, not just merge the single change.\n * > + To update `variantsInfo.variants` you must also pass `options` and vise versa. This is because variants depend on options, and options depend on variants.\n * > + To update existing `variantsInfo.variants`, make sure to provide `variantsInfo.variants.id`. If no ID is passed, the variant will be created with a new ID.\n */\nexport function updateProductWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __updateProductWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'PATCH' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.UpdateProductWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products-with-inventory/{product.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateProductWithInventory;\n}\n\n/**\n * Creates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkCreateProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateProducts({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.createdDate' },\n { path: 'products.updatedDate' },\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n { path: 'products.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n { path: 'products.physicalProperties.shippingWeightRange.minValue' },\n { path: 'products.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'products.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'products.description.nodes.galleryData.options.item.ratio' },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n { path: 'products.description.nodes.pollData.poll.image.duration' },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'products.description.nodes.appEmbedData.image.duration' },\n { path: 'products.description.nodes.videoData.video.duration' },\n { path: 'products.description.nodes.videoData.thumbnail.duration' },\n { path: 'products.description.nodes.audioData.audio.duration' },\n { path: 'products.description.nodes.audioData.coverImage.duration' },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'products.variantsInfo.variants.physicalProperties.weight' },\n { path: 'products.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkCreateProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/create',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkCreateProducts;\n}\n\n/**\n * Creates up to 100 products, and can create the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of creatable entities in a single request.\n * > For example, you can create 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can create 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkCreateProductsWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkCreateProductsWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n { path: 'products.physicalProperties.shippingWeightRange.minValue' },\n { path: 'products.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'products.description.nodes.galleryData.options.item.ratio' },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n { path: 'products.description.nodes.pollData.poll.image.duration' },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'products.description.nodes.appEmbedData.image.duration' },\n { path: 'products.description.nodes.videoData.video.duration' },\n { path: 'products.description.nodes.videoData.thumbnail.duration' },\n { path: 'products.description.nodes.audioData.audio.duration' },\n { path: 'products.description.nodes.audioData.coverImage.duration' },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'products.variantsInfo.variants.physicalProperties.weight' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n { path: 'products.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'products.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkCreateProductsWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products-with-inventory/create',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'productResults.results.item.createdDate' },\n { path: 'productResults.results.item.updatedDate' },\n {\n path: 'productResults.results.item.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.media.main.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'productResults.results.item.physicalProperties.pricePerUnit.quantity',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.weight',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.weight',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkCreateProductsWithInventory;\n}\n\n/**\n * Updates up to 100 products.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkUpdateProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProducts({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'products.fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.product.createdDate' },\n { path: 'products.product.updatedDate' },\n { path: 'products.product.description.metadata.createdTimestamp' },\n { path: 'products.product.description.metadata.updatedTimestamp' },\n { path: 'products.product.media.main.image.urlExpirationDate' },\n { path: 'products.product.media.main.video.urlExpirationDate' },\n {\n path: 'products.product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'products.product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'products.product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/update',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkUpdateProducts;\n}\n\n/**\n * Updates up to 100 products, and can update the products' inventories in the variants' default locations.\n *\n * >**Note:**\n * > The following limits apply to the total number of updatable entities in a single request.\n * > For example, you can update 10 products with up to 10 options for each product (10 x 10 = 100), or one product with 100 options.\n * > Alternatively, you can update 100 products with up to 10 variants in each (100 x 10 = 1000), or one product with 1000 variants.\n * > + `options`: 100\n * > + `modifiers`: 100\n * > + `infoSections`: 100\n * > + `variantsInfo.variants`: 1000\n */\nexport function bulkUpdateProductsWithInventory(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProductsWithInventory({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'products.fieldMask' }],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'products.product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.product.variantsInfo.variants.physicalProperties.weight',\n },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'products.product.description.metadata.createdTimestamp' },\n { path: 'products.product.description.metadata.updatedTimestamp' },\n { path: 'products.product.media.main.image.urlExpirationDate' },\n { path: 'products.product.media.main.video.urlExpirationDate' },\n {\n path: 'products.product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.product.infoSections.description.metadata.updatedTimestamp',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsWithInventory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products-with-inventory/update',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'productResults.results.item.createdDate' },\n { path: 'productResults.results.item.updatedDate' },\n {\n path: 'productResults.results.item.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.media.main.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'productResults.results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n { path: 'inventoryResults.results.item.createdDate' },\n { path: 'inventoryResults.results.item.updatedDate' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'productResults.results.item.physicalProperties.pricePerUnit.quantity',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'productResults.results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'productResults.results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'productResults.results.item.variantsInfo.variants.physicalProperties.weight',\n },\n {\n path: 'productResults.results.item.minVariantPriceInfo.weight',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkUpdateProductsWithInventory;\n}\n\n/**\n * Updates multiple products, given the provided filter.\n *\n * To update `infoSections`, `brand` or `ribbon` fields, you must also pass their existing `id`.\n *\n * > **Note:**\n * > The following fields cannot be updated with this endpoint:\n * > + `slug`\n * > + `options`\n * > + `modifiers`\n * > + `variantsInfo`\n * >\n * > To update these fields, use [Bulk Update Products](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/bulk-update-products).\n */\nexport function bulkUpdateProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProductsByFilter({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n { path: 'product.media.main.video.resolutions.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n { path: 'product.physicalProperties.shippingWeightRange.minValue' },\n { path: 'product.physicalProperties.shippingWeightRange.maxValue' },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n { path: 'product.variantsInfo.variants.revenueDetails.profitMargin' },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n { path: 'product.minVariantPriceInfo.revenueDetails.profitMargin' },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n { path: 'product.description.nodes.galleryData.options.item.ratio' },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n { path: 'product.description.nodes.pollData.poll.image.duration' },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n { path: 'product.description.nodes.videoData.thumbnail.duration' },\n { path: 'product.description.nodes.audioData.audio.duration' },\n { path: 'product.description.nodes.audioData.coverImage.duration' },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n { path: 'product.variantsInfo.variants.physicalProperties.weight' },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/update-by-filter',\n data: serializedData,\n host,\n }),\n data: serializedData,\n };\n\n return metadata;\n }\n\n return __bulkUpdateProductsByFilter;\n}\n\n/** Deletes a product and all its variants. */\nexport function deleteProduct(payload: object): RequestOptionsFactory<any> {\n function __deleteProduct({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'DELETE' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.DeleteProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/{productId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteProduct;\n}\n\n/** Deletes multiple products. */\nexport function bulkDeleteProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkDeleteProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkDeleteProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/delete',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkDeleteProducts;\n}\n\n/** Delete multiple products, given the provided filter. */\nexport function bulkDeleteProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkDeleteProductsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.BulkDeleteProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/delete-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkDeleteProductsByFilter;\n}\n\n/**\n * Retrieves a product.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function getProduct(payload: object): RequestOptionsFactory<any> {\n function __getProduct({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.GetProduct',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/{productId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getProduct;\n}\n\n/**\n * Retrieves a product by slug.\n *\n * > **Note:**\n * > To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function getProductBySlug(payload: object): RequestOptionsFactory<any> {\n function __getProductBySlug({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.GetProductBySlug',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/slug/{slug}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'product.createdDate' },\n { path: 'product.updatedDate' },\n { path: 'product.description.metadata.createdTimestamp' },\n { path: 'product.description.metadata.updatedTimestamp' },\n { path: 'product.media.main.image.urlExpirationDate' },\n { path: 'product.media.main.video.urlExpirationDate' },\n {\n path: 'product.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'product.media.main.video.posters.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.image.urlExpirationDate' },\n { path: 'product.media.itemsInfo.items.video.urlExpirationDate' },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'product.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'product.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'product.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'product.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'product.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'product.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'product.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'product.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'product.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'product.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'product.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'product.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'product.description.nodes.imageData.image.duration' },\n { path: 'product.description.nodes.mapData.mapSettings.lat' },\n { path: 'product.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'product.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.description.nodes.pollData.design.poll.background.image.duration',\n },\n { path: 'product.description.nodes.appEmbedData.image.duration' },\n { path: 'product.description.nodes.videoData.video.duration' },\n {\n path: 'product.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'product.description.nodes.audioData.audio.duration' },\n {\n path: 'product.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'product.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'product.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'product.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'product.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'product.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'product.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getProductBySlug;\n}\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, search expression, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function searchProducts(payload: object): RequestOptionsFactory<any> {\n function __searchProducts({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'search.aggregations.range.buckets.from' },\n { path: 'search.aggregations.range.buckets.to' },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.from',\n },\n {\n path: 'search.aggregations.nested.nestedAggregations.range.buckets.to',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.SearchProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/search',\n data: serializedData,\n host,\n }),\n params: toURLSearchParams(serializedData, true),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'products.createdDate' },\n { path: 'products.updatedDate' },\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'products.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n { path: 'aggregationData.results.scalar.value' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.scalar.value',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.scalar.value',\n },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'products.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.description.nodes.appEmbedData.image.duration',\n },\n { path: 'products.description.nodes.videoData.video.duration' },\n {\n path: 'products.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'products.description.nodes.audioData.audio.duration' },\n {\n path: 'products.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'products.minVariantPriceInfo.weight' },\n { path: 'aggregationData.results.ranges.results.from' },\n { path: 'aggregationData.results.ranges.results.to' },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.from',\n },\n {\n path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.to',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.from',\n },\n {\n path: 'aggregationData.results.nested.results.results.*.range.to',\n },\n ],\n },\n ]),\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/search',\n data: serializedData,\n host,\n }),\n data: serializedData,\n },\n ],\n };\n\n return metadata;\n }\n\n return __searchProducts;\n}\n\n/**\n * Retrieves a list of up to 100 products, given the provided filtering, sorting, and cursor paging.\n * Pass supported values to the `fields` array in the request to include those fields in the response.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging).\n *\n * > **Notes:**\n * > + This method does not return `variantsInfo`. To retrieve product variants, use the Get Product method.\n * > + To retrieve a non-visible product (`visible: false`), your app must have the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.\n */\nexport function queryProducts(payload: object): RequestOptionsFactory<any> {\n function __queryProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.QueryProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/query',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload, true),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'products.createdDate' },\n { path: 'products.updatedDate' },\n { path: 'products.description.metadata.createdTimestamp' },\n { path: 'products.description.metadata.updatedTimestamp' },\n { path: 'products.media.main.image.urlExpirationDate' },\n { path: 'products.media.main.video.urlExpirationDate' },\n {\n path: 'products.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.main.video.resolutions.poster.urlExpirationDate',\n },\n { path: 'products.media.main.video.posters.urlExpirationDate' },\n {\n path: 'products.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'products.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'products.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'products.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'products.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'products.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'products.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'products.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'products.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'products.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'products.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'products.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'products.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.description.nodes.galleryData.options.item.ratio',\n },\n { path: 'products.description.nodes.imageData.image.duration' },\n { path: 'products.description.nodes.mapData.mapSettings.lat' },\n { path: 'products.description.nodes.mapData.mapSettings.lng' },\n {\n path: 'products.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.description.nodes.appEmbedData.image.duration',\n },\n { path: 'products.description.nodes.videoData.video.duration' },\n {\n path: 'products.description.nodes.videoData.thumbnail.duration',\n },\n { path: 'products.description.nodes.audioData.audio.duration' },\n {\n path: 'products.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'products.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'products.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'products.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'products.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'products.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'products.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/query',\n data: payload,\n host,\n }),\n data: payload,\n },\n ],\n };\n\n return metadata;\n }\n\n return __queryProducts;\n}\n\n/** Counts the number of products that match the provided filtering. */\nexport function countProducts(payload: object): RequestOptionsFactory<any> {\n function __countProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.CountProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/count',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload, true),\n\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/products/count',\n data: payload,\n host,\n }),\n data: payload,\n },\n ],\n };\n\n return metadata;\n }\n\n return __countProducts;\n}\n\n/**\n * Updates a variant of multiple products, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be updated:\n * + `visible`\n * + `price`\n * + `revenueDetails.cost`\n * + `physicalOptions`\n */\nexport function bulkUpdateProductVariantsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkUpdateProductVariantsByFilter({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n { path: 'variant.physicalProperties.weight' },\n { path: 'variant.physicalProperties.pricePerUnit.settings.quantity' },\n { path: 'variant.revenueDetails.profitMargin' },\n ],\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'variant.media.image.urlExpirationDate' },\n { path: 'variant.media.video.urlExpirationDate' },\n { path: 'variant.media.video.resolutions.urlExpirationDate' },\n { path: 'variant.media.video.resolutions.poster.urlExpirationDate' },\n { path: 'variant.media.video.posters.urlExpirationDate' },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkUpdateProductVariantsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/update-variants-by-filter',\n data: serializedData,\n host,\n }),\n data: serializedData,\n };\n\n return metadata;\n }\n\n return __bulkUpdateProductVariantsByFilter;\n}\n\n/**\n * Adjusts the price and cost of multiple variants, given the provided filter and search expression.\n *\n *\n * Only the following variant fields can be increased/decreased by amount or percentage:\n * + `compareAtPrice`\n * + `actualPrice`\n * + `cost`\n * + `compareAtPriceDiscount`\n */\nexport function bulkAdjustProductVariantsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAdjustProductVariantsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAdjustProductVariantsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/adjust-variants-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkAdjustProductVariantsByFilter;\n}\n\n/** Adds info sections to multiple products, given the provided filter and search expression. */\nexport function bulkAddInfoSectionsToProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAddInfoSectionsToProductsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/add-info-sections-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkAddInfoSectionsToProductsByFilter;\n}\n\n/** Adds info sections to multiple products. */\nexport function bulkAddInfoSectionsToProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAddInfoSectionsToProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAddInfoSectionsToProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/add-info-sections',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkAddInfoSectionsToProducts;\n}\n\n/** Removes info sections from multiple products, given the provided filter and search expression. */\nexport function bulkRemoveInfoSectionsFromProductsByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkRemoveInfoSectionsFromProductsByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProductsByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/remove-info-sections-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkRemoveInfoSectionsFromProductsByFilter;\n}\n\n/** Removes info sections from multiple products. */\nexport function bulkRemoveInfoSectionsFromProducts(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkRemoveInfoSectionsFromProducts({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkRemoveInfoSectionsFromProducts',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/remove-info-sections',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'results.item.createdDate' },\n { path: 'results.item.updatedDate' },\n { path: 'results.item.description.metadata.createdTimestamp' },\n { path: 'results.item.description.metadata.updatedTimestamp' },\n { path: 'results.item.media.main.image.urlExpirationDate' },\n { path: 'results.item.media.main.video.urlExpirationDate' },\n {\n path: 'results.item.media.main.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.main.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.image.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.media.itemsInfo.items.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.options.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.image.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.modifiers.choicesSettings.choices.linkedMedia.video.posters.urlExpirationDate',\n },\n {\n path: 'results.item.infoSections.description.metadata.createdTimestamp',\n },\n {\n path: 'results.item.infoSections.description.metadata.updatedTimestamp',\n },\n {\n path: 'results.item.variantsInfo.variants.media.image.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.resolutions.poster.urlExpirationDate',\n },\n {\n path: 'results.item.variantsInfo.variants.media.video.posters.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n { path: 'results.item.physicalProperties.pricePerUnit.quantity' },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.minValue',\n },\n {\n path: 'results.item.physicalProperties.shippingWeightRange.maxValue',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.pricePerUnit.settings.quantity',\n },\n {\n path: 'results.item.variantsInfo.variants.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.subscriptionDetails.subscriptions.discount.percentOff',\n },\n {\n path: 'results.item.minVariantPriceInfo.pricePerUnitData.settings.quantity',\n },\n {\n path: 'results.item.minVariantPriceInfo.revenueDetails.profitMargin',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'results.item.infoSections.description.nodes.imageData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'results.item.infoSections.description.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.appEmbedData.image.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.video.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.audio.duration',\n },\n {\n path: 'results.item.infoSections.description.nodes.audioData.coverImage.duration',\n },\n {\n path: 'results.item.variantsInfo.variants.physicalProperties.weight',\n },\n { path: 'results.item.minVariantPriceInfo.weight' },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __bulkRemoveInfoSectionsFromProducts;\n}\n\n/**\n * Adds multiple products, given the provided filter and search expression, to up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\nexport function bulkAddProductsToCategoriesByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkAddProductsToCategoriesByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkAddProductsToCategoriesByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/add-to-categories-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkAddProductsToCategoriesByFilter;\n}\n\n/**\n * Removes multiple products, given the provided filter and search expression, from up to 5 categories.\n *\n * Learn more about the [Categories API](https://dev.wix.com/docs/rest/business-management/categories/introduction).\n */\nexport function bulkRemoveProductsFromCategoriesByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkRemoveProductsFromCategoriesByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'POST' as any,\n methodFqn:\n 'wix.stores.catalog.v3.CatalogApi.BulkRemoveProductsFromCategoriesByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/bulk/products/remove-from-categories-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkRemoveProductsFromCategoriesByFilter;\n}\n\n/** Retrieves the id of \"All Products\" category which is automatically assigned to all products. */\nexport function getAllProductsCategory(\n payload: object\n): RequestOptionsFactory<any> {\n function __getAllProductsCategory({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.stores.catalog.v3.product',\n method: 'GET' as any,\n methodFqn: 'wix.stores.catalog.v3.CatalogApi.GetAllProductsCategory',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStoresCatalogV3CatalogApiUrl({\n protoPath: '/v3/all-products-category',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getAllProductsCategory;\n}\n","import {\n createProduct as publicCreateProduct,\n createProductWithInventory as publicCreateProductWithInventory,\n updateProduct as publicUpdateProduct,\n updateProductWithInventory as publicUpdateProductWithInventory,\n bulkCreateProducts as publicBulkCreateProducts,\n bulkCreateProductsWithInventory as publicBulkCreateProductsWithInventory,\n bulkUpdateProducts as publicBulkUpdateProducts,\n bulkUpdateProductsWithInventory as publicBulkUpdateProductsWithInventory,\n bulkUpdateProductsByFilter as publicBulkUpdateProductsByFilter,\n deleteProduct as publicDeleteProduct,\n bulkDeleteProducts as publicBulkDeleteProducts,\n bulkDeleteProductsByFilter as publicBulkDeleteProductsByFilter,\n getProduct as publicGetProduct,\n getProductBySlug as publicGetProductBySlug,\n searchProducts as publicSearchProducts,\n queryProducts as publicQueryProducts,\n countProducts as publicCountProducts,\n bulkUpdateProductVariantsByFilter as publicBulkUpdateProductVariantsByFilter,\n bulkAdjustProductVariantsByFilter as publicBulkAdjustProductVariantsByFilter,\n bulkAddInfoSectionsToProductsByFilter as publicBulkAddInfoSectionsToProductsByFilter,\n bulkAddInfoSectionsToProducts as publicBulkAddInfoSectionsToProducts,\n bulkRemoveInfoSectionsFromProductsByFilter as publicBulkRemoveInfoSectionsFromProductsByFilter,\n bulkRemoveInfoSectionsFromProducts as publicBulkRemoveInfoSectionsFromProducts,\n bulkAddProductsToCategoriesByFilter as publicBulkAddProductsToCategoriesByFilter,\n bulkRemoveProductsFromCategoriesByFilter as publicBulkRemoveProductsFromCategoriesByFilter,\n getAllProductsCategory as publicGetAllProductsCategory,\n} from './stores-catalog-v3-product-products-v-3.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { createEventModule } from '@wix/sdk-runtime/event-definition-modules';\nimport {\n BuildRESTFunction,\n MaybeContext,\n BuildEventDefinition,\n} from '@wix/sdk-types';\nimport { onProductCreated as publicOnProductCreated } from './stores-catalog-v3-product-products-v-3.public.js';\nimport { onProductDeleted as publicOnProductDeleted } from './stores-catalog-v3-product-products-v-3.public.js';\nimport { onProductUpdated as publicOnProductUpdated } from './stores-catalog-v3-product-products-v-3.public.js';\n\nexport const createProduct: MaybeContext<\n BuildRESTFunction<typeof publicCreateProduct> & typeof publicCreateProduct\n> = /*#__PURE__*/ createRESTModule(publicCreateProduct);\nexport const createProductWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicCreateProductWithInventory> &\n typeof publicCreateProductWithInventory\n> = /*#__PURE__*/ createRESTModule(publicCreateProductWithInventory);\nexport const updateProduct: MaybeContext<\n BuildRESTFunction<typeof publicUpdateProduct> & typeof publicUpdateProduct\n> = /*#__PURE__*/ createRESTModule(publicUpdateProduct);\nexport const updateProductWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicUpdateProductWithInventory> &\n typeof publicUpdateProductWithInventory\n> = /*#__PURE__*/ createRESTModule(publicUpdateProductWithInventory);\nexport const bulkCreateProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateProducts> &\n typeof publicBulkCreateProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateProducts);\nexport const bulkCreateProductsWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicBulkCreateProductsWithInventory> &\n typeof publicBulkCreateProductsWithInventory\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateProductsWithInventory);\nexport const bulkUpdateProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProducts> &\n typeof publicBulkUpdateProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProducts);\nexport const bulkUpdateProductsWithInventory: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProductsWithInventory> &\n typeof publicBulkUpdateProductsWithInventory\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProductsWithInventory);\nexport const bulkUpdateProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProductsByFilter> &\n typeof publicBulkUpdateProductsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProductsByFilter);\nexport const deleteProduct: MaybeContext<\n BuildRESTFunction<typeof publicDeleteProduct> & typeof publicDeleteProduct\n> = /*#__PURE__*/ createRESTModule(publicDeleteProduct);\nexport const bulkDeleteProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkDeleteProducts> &\n typeof publicBulkDeleteProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteProducts);\nexport const bulkDeleteProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkDeleteProductsByFilter> &\n typeof publicBulkDeleteProductsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteProductsByFilter);\nexport const getProduct: MaybeContext<\n BuildRESTFunction<typeof publicGetProduct> & typeof publicGetProduct\n> = /*#__PURE__*/ createRESTModule(publicGetProduct);\nexport const getProductBySlug: MaybeContext<\n BuildRESTFunction<typeof publicGetProductBySlug> &\n typeof publicGetProductBySlug\n> = /*#__PURE__*/ createRESTModule(publicGetProductBySlug);\nexport const searchProducts: MaybeContext<\n BuildRESTFunction<typeof publicSearchProducts> & typeof publicSearchProducts\n> = /*#__PURE__*/ createRESTModule(publicSearchProducts);\nexport const queryProducts: MaybeContext<\n BuildRESTFunction<typeof publicQueryProducts> & typeof publicQueryProducts\n> = /*#__PURE__*/ createRESTModule(publicQueryProducts);\nexport const countProducts: MaybeContext<\n BuildRESTFunction<typeof publicCountProducts> & typeof publicCountProducts\n> = /*#__PURE__*/ createRESTModule(publicCountProducts);\nexport const bulkUpdateProductVariantsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkUpdateProductVariantsByFilter> &\n typeof publicBulkUpdateProductVariantsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateProductVariantsByFilter);\nexport const bulkAdjustProductVariantsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkAdjustProductVariantsByFilter> &\n typeof publicBulkAdjustProductVariantsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkAdjustProductVariantsByFilter);\nexport const bulkAddInfoSectionsToProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkAddInfoSectionsToProductsByFilter> &\n typeof publicBulkAddInfoSectionsToProductsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkAddInfoSectionsToProductsByFilter);\nexport const bulkAddInfoSectionsToProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkAddInfoSectionsToProducts> &\n typeof publicBulkAddInfoSectionsToProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkAddInfoSectionsToProducts);\nexport const bulkRemoveInfoSectionsFromProductsByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkRemoveInfoSectionsFromProductsByFilter> &\n typeof publicBulkRemoveInfoSectionsFromProductsByFilter\n> = /*#__PURE__*/ createRESTModule(\n publicBulkRemoveInfoSectionsFromProductsByFilter\n);\nexport const bulkRemoveInfoSectionsFromProducts: MaybeContext<\n BuildRESTFunction<typeof publicBulkRemoveInfoSectionsFromProducts> &\n typeof publicBulkRemoveInfoSectionsFromProducts\n> = /*#__PURE__*/ createRESTModule(publicBulkRemoveInfoSectionsFromProducts);\nexport const bulkAddProductsToCategoriesByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkAddProductsToCategoriesByFilter> &\n typeof publicBulkAddProductsToCategoriesByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkAddProductsToCategoriesByFilter);\nexport const bulkRemoveProductsFromCategoriesByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkRemoveProductsFromCategoriesByFilter> &\n typeof publicBulkRemoveProductsFromCategoriesByFilter\n> = /*#__PURE__*/ createRESTModule(\n publicBulkRemoveProductsFromCategoriesByFilter\n);\nexport const getAllProductsCategory: MaybeContext<\n BuildRESTFunction<typeof publicGetAllProductsCategory> &\n typeof publicGetAllProductsCategory\n> = /*#__PURE__*/ createRESTModule(publicGetAllProductsCategory);\n/** */\nexport const onProductCreated: BuildEventDefinition<\n typeof publicOnProductCreated\n> &\n typeof publicOnProductCreated = createEventModule(publicOnProductCreated);\n/**\n * Triggered when a product is deleted.\n */\nexport const onProductDeleted: BuildEventDefinition<\n typeof publicOnProductDeleted\n> &\n typeof publicOnProductDeleted = createEventModule(publicOnProductDeleted);\n/**\n * Triggered when a product is updated.\n */\nexport const onProductUpdated: BuildEventDefinition<\n typeof publicOnProductUpdated\n> &\n typeof publicOnProductUpdated = createEventModule(publicOnProductUpdated);\n\nexport {\n NodeType,\n WidthType,\n PluginContainerDataAlignment,\n ButtonDataType,\n Target,\n TextAlignment,\n LineStyle,\n Width,\n DividerDataAlignment,\n ViewMode,\n LayoutType,\n Orientation,\n Crop,\n ThumbnailsAlignment,\n GIFType,\n Source,\n StylesPosition,\n MapType,\n ViewRole,\n VoteRole,\n PollLayoutType,\n PollLayoutDirection,\n BackgroundType,\n DecorationType,\n FontType,\n Position,\n AspectRatio,\n Resizing,\n Placement,\n Type,\n Alignment,\n Layout,\n AppType,\n InitialExpandedItems,\n Direction,\n VerticalAlignment,\n NullValue,\n MediaType,\n ProductOptionRenderType,\n ChoiceType,\n ModifierRenderType,\n InventoryAvailabilityStatus,\n PreorderStatus,\n ProductPreorderAvailability,\n ProductType,\n MeasurementUnit,\n WeightUnit,\n FileType,\n SubscriptionFrequency,\n DiscountType,\n Enum,\n State,\n WebhookIdentityType,\n SingleEntityOpsRequestedFields,\n SortOrder,\n SortType,\n SortDirection,\n MissingValues,\n ScalarType,\n NestedAggregationType,\n Interval,\n AggregationType,\n Mode,\n RequestedFields,\n CommonSortOrder,\n ValueAggregationSortType,\n ValueAggregationSortDirection,\n ValueAggregationMissingValues,\n CommonScalarType,\n NestedAggregationNestedAggregationType,\n DateHistogramAggregationInterval,\n CommonAggregationType,\n SearchDetailsMode,\n VariantsOpsRequestedFields,\n RoundingStrategy,\n AvailabilityStatus,\n EventType,\n CommonSearchDetailsMode,\n WixCommonSortOrder,\n AggregationValueAggregationSortType,\n AggregationValueAggregationSortDirection,\n AggregationValueAggregationMissingValues,\n WixCommonScalarType,\n AggregationNestedAggregationNestedAggregationType,\n AggregationDateHistogramAggregationInterval,\n WixCommonAggregationType,\n BulkAdjustProductVariantsByFilterRequestRoundingStrategy,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\nexport {\n V3Product,\n V3ProductTypedPropertiesOneOf,\n RichContent,\n Node,\n NodeDataOneOf,\n NodeStyle,\n ButtonData,\n Border,\n Colors,\n PluginContainerData,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Spoiler,\n Height,\n Styles,\n Link,\n LinkDataOneOf,\n Rel,\n CodeBlockData,\n TextStyle,\n DividerData,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n PDFSettings,\n GalleryData,\n V1Media,\n Image,\n Video,\n Item,\n ItemDataOneOf,\n GalleryOptions,\n GalleryOptionsLayout,\n ItemStyle,\n Thumbnails,\n GIFData,\n GIF,\n HeadingData,\n HTMLData,\n HTMLDataDataOneOf,\n ImageData,\n StylesBorder,\n ImageDataStyles,\n LinkPreviewData,\n LinkPreviewDataStyles,\n MapData,\n MapSettings,\n ParagraphData,\n PollData,\n Permissions,\n Option,\n PollSettings,\n PollLayout,\n OptionLayout,\n Gradient,\n Background,\n BackgroundBackgroundOneOf,\n PollDesign,\n OptionDesign,\n Poll,\n PollDataLayout,\n Design,\n TextData,\n Decoration,\n DecorationDataOneOf,\n AnchorData,\n ColorData,\n LinkData,\n MentionData,\n FontSizeData,\n SpoilerData,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n BookingData,\n EventData,\n ButtonStyles,\n ImageStyles,\n RibbonStyles,\n CardStyles,\n PricingData,\n VideoData,\n PlaybackOptions,\n EmbedData,\n Oembed,\n CollapsibleListData,\n TableData,\n Dimensions,\n TableCellData,\n CellStyle,\n BorderColors,\n ListValue,\n AudioData,\n OrderedListData,\n BulletedListData,\n BlockquoteData,\n CaptionData,\n LayoutCellData,\n Metadata,\n DocumentStyle,\n TextNodeStyle,\n Media,\n ProductMedia,\n ProductMediaSetByOneOf,\n ProductMediaMediaOneOf,\n VideoResolution,\n Thumbnail,\n MediaItemsInfo,\n SeoSchema,\n Keyword,\n Tag,\n Settings,\n ConnectedOption,\n ConnectedOptionOptionSettingsOneOf,\n ChoicesSettings,\n ConnectedOptionChoice,\n ConnectedOptionChoiceValueOneOf,\n MultipleColors,\n ConnectedModifier,\n ConnectedModifierModifierSettingsOneOf,\n FreeTextSettings,\n ModifierChoicesSettings,\n ConnectedModifierChoice,\n ConnectedModifierChoiceValueOneOf,\n Brand,\n InfoSection,\n Ribbon,\n ProductCategoriesInfo,\n ProductCategory,\n ProductCategoryIdsInfo,\n PriceRange,\n FixedMonetaryAmount,\n Inventory,\n PhysicalProperties,\n PricePerUnitSettings,\n WeightRange,\n PricePerUnitRange,\n PricePerUnitRangePricePerUnit,\n WeightMeasurementUnitInfo,\n BreadcrumbsInfo,\n BreadCrumb,\n VariantsInfo,\n Variant,\n VariantTypedPropertiesOneOf,\n OptionChoice,\n OptionChoiceIds,\n OptionChoiceNames,\n PriceInfo,\n RevenueDetails,\n VariantPhysicalProperties,\n PricePerUnit,\n VariantDigitalProperties,\n SecuredMedia,\n SubscriptionPricesInfo,\n SubscriptionPrice,\n SubscriptionPricePerUnit,\n InventoryStatus,\n ExtendedFields,\n SubscriptionDetails,\n Subscription,\n SubscriptionCyclesOneOf,\n SubscriptionDiscount,\n SubscriptionDiscountDiscountOneOf,\n VariantSummary,\n MinVariantPriceInfo,\n CreateBatchRequest,\n CreateBatchResponse,\n BulkAddProductsToBatchRequest,\n ProductItem,\n ProductWithInventory,\n ProductWithInventoryTypedPropertiesOneOf,\n V3VariantsInfo,\n VariantWithInventory,\n VariantWithInventoryTypedPropertiesOneOf,\n InventoryItemComposite,\n InventoryItemCompositeTrackingMethodOneOf,\n PreorderInfo,\n OptionChoiceReferences,\n V3OptionChoiceIds,\n V3OptionChoiceNames,\n V3ProductCategoryIdsInfo,\n BulkAddProductsToBatchResponse,\n WixCommonItemMetadata,\n ApplicationError,\n BulkItemResult,\n CommonBulkActionMetadata,\n SubmitBatchRequest,\n SubmitBatchResponse,\n UpdateDocumentsEvent,\n UpdateDocumentsEventOperationOneOf,\n DocumentUpdateOperation,\n IndexDocument,\n DocumentPayload,\n DocumentImage,\n DeleteByIdsOperation,\n DeleteByFilterOperation,\n UpdateByFilterOperation,\n UpdateExistingOperation,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n Empty,\n SearchIndexingNotification,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n App,\n Page,\n URI,\n File,\n CustomTag,\n DoNotCallCreateProductRequest,\n DoNotCallCreateProductResponse,\n DuplicateMediaIdAssignedToProduct,\n GetProductRequest,\n GetProductResponse,\n GetProductBySlugRequest,\n GetProductBySlugResponse,\n DoNotCallUpdateProductRequest,\n DoNotCallUpdateProductResponse,\n VariantsRemoved,\n UnsupportedFieldMasks,\n DeleteProductRequest,\n DeleteProductResponse,\n SearchProductsRequest,\n CursorSearch,\n CursorSearchPagingMethodOneOf,\n Sorting,\n Aggregation,\n AggregationKindOneOf,\n RangeBucket,\n IncludeMissingValuesOptions,\n ValueAggregation,\n ValueAggregationOptionsOneOf,\n RangeAggregation,\n ScalarAggregation,\n DateHistogramAggregation,\n NestedAggregationItem,\n NestedAggregationItemKindOneOf,\n NestedAggregation,\n SearchDetails,\n CursorPaging,\n SearchProductsResponse,\n CursorPagingMetadata,\n Cursors,\n AggregationData,\n ValueAggregationResult,\n RangeAggregationResult,\n NestedAggregationResults,\n NestedAggregationResultsResultOneOf,\n ValueResults,\n RangeResults,\n AggregationResultsScalarResult,\n NestedValueAggregationResult,\n ValueResult,\n RangeResult,\n ScalarResult,\n NestedResultValue,\n NestedResultValueResultOneOf,\n Results,\n DateHistogramResult,\n GroupByValueResults,\n DateHistogramResults,\n NestedResults,\n AggregationResults,\n AggregationResultsResultOneOf,\n SearchRelatedProductsRequest,\n SearchRelated,\n SearchRelatedDetails,\n SearchRelatedProductsResponse,\n EventuallyConsistentQueryProductsRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n EventuallyConsistentQueryProductsResponse,\n QueryProductsRequest,\n QueryProductsResponse,\n DeprecatedSearchProductsWithOffsetRequest,\n PlatformOffsetSearch,\n PlatformOffsetSearchPagingMethodOneOf,\n CommonSorting,\n CommonAggregation,\n CommonAggregationKindOneOf,\n RangeAggregationRangeBucket,\n ValueAggregationIncludeMissingValuesOptions,\n AggregationValueAggregation,\n AggregationValueAggregationOptionsOneOf,\n AggregationRangeAggregation,\n AggregationScalarAggregation,\n AggregationDateHistogramAggregation,\n NestedAggregationNestedAggregationItem,\n NestedAggregationNestedAggregationItemKindOneOf,\n AggregationNestedAggregation,\n GroupByAggregation,\n GroupByAggregationKindOneOf,\n CommonSearchDetails,\n PlatformPaging,\n DeprecatedSearchProductsWithOffsetResponse,\n PagingMetadata,\n RetrieveVariantsRequest,\n ProductVariantIds,\n VariantsCursorPaging,\n RetrieveVariantsResponse,\n ProductVariants,\n CountProductsRequest,\n CountProductsResponse,\n DoNotCallBulkCreateProductsRequest,\n DoNotCallBulkCreateProductsResponse,\n V3BulkProductResult,\n CommonItemMetadata,\n BulkActionMetadata,\n DoNotCallBulkUpdateProductsRequest,\n MaskedProduct,\n DoNotCallBulkUpdateProductsResponse,\n BulkUpdateProductsByFilterRequest,\n BulkUpdateProductsByFilterResponse,\n BulkDeleteProductsRequest,\n BulkDeleteProductsResponse,\n BulkProductResult,\n BulkDeleteProductsByFilterRequest,\n BulkDeleteProductsByFilterResponse,\n BulkAddInfoSectionsToProductsByFilterRequest,\n BulkAddInfoSectionsToProductsByFilterResponse,\n FulfillerDeleted,\n BulkAddInfoSectionsToProductsRequest,\n ProductIdWithRevision,\n BulkAddInfoSectionsToProductsResponse,\n BulkRemoveInfoSectionsFromProductsByFilterRequest,\n BulkRemoveInfoSectionsFromProductsByFilterResponse,\n BulkRemoveInfoSectionsFromProductsRequest,\n BulkRemoveInfoSectionsFromProductsResponse,\n BulkUpdateVariantsByFilterRequest,\n BulkUpdateVariantsByFilterResponse,\n BulkAdjustProductVariantsByFilterRequest,\n AdjustValue,\n AdjustValueAdjustValueOneOf,\n UnsignedAdjustValue,\n UnsignedAdjustValueAdjustValueOneOf,\n BulkAdjustProductVariantsByFilterResponse,\n BulkInventoryItemAction,\n InventoryItem,\n InventoryItemTrackingMethodOneOf,\n Product,\n CalculateProductInventorPreorderStatusAsyncRequest,\n CalculateProductInventorPreorderStatusAsyncResponse,\n CreateProductRequest,\n CreateProductResponse,\n VariantsNotAlignedWithProduct,\n VariantNotAlignedWithProduct,\n CreateProductWithInventoryRequest,\n CreateProductWithInventoryResponse,\n BulkInventoryItemResults,\n BulkInventoryItemResult,\n ItemMetadata,\n WixCommonBulkActionMetadata,\n UpdateProductRequest,\n UpdateProductResponse,\n UpdateProductWithInventoryRequest,\n UpdateProductWithInventoryResponse,\n BulkCreateProductsRequest,\n BulkCreateProductsResponse,\n CatalogV3BulkProductResult,\n UpstreamWixCommonItemMetadata,\n InvalidDigitalFileIds,\n BulkCreateProductsWithInventoryRequest,\n BulkCreateProductsWithInventoryResponse,\n BulkProductResults,\n BulkUpdateProductsRequest,\n V3MaskedProduct,\n BulkUpdateProductsResponse,\n BulkUpdateProductsWithInventoryRequest,\n MaskedProductWithInventory,\n BulkUpdateProductsWithInventoryResponse,\n V3BulkUpdateProductsByFilterRequest,\n WixCommonSearchDetails,\n V3BulkUpdateProductsByFilterResponse,\n V3DeleteProductRequest,\n V3DeleteProductResponse,\n V3BulkDeleteProductsRequest,\n V3BulkDeleteProductsResponse,\n BulkDeleteProductsResponseBulkProductResult,\n V3BulkDeleteProductsByFilterRequest,\n V3BulkDeleteProductsByFilterResponse,\n V3GetProductRequest,\n V3GetProductResponse,\n V3GetProductBySlugRequest,\n V3GetProductBySlugResponse,\n V3SearchProductsRequest,\n CommonCursorSearch,\n CommonCursorSearchPagingMethodOneOf,\n WixCommonSorting,\n WixCommonAggregation,\n WixCommonAggregationKindOneOf,\n AggregationRangeAggregationRangeBucket,\n AggregationValueAggregationIncludeMissingValuesOptions,\n CommonAggregationValueAggregation,\n CommonAggregationValueAggregationOptionsOneOf,\n CommonAggregationRangeAggregation,\n CommonAggregationScalarAggregation,\n CommonAggregationDateHistogramAggregation,\n AggregationNestedAggregationNestedAggregationItem,\n AggregationNestedAggregationNestedAggregationItemKindOneOf,\n CommonAggregationNestedAggregation,\n CommonCursorPaging,\n V3SearchProductsResponse,\n CommonCursorPagingMetadata,\n CommonCursors,\n CommonAggregationData,\n ValueResultsValueAggregationResult,\n RangeResultsRangeAggregationResult,\n AggregationResultsNestedAggregationResults,\n AggregationResultsNestedAggregationResultsResultOneOf,\n AggregationResultsValueResults,\n AggregationResultsRangeResults,\n AggregationDataAggregationResultsScalarResult,\n GroupByValueResultsNestedValueAggregationResult,\n NestedResultsValueResult,\n NestedResultsRangeResult,\n NestedResultsScalarResult,\n NestedResultsNestedResultValue,\n NestedResultsNestedResultValueResultOneOf,\n NestedResultsResults,\n DateHistogramResultsDateHistogramResult,\n AggregationResultsGroupByValueResults,\n AggregationResultsDateHistogramResults,\n AggregationResultsNestedResults,\n AggregationDataAggregationResults,\n AggregationDataAggregationResultsResultOneOf,\n V3QueryProductsRequest,\n CommonCursorQuery,\n CommonCursorQueryPagingMethodOneOf,\n V3QueryProductsResponse,\n V3CountProductsRequest,\n V3CountProductsResponse,\n BulkUpdateProductVariantsByFilterRequest,\n BulkUpdateProductVariantsByFilterResponse,\n V3BulkAdjustProductVariantsByFilterRequest,\n V3AdjustValue,\n V3AdjustValueAdjustValueOneOf,\n V3UnsignedAdjustValue,\n V3UnsignedAdjustValueAdjustValueOneOf,\n V3BulkAdjustProductVariantsByFilterResponse,\n V3BulkAddInfoSectionsToProductsByFilterRequest,\n V3BulkAddInfoSectionsToProductsByFilterResponse,\n V3BulkAddInfoSectionsToProductsRequest,\n V3ProductIdWithRevision,\n V3BulkAddInfoSectionsToProductsResponse,\n V3BulkRemoveInfoSectionsFromProductsByFilterRequest,\n V3BulkRemoveInfoSectionsFromProductsByFilterResponse,\n V3BulkRemoveInfoSectionsFromProductsRequest,\n V3BulkRemoveInfoSectionsFromProductsResponse,\n BulkAddProductsToCategoriesByFilterRequest,\n BulkAddProductsToCategoriesByFilterResponse,\n BulkRemoveProductsFromCategoriesByFilterRequest,\n BulkRemoveProductsFromCategoriesByFilterResponse,\n GetAllProductsCategoryRequest,\n GetAllProductsCategoryResponse,\n TreeReference,\n BaseEventMetadata,\n EventMetadata,\n ProductCreatedEnvelope,\n ProductDeletedEnvelope,\n ProductUpdatedEnvelope,\n CreateProductOptions,\n CreateProductWithInventoryOptions,\n UpdateProduct,\n UpdateProductOptions,\n UpdateProductWithInventoryProduct,\n UpdateProductWithInventoryOptions,\n BulkCreateProductsOptions,\n BulkCreateProductsWithInventoryOptions,\n BulkUpdateProductsOptions,\n BulkUpdateProductsWithInventoryOptions,\n BulkUpdateProductsByFilterOptions,\n BulkDeleteProductsByFilterOptions,\n GetProductOptions,\n GetProductBySlugOptions,\n SearchProductsOptions,\n V3ProductSearchSpec,\n QueryProductsOptions,\n ProductsQueryResult,\n ProductsQueryBuilder,\n CountProductsOptions,\n BulkUpdateProductVariantsByFilterOptions,\n BulkAdjustProductVariantsByFilterOptions,\n BulkAddInfoSectionsToProductsByFilterOptions,\n BulkAddInfoSectionsToProductsOptions,\n BulkRemoveInfoSectionsFromProductsByFilterOptions,\n BulkRemoveInfoSectionsFromProductsOptions,\n BulkAddProductsToCategoriesByFilterOptions,\n BulkRemoveProductsFromCategoriesByFilterOptions,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\nexport {\n NodeTypeWithLiterals,\n WidthTypeWithLiterals,\n PluginContainerDataAlignmentWithLiterals,\n ButtonDataTypeWithLiterals,\n TargetWithLiterals,\n TextAlignmentWithLiterals,\n LineStyleWithLiterals,\n WidthWithLiterals,\n DividerDataAlignmentWithLiterals,\n ViewModeWithLiterals,\n LayoutTypeWithLiterals,\n OrientationWithLiterals,\n CropWithLiterals,\n ThumbnailsAlignmentWithLiterals,\n GIFTypeWithLiterals,\n SourceWithLiterals,\n StylesPositionWithLiterals,\n MapTypeWithLiterals,\n ViewRoleWithLiterals,\n VoteRoleWithLiterals,\n PollLayoutTypeWithLiterals,\n PollLayoutDirectionWithLiterals,\n BackgroundTypeWithLiterals,\n DecorationTypeWithLiterals,\n FontTypeWithLiterals,\n PositionWithLiterals,\n AspectRatioWithLiterals,\n ResizingWithLiterals,\n PlacementWithLiterals,\n TypeWithLiterals,\n AlignmentWithLiterals,\n LayoutWithLiterals,\n AppTypeWithLiterals,\n InitialExpandedItemsWithLiterals,\n DirectionWithLiterals,\n VerticalAlignmentWithLiterals,\n NullValueWithLiterals,\n MediaTypeWithLiterals,\n ProductOptionRenderTypeWithLiterals,\n ChoiceTypeWithLiterals,\n ModifierRenderTypeWithLiterals,\n InventoryAvailabilityStatusWithLiterals,\n PreorderStatusWithLiterals,\n ProductPreorderAvailabilityWithLiterals,\n ProductTypeWithLiterals,\n MeasurementUnitWithLiterals,\n WeightUnitWithLiterals,\n FileTypeWithLiterals,\n SubscriptionFrequencyWithLiterals,\n DiscountTypeWithLiterals,\n EnumWithLiterals,\n StateWithLiterals,\n WebhookIdentityTypeWithLiterals,\n SingleEntityOpsRequestedFieldsWithLiterals,\n SortOrderWithLiterals,\n SortTypeWithLiterals,\n SortDirectionWithLiterals,\n MissingValuesWithLiterals,\n ScalarTypeWithLiterals,\n NestedAggregationTypeWithLiterals,\n IntervalWithLiterals,\n AggregationTypeWithLiterals,\n ModeWithLiterals,\n RequestedFieldsWithLiterals,\n CommonSortOrderWithLiterals,\n ValueAggregationSortTypeWithLiterals,\n ValueAggregationSortDirectionWithLiterals,\n ValueAggregationMissingValuesWithLiterals,\n CommonScalarTypeWithLiterals,\n NestedAggregationNestedAggregationTypeWithLiterals,\n DateHistogramAggregationIntervalWithLiterals,\n CommonAggregationTypeWithLiterals,\n SearchDetailsModeWithLiterals,\n VariantsOpsRequestedFieldsWithLiterals,\n RoundingStrategyWithLiterals,\n AvailabilityStatusWithLiterals,\n EventTypeWithLiterals,\n CommonSearchDetailsModeWithLiterals,\n WixCommonSortOrderWithLiterals,\n AggregationValueAggregationSortTypeWithLiterals,\n AggregationValueAggregationSortDirectionWithLiterals,\n AggregationValueAggregationMissingValuesWithLiterals,\n WixCommonScalarTypeWithLiterals,\n AggregationNestedAggregationNestedAggregationTypeWithLiterals,\n AggregationDateHistogramAggregationIntervalWithLiterals,\n WixCommonAggregationTypeWithLiterals,\n BulkAdjustProductVariantsByFilterRequestRoundingStrategyWithLiterals,\n CreateProductApplicationErrors,\n CreateProductValidationErrors,\n CreateProductWithInventoryApplicationErrors,\n CreateProductWithInventoryValidationErrors,\n UpdateProductApplicationErrors,\n UpdateProductValidationErrors,\n UpdateProductWithInventoryApplicationErrors,\n UpdateProductWithInventoryValidationErrors,\n BulkCreateProductsApplicationErrors,\n BulkCreateProductsValidationErrors,\n BulkCreateProductsWithInventoryApplicationErrors,\n BulkCreateProductsWithInventoryValidationErrors,\n BulkUpdateProductsApplicationErrors,\n BulkUpdateProductsValidationErrors,\n BulkUpdateProductsWithInventoryApplicationErrors,\n BulkUpdateProductsWithInventoryValidationErrors,\n BulkUpdateProductsByFilterApplicationErrors,\n BulkUpdateProductsByFilterValidationErrors,\n BulkDeleteProductsValidationErrors,\n GetProductApplicationErrors,\n GetProductBySlugApplicationErrors,\n SearchProductsApplicationErrors,\n QueryProductsApplicationErrors,\n CountProductsApplicationErrors,\n BulkUpdateProductVariantsByFilterApplicationErrors,\n BulkUpdateProductVariantsByFilterValidationErrors,\n BulkAdjustProductVariantsByFilterApplicationErrors,\n BulkAdjustProductVariantsByFilterValidationErrors,\n BulkAddInfoSectionsToProductsByFilterApplicationErrors,\n BulkAddInfoSectionsToProductsApplicationErrors,\n CommonSearchWithEntityContext,\n V3ProductSearch,\n} from './stores-catalog-v3-product-products-v-3.universal.js';\n"],"mappings":"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a;AAAA,UACb,OAAO;AAAA,YACL;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAA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M;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YAC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","names":["bulkAddInfoSectionsToProducts","bulkAddInfoSectionsToProductsByFilter","bulkAddProductsToCategoriesByFilter","bulkAdjustProductVariantsByFilter","bulkCreateProducts","bulkCreateProductsWithInventory","bulkDeleteProducts","bulkDeleteProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveProductsFromCategoriesByFilter","bulkUpdateProductVariantsByFilter","bulkUpdateProducts","bulkUpdateProductsByFilter","bulkUpdateProductsWithInventory","countProducts","createProduct","createProductWithInventory","deleteProduct","getAllProductsCategory","getProduct","getProductBySlug","onProductCreated","onProductDeleted","onProductUpdated","queryProducts","searchProducts","updateProduct","updateProductWithInventory","import_rename_all_nested_keys","import_float","import_image","import_page_url_v2","import_timestamp","import_transform_paths","import_video_v2","import_float","import_timestamp","import_rest_modules","payload","import_image","import_video_v2","import_page_url_v2","import_transform_paths","NodeType","WidthType","PluginContainerDataAlignment","ButtonDataType","Target","TextAlignment","LineStyle","Width","DividerDataAlignment","ViewMode","LayoutType","Orientation","Crop","ThumbnailsAlignment","GIFType","Source","StylesPosition","MapType","ViewRole","VoteRole","PollLayoutType","PollLayoutDirection","BackgroundType","DecorationType","FontType","Position","AspectRatio","Resizing","Placement","Type","Alignment","Layout","AppType","InitialExpandedItems","Direction","VerticalAlignment","NullValue","MediaType","ProductOptionRenderType","ChoiceType","ModifierRenderType","InventoryAvailabilityStatus","PreorderStatus","ProductPreorderAvailability","ProductType","MeasurementUnit","WeightUnit","FileType","SubscriptionFrequency","DiscountType","Enum","State","WebhookIdentityType","SingleEntityOpsRequestedFields","SortOrder","SortType","SortDirection","MissingValues","ScalarType","NestedAggregationType","Interval","AggregationType","Mode","RequestedFields","CommonSortOrder","ValueAggregationSortType","ValueAggregationSortDirection","ValueAggregationMissingValues","CommonScalarType","NestedAggregationNestedAggregationType","DateHistogramAggregationInterval","CommonAggregationType","SearchDetailsMode","VariantsOpsRequestedFields","RoundingStrategy","AvailabilityStatus","EventType","CommonSearchDetailsMode","WixCommonSortOrder","AggregationValueAggregationSortType","AggregationValueAggregationSortDirection","AggregationValueAggregationMissingValues","WixCommonScalarType","AggregationNestedAggregationNestedAggregationType","AggregationDateHistogramAggregationInterval","WixCommonAggregationType","BulkAdjustProductVariantsByFilterRequestRoundingStrategy","createProduct","sdkTransformError","createProductWithInventory","updateProduct","updateProductWithInventory","bulkCreateProducts","bulkCreateProductsWithInventory","bulkUpdateProducts","bulkUpdateProductsWithInventory","bulkUpdateProductsByFilter","deleteProduct","bulkDeleteProducts","bulkDeleteProductsByFilter","getProduct","getProductBySlug","searchProducts","queryProducts","countProducts","bulkUpdateProductVariantsByFilter","bulkAdjustProductVariantsByFilter","bulkAddInfoSectionsToProductsByFilter","bulkAddInfoSectionsToProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkAddProductsToCategoriesByFilter","bulkRemoveProductsFromCategoriesByFilter","getAllProductsCategory","createProduct","createProductWithInventory","updateProduct","updateProductWithInventory","bulkCreateProducts","bulkCreateProductsWithInventory","bulkUpdateProducts","bulkUpdateProductsWithInventory","bulkUpdateProductsByFilter","deleteProduct","bulkDeleteProducts","bulkDeleteProductsByFilter","getProduct","getProductBySlug","searchProducts","queryProducts","countProducts","bulkUpdateProductVariantsByFilter","bulkAdjustProductVariantsByFilter","bulkAddInfoSectionsToProductsByFilter","bulkAddInfoSectionsToProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkAddProductsToCategoriesByFilter","bulkRemoveProductsFromCategoriesByFilter","getAllProductsCategory","import_rest_modules","createProduct","createProductWithInventory","updateProduct","updateProductWithInventory","bulkCreateProducts","bulkCreateProductsWithInventory","bulkUpdateProducts","bulkUpdateProductsWithInventory","bulkUpdateProductsByFilter","deleteProduct","bulkDeleteProducts","bulkDeleteProductsByFilter","getProduct","getProductBySlug","searchProducts","queryProducts","countProducts","bulkUpdateProductVariantsByFilter","bulkAdjustProductVariantsByFilter","bulkAddInfoSectionsToProductsByFilter","bulkAddInfoSectionsToProducts","bulkRemoveInfoSectionsFromProductsByFilter","bulkRemoveInfoSectionsFromProducts","bulkAddProductsToCategoriesByFilter","bulkRemoveProductsFromCategoriesByFilter","getAllProductsCategory","onProductCreated","onProductDeleted","onProductUpdated"]}