> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # Resource: Read-Only Variants V3 # Type: Read Only Variant Object # Link: https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/read-only-variants-v3/read-only-variant-object.md ## Description: A read-only representation of a product variant with enhanced query capabilities. Product variants represent different options of a product, such as size, color, or material combinations. This read-only variant provides direct access to variant data without requiring nested product queries, making it ideal for inventory management, variant comparison, and e-commerce catalog displays. The variant includes both variant-specific information (like SKU, price, and option choices), as well as contextual product information (like product name, visibility, categories) for convenience. ## Schema: ```json Type: Read Only Variant Object | type: ReadOnlyVariant Description: A read-only representation of a product variant with enhanced query capabilities. Product variants represent different options of a product, such as size, color, or material combinations. This read-only variant provides direct access to variant data without requiring nested product queries, making it ideal for inventory management, variant comparison, and e-commerce catalog displays. The variant includes both variant-specific information (like SKU, price, and option choices), as well as contextual product information (like product name, visibility, categories) for convenience. - name: id | type: string | description: Variant ID. - name: visible | type: boolean | description: Whether the variant is visible to site visitors. Default: `true` - name: value | type: boolean | description: - name: sku | type: string | description: Stock keeping unit (SKU) for inventory tracking and identification. The SKU is typically used for inventory management, order fulfillment, and product identification across different systems. - name: value | type: string | description: - name: barcode | type: string | description: Barcode for the variant, typically used for point-of-sale systems and inventory management. Common barcode formats include UPC, EAN, and Code 128. The barcode helps with quick product identification and checkout processes. - name: optionChoices | type: Array | description: Product option choices that define this variant. Each option choice represents a specific selection for a product option (like "Size: Large" or "Color: Red"). An empty list indicates this is the default variant of a product with no managed options. - name: optionChoiceIds | type: OptionChoiceIds | description: Option and choice identifiers. - name: optionId | type: string | description: Product option ID. - name: choiceId | type: string | description: Specific choice ID within the option. - name: optionChoiceNames | type: OptionChoiceNames | description: Human-readable option and choice names. - name: optionName | type: string | description: Display name of the product option. For example, "Size", "Color", or "Material". - name: choiceName | type: string | description: Display name of the chosen option value. For example, "Large", "Red", or "Cotton". - name: renderType | type: string | description: Visual representation style for the option choice. Determines how the option is displayed in the product selector UI. Common values include "TEXT_CHOICES", "COLOR_CHOICES", or "IMAGE_CHOICES". - name: price | type: PriceInfo | description: Pricing information for the variant. - name: actualPrice | type: FixedMonetaryAmount | description: Current selling price of the variant. - name: amount | type: string | description: Monetary amount. For example, `"3.99"`, or `"-4.99"` for a negative amount. - name: formattedAmount | type: string | description: Formatted monetary amount. For example, `"$3.99"`. > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Read-Only Variants API requests. - name: compareAtPrice | type: FixedMonetaryAmount | description: Original price before any discounts. Used to show customers the savings when the variant is on sale. If not set, no original price is displayed. - name: revenueDetails | type: RevenueDetails | description: Revenue and cost details for business analytics. Includes cost, profit, and profit margin calculations. Returned only when you pass `"MERCHANT_DATA"` to the `fields` parameter. - name: cost | type: FixedMonetaryAmount | description: Cost of the variant for profit calculations. The amount you pay to produce or acquire this variant. - name: profit | type: FixedMonetaryAmount | description: Profit amount calculated by subtracting cost from the discounted price. - name: profitMargin | type: number | description: Profit margin as a percentage of the selling price. Calculated by dividing profit by the discounted price. The result is rounded to 4 decimal places. A value of 0.25 represents a 25% profit margin. - name: media | type: ProductMedia | description: Media associated with the variant. Typically includes images, videos, or other media files specific to this variant. - name: altText | type: string | description: Image alt text. - name: displayName | type: string | description: Media display name. Allows to override the default media name. Can be passed only when `setBy: url`. - name: mediaType | type: string | description: Media type. enum: IMAGE, VIDEO - name: thumbnail | type: Thumbnail | description: Media thumbnail. - name: url | type: string | description: Thumbnail URL. - name: height | type: number | description: Thumbnail height. - name: width | type: number | description: Thumbnail width. - name: altText | type: string | description: Thumbnail alt text. - name: uploadId | type: string | description: ID used to upload media to Wix Media Manager. - name: subscriptionPricesInfo | type: SubscriptionPricesInfo | description: Subscription pricing information when the variant is part of subscription plans. Shows calculated prices after applying subscription discounts to the variant's price. Returned only when you pass `"SUBSCRIPTION_PRICES_INFO"` to the `fields` parameter. - name: subscriptionPrices | type: Array | description: Pricing for different subscription plans. Shows how the variant's price changes with different subscription intervals or discounts. - name: subscriptionId | type: string | description: Subscription plan ID. - name: price | type: FixedMonetaryAmount | description: Variant price with subscription discount applied. - name: pricePerUnit | type: SubscriptionPricePerUnit | description: Price per unit for subscription pricing. - name: inventoryStatus | type: InventoryStatus | description: Current inventory and availability status. - name: inStock | type: boolean | description: Whether the variant is currently in stock and available for purchase. - name: preorderEnabled | type: boolean | description: Whether customers can place preorders for this variant when it's out of stock. - name: productData | type: ProductFields | description: Product information for context and convenience. Includes essential product details like name, visibility, and categories to avoid requiring separate product API calls when working with variants. - name: productId | type: string | description: Product ID. - name: name | type: string | description: Product name displayed to customers. - name: productType | type: string | description: Type of product determining available properties and behavior. enum: PHYSICAL, DIGITAL - name: slug | type: string | description: URL-friendly identifier for the product. Used in product page URLs and for SEO optimization. - name: visible | type: boolean | description: Whether the product is visible to site visitors. Default: `true` - name: visibleInPos | type: boolean | description: Whether the product appears in point-of-sale systems. Default: `true` Always `false` for digital products. - name: mainCategoryId | type: string | description: Primary category assignment for the product. Determines the main category used for navigation and organization. - name: currency | type: string | description: Currency used for pricing this product. Three-letter currency code in ISO-4217 alphabetic format. Defaults to the site's currency setting unless specified in request headers. Returned only when you pass `"CURRENCY"` to the `fields` parameter. - name: revision | type: string | description: Revision number, which increments by 1 each time the product is updated. To prevent conflicting changes, the current revision must be passed when updating the product. - name: value | type: string | description: - name: handle | type: string | description: A unique human-friendly identifier for the product. The handle can be set by the user to ensure consistency across multiple platforms. ```