> 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 # GetProductBySlug # Package: catalogV3 # Namespace: CatalogApi # Method link: https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/get-product-by-slug.md ## Permission Scopes: Read products in v3 catalog: SCOPE.STORES.PRODUCT_READ Product v3 read admin: SCOPE.STORES.PRODUCT_READ_ADMIN ## Introduction Retrieves a product by slug. > **Note:** > To retrieve a non-visible product (`visible: false`), your app must have the 'Product v3 read admin' (`SCOPE.STORES.PRODUCT_READ_ADMIN`) permission scope. --- ## REST API ### Schema ``` Method: getProductBySlug Description: Retrieves a product by slug. > **Note:** > To retrieve a non-visible product (`visible: false`), your app must have the 'Product v3 read admin' (`SCOPE.STORES.PRODUCT_READ_ADMIN`) permission scope. URL: https://www.wixapis.com/stores/v3/products/slug/{slug} Method: GET # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: slug Method parameters: query param name: fields | type: array | description: Fields to include in the response. - enum: - URL: The product's public storefront URL, including both relative path and full URL with base domain. - CURRENCY: Currency information including the currency code and formatted price amounts for storefront display. - INFO_SECTION: Returns basic info section metadata including IDs, unique names, and titles. Use with `INFO_SECTION_DESCRIPTION` or `INFO_SECTION_PLAIN_DESCRIPTION` to include content. - MERCHANT_DATA: Returns merchant-related financial data including cost ranges and variant revenue details like cost, profit, and profit margin. Requires the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope. - PLAIN_DESCRIPTION: Provides product description as plain HTML text. - INFO_SECTION_PLAIN_DESCRIPTION: Returns info section descriptions as HTML content. Use with `INFO_SECTION` for complete metadata. - SUBSCRIPTION_PRICES_INFO: Details subscription pricing options, empty for non-subscription products. - BREADCRUMBS_INFO: Returns the category breadcrumb navigation path from root categories down to the product's main category, including category IDs, names, and slugs. - WEIGHT_MEASUREMENT_UNIT_INFO: Returns the weight measurement unit (KG, LB) for the product. - VARIANT_OPTION_CHOICE_NAMES: Enriches variant choices with human-readable option and choice names alongside render types. - MEDIA_ITEMS_INFO: Returns all media items associated with the product, including detailed metadata (URLs, alt-text, dimensions, filenames, file sizes). - DESCRIPTION: Returns the product description as rich content with complete node structure, metadata, and styling information. - DIRECT_CATEGORIES_INFO: Provides the IDs and indexes of categories the product is directly assigned to. - ALL_CATEGORIES_INFO: Provides IDs and indexes for all categories including inherited parent categories. - INFO_SECTION_DESCRIPTION: Returns info section descriptions as rich content with complete node structure, metadata, and styling information. Use with `INFO_SECTION` for complete metadata. - THUMBNAIL: Returns an optimized thumbnail image with standard dimensions, suitable for listings or previews. - PRODUCT_CHOICES_MEDIA_REFERENCES: Returns media references associated with product option and modifier choices instead of the deprecated `linked_media` field. When requested, choice objects will populate `media_references` with lightweight `MediaReference` objects containing only media IDs, while the `linked_media` field will be returned empty to avoid duplication and reduce response payload size. To get full media metadata (dimensions, alt text, filenames, etc.), request `MEDIA_ITEMS_INFO` on the product and correlate by media ID. > **Note:** The `media_references` field is available on `ConnectedOptionChoice` and `ConnectedModifierChoice` objects. - PRODUCT_CHOICES_DISPLAY_IMAGE: Returns display images for product option and modifier choices. When requested, choice objects will populate `display_image` with a lightweight image containing only ID, URL, and alt text. param name: slug | type: none | required: true Return type: GetProductBySlugResponse - name: product | type: Product | description: Product. - ONE-OF: - name: physicalProperties | type: PhysicalProperties | description: Physical properties. Required when `productType: PHYSICAL`. - name: pricePerUnit | type: PricePerUnitSettings | description: Price per unit settings. > **Note:** Use this field only when relevant. For example, for products that are sold by weight, volume, or length. - name: quantity | type: number | description: Quantity. For example, to define price per per 100 grams, set this field to `100`. - name: measurementUnit | type: MeasurementUnit | description: Measurement unit. For example, to define price per 100 grams, set this field to "G". - enum: UNSPECIFIED, ML, CL, L, CBM, MG, G, KG, MM, CM, M, SQM, OZ, LB, FLOZ, PT, QT, GAL, IN, FT, YD, SQFT - name: fulfillerId | type: string | description: Fulfiller GUID. - name: shippingWeightRange | type: WeightRange | description: Product shipping weight range - Calculated from the lightest and heaviest variant shipping weights. - name: minValue | type: number | description: Minimum weight across all variants associated with this product. - name: maxValue | type: number | description: Maximum weight across all variants associated with this product. - name: pricePerUnitRange | type: PricePerUnitRange | description: Product price per unit range. The minimum and maximum price per unit of all the variants. - name: minValue | type: PricePerUnit | description: Minimum price per unit across all variants. - name: value | type: string | description: Calculated value of price per unit. Takes into account pricePerUnit settings of product and variants and price of variants. For example if discounted price is 2$, product's price per unit setting is 1 Kg, variant price per unit setting is 0.5 Kg then this value is 4$ (means variant weight is 0.5 Kg and it costs 2$ but we want to show price per 1 Kg so we show 4$). - name: description | type: string | description: Price per unit info in the format of variant specific data / product setting, for example €4.00 / 1 Kg. > **Note:** This field is returned by the API only when you pass `fields: "CURRENCY"` in a request. - name: maxValue | type: PricePerUnit | description: Maximum price per unit across all variants. - name: weightMeasurementUnitInfo | type: WeightMeasurementUnitInfo | description: Weight measurement unit. > **Note:** Returned only when you pass `"WEIGHT_MEASUREMENT_UNIT_INFO"` to the `fields` array in Products API requests. - name: weightMeasurementUnit | type: WeightUnit | description: Weight measurement unit. - enum: - UNSPECIFIED_WEIGHT_UNIT: Weight unit can't be classified due to an error. - KG: Kilograms. - LB: Pounds. - name: deliveryProfileId | type: string | description: Delivery profile GUID. - name: id | type: string | description: Product GUID. - name: revision | type: string | description: Revision number, which increments by 1 each time the product is updated. To prevent conflicting changes, the current revision must be passed when updating the product. Ignored when creating a product. - name: createdDate | type: string | description: Date and time the product was created. - name: updatedDate | type: string | description: Date and time the product was updated. - name: name | type: string | description: Product name. Translatable. - name: slug | type: string | description: Product slug. If not provided, the slug is autogenerated based on the product name. - name: url | type: PageUrlV2 | description: URL to the site's product page. > **Note:** Returned only when you pass `"URL"` to the `fields` array in Products API requests. - name: relativePath | type: string | description: The relative path for the page within the site. For example, `/product-page/a-product`. - name: url | type: string | description: The page's full URL. For example, `https://mysite.com/product-page/a-product`. - name: description | type: RichContent | description: Product description using rich content. > **Note:** Returned only when you pass `"DESCRIPTION"` to the `fields` array in Products API requests. See.md Ricos document reference - name: nodes | type: array | description: Node objects representing a rich content document. - ONE-OF: - name: buttonData | type: ButtonData | description: Data for a button node. - name: containerData | type: PluginContainerData | description: Styling for the button's container. - name: width | type: Width | description: The width of the node when it's displayed. - ONE-OF: - name: size | type: Type | description: One of the following predefined width options: `CONTENT`: The width of the container matches the content width. `SMALL`: A small width. `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width. `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen. - enum: - CONTENT: Width matches the content width - SMALL: Small Width - ORIGINAL: Width will match the original asset width - FULL_WIDTH: coast-to-coast display - name: custom | type: string | description: A custom width value in pixels. - name: alignment | type: Alignment | description: The node's alignment within its container. - enum: - CENTER: Center Alignment - LEFT: Left Alignment - RIGHT: Right Alignment - name: spoiler | type: Spoiler | description: Spoiler cover settings for the node. - name: enabled | type: boolean | description: Sets whether the spoiler cover is enabled for this node. Defaults to `false`. - name: description | type: string | description: The description displayed on top of the spoiler cover. - name: buttonText | type: string | description: The text for the button used to remove the spoiler cover. - name: height | type: Height | description: The height of the node when it's displayed. - name: custom | type: string | description: A custom height value in pixels. - name: textWrap | type: boolean | description: Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. - name: type | type: Type | description: The button type. - enum: - LINK: Regular link button - ACTION: Triggers custom action that is defined in plugin configuration by the consumer - name: styles | type: Styles | description: Styling for the button. - name: borderWidth | type: integer | description: Border width in pixels. - name: borderRadius | type: integer | description: Border radius in pixels. - name: borderColor | type: string | description: Border color as a hexadecimal value. - name: borderColorHover | type: string | description: Border color as a hexadecimal value (hover state). - name: textColor | type: string | description: Text color as a hexadecimal value. - name: textColorHover | type: string | description: Text color as a hexadecimal value (hover state). - name: buttonSize | type: string | description: Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. - name: background | type: Background | description: Background styling (color or gradient). - name: type | type: Type | description: Background type. - enum: - COLOR: Solid color background - GRADIENT: Gradient background - name: color | type: string | description: Background color as a hexadecimal value. - name: gradient | type: Gradient | description: Gradient configuration. - name: type | type: Type | description: Gradient type. - enum: - LINEAR: Linear gradient. - RADIAL: Radial gradient. - name: stops | type: array | description: Color stops for the gradient. - name: color | type: string | description: Stop color as hex value. - name: position | type: number | description: Stop position (0-1). - name: angle | type: integer | description: Angle in degrees for linear gradient (0-360). - name: centerX | type: number | description: Horizontal center position for radial gradient (0-100). - name: centerY | type: number | description: Vertical center position for radial gradient (0-100). - name: backgroundHover | type: Background | description: Background styling for hover state (color or gradient). - name: text | type: string | description: The text to display on the button. - name: link | type: Link | description: Button link details. - ONE-OF: - name: url | type: string | description: The absolute URL for the linked document. - name: anchor | type: string | description: The target node's GUID. Used for linking to another node in this object. - name: target | type: Target | description: he HTML `target` attribute value for the link. This property defines where the linked document opens as follows: `SELF` - Default. Opens the linked document in the same frame as the link. `BLANK` - Opens the linked document in a new browser tab or window. `PARENT` - Opens the linked document in the link's parent frame. `TOP` - Opens the linked document in the full body of the link's browser tab or window. - enum: - SELF: Opens the linked document in the same frame as it was clicked (this is default) - BLANK: Opens the linked document in a new window or tab - PARENT: Opens the linked document in the parent frame - TOP: Opens the linked document in the full body of the window - name: rel | type: Rel | description: The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. - name: nofollow | type: boolean | description: Indicates to search engine crawlers not to follow the link. Defaults to `false`. - name: sponsored | type: boolean | description: Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. - name: ugc | type: boolean | description: Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`. - name: noreferrer | type: boolean | description: Indicates that this link protect referral information from being passed to the target website. - name: customData | type: string | description: A serialized object used for a custom or external link panel. - name: codeBlockData | type: CodeBlockData | description: Data for a code block node. - name: textStyle | type: TextStyle | description: Styling for the code block's text. - name: textAlignment | type: TextAlignment | description: Text alignment. Defaults to `AUTO`. - enum: - AUTO: browser default, eqivalent to `initial` - LEFT: Left align - RIGHT: Right align - CENTER: Center align - JUSTIFY: Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line - name: lineHeight | type: string | description: A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. - name: dividerData | type: DividerData | description: Data for a divider node. - name: containerData | type: PluginContainerData | description: Styling for the divider's container. - name: lineStyle | type: LineStyle | description: Divider line style. - enum: - SINGLE: Single Line - DOUBLE: Double Line - DASHED: Dashed Line - DOTTED: Dotted Line - name: width | type: Width | description: Divider width. - enum: - LARGE: Large line - MEDIUM: Medium line - SMALL: Small line - name: alignment | type: Alignment | description: Divider alignment. - enum: - CENTER: Center alignment - LEFT: Left alignment - RIGHT: Right alignment - name: fileData | type: FileData | description: Data for a file node. - name: containerData | type: PluginContainerData | description: Styling for the file's container. - name: src | type: FileSource | description: The source for the file's data. - ONE-OF: - name: url | type: string | description: The absolute URL for the file's source. - name: id | type: string | description: An GUID that's resolved to a URL by a resolver function. - name: private | type: boolean | description: Indicates whether the file's source is private. Defaults to `false`. - name: name | type: string | description: File name. - name: type | type: string | description: File type. - name: pdfSettings | type: PDFSettings | description: Settings for PDF files. - name: viewMode | type: ViewMode | description: PDF view mode. One of the following: `NONE` : The PDF isn't displayed. `FULL` : A full page view of the PDF is displayed. `MINI` : A mini view of the PDF is displayed. - enum: - NONE: No PDF view - FULL: Full PDF view - MINI: Mini PDF view - name: disableDownload | type: boolean | description: Sets whether the PDF download button is disabled. Defaults to `false`. - name: disablePrint | type: boolean | description: Sets whether the PDF print button is disabled. Defaults to `false`. - name: mimeType | type: string | description: File MIME type. - name: path | type: string | description: File path. - name: sizeInKb | type: string | description: File size in KB. - name: galleryData | type: GalleryData | description: Data for a gallery node. - name: containerData | type: PluginContainerData | description: Styling for the gallery's container. - name: items | type: array | description: The items in the gallery. - ONE-OF: - name: image | type: Image | description: An image item. - name: media | type: Media | description: Image file details. - name: src | type: FileSource | description: The source for the media's data. - name: width | type: integer | description: Media width in pixels. - name: height | type: integer | description: Media height in pixels. - name: duration | type: number | description: Media duration in seconds. Only relevant for audio and video files. - name: link | type: Link | description: Link details for images that are links. - name: video | type: Video | description: A video item. - name: media | type: Media | description: Video file details. - name: thumbnail | type: Media | description: Video thumbnail file details. - name: title | type: string | description: Item title. - name: altText | type: string | description: Item's alternative text. - name: options | type: GalleryOptions | description: Options for defining the gallery's appearance. - name: layout | type: Layout | description: Gallery layout. - name: type | type: Type | description: Gallery layout type. - enum: - COLLAGE: Collage type - MASONRY: Masonry type - GRID: Grid type - THUMBNAIL: Thumbnail type - SLIDER: Slider type - SLIDESHOW: Slideshow type - PANORAMA: Panorama type - COLUMN: Column type - MAGIC: Magic type - FULLSIZE: Fullsize images type - name: horizontalScroll | type: boolean | description: Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. - name: orientation | type: Orientation | description: Gallery orientation. - enum: - ROWS: Rows Orientation - COLUMNS: Columns Orientation - name: numberOfColumns | type: integer | description: The number of columns to display on full size screens. - name: mobileNumberOfColumns | type: integer | description: The number of columns to display on mobile screens. - name: item | type: ItemStyle | description: Styling for gallery items. - name: targetSize | type: integer | description: Desirable dimension for each item in pixels (behvaior changes according to gallery type) - name: ratio | type: number | description: Item ratio - name: crop | type: Crop | description: Sets how item images are cropped. - enum: - FILL: Crop to fill - FIT: Crop to fit - name: spacing | type: integer | description: The spacing between items in pixels. - name: thumbnails | type: Thumbnails | description: Styling for gallery thumbnail images. - name: placement | type: Alignment | description: Thumbnail alignment. - enum: - TOP: Top alignment - RIGHT: Right alignment - BOTTOM: Bottom alignment - LEFT: Left alignment - NONE: No thumbnail - name: spacing | type: integer | description: Spacing between thumbnails in pixels. - name: disableExpand | type: boolean | description: Sets whether the gallery's expand button is disabled. Defaults to `false`. - name: disableDownload | type: boolean | description: Sets whether the gallery's download button is disabled. Defaults to `false`. - name: gifData | type: GIFData | description: Data for a GIF node. - name: containerData | type: PluginContainerData | description: Styling for the GIF's container. - name: original | type: GIF | description: The source of the full size GIF. - name: gif | type: string | description: GIF format URL. - name: mp4 | type: string | description: MP4 format URL. - name: still | type: string | description: Thumbnail URL. - name: downsized | type: GIF | description: The source of the downsized GIF. - name: height | type: integer | description: Height in pixels. - name: width | type: integer | description: Width in pixels. - name: gifType | type: GIFType | description: Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. - enum: NORMAL, STICKER - name: headingData | type: HeadingData | description: Data for a heading node. - name: level | type: integer | description: Heading level from 1-6. - name: textStyle | type: TextStyle | description: Styling for the heading text. - name: indentation | type: integer | description: Indentation level from 1-4. - name: renderedLevel | type: integer | description: Rendered heading level for SEO/accessibility, overrides the HTML tag when set. - name: htmlData | type: HTMLData | description: Data for an embedded HTML node. - ONE-OF: - name: url | type: string | description: The URL for the HTML code for the node. - name: html | type: string | description: The HTML code for the node. - name: widgetId | type: string | description: The WixelWidget GUID for AI_WIDGET source nodes. - name: containerData | type: PluginContainerData | description: Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. - name: source | type: Source | description: The type of HTML code. - enum: HTML, ADSENSE, AI, AI_WIDGET - name: autoHeight | type: boolean | description: If container height is aligned with its content height. Defaults to `true`. - name: imageData | type: ImageData | description: Data for an image node. - name: containerData | type: PluginContainerData | description: Styling for the image's container. - name: image | type: Media | description: Image file details. - name: link | type: Link | description: Link details for images that are links. - name: disableExpand | type: boolean | description: Sets whether the image expands to full screen when clicked. Defaults to `false`. - name: altText | type: string | description: Image's alternative text. - name: disableDownload | type: boolean | description: Sets whether the image's download button is disabled. Defaults to `false`. - name: decorative | type: boolean | description: Sets whether the image is decorative and does not need an explanation. Defaults to `false`. - name: styles | type: Styles | description: Styling for the image. - name: border | type: Border | description: Border attributes. - name: width | type: integer | description: Border width in pixels. - name: color | type: string | description: Border color as a hexadecimal value. - name: radius | type: integer | description: Border radius in pixels. - name: linkPreviewData | type: LinkPreviewData | description: Data for a link preview node. - name: containerData | type: PluginContainerData | description: Styling for the link preview's container. - name: link | type: Link | description: Link details. - name: title | type: string | description: Preview title. - name: thumbnailUrl | type: string | description: Preview thumbnail URL. - name: description | type: string | description: Preview description. - name: html | type: string | description: The preview content as HTML. - name: styles | type: Styles | description: Styling for the link preview. - name: backgroundColor | type: string | description: Background color as a hexadecimal value. - name: titleColor | type: string | description: Title color as a hexadecimal value. - name: subtitleColor | type: string | description: Subtitle color as a hexadecimal value. - name: linkColor | type: string | description: Link color as a hexadecimal value. - name: borderWidth | type: integer | description: Border width in pixels. - name: borderRadius | type: integer | description: Border radius in pixels. - name: borderColor | type: string | description: Border color as a hexadecimal value. - name: thumbnailPosition | type: Position | description: Position of thumbnail. Defaults to `START`. - enum: - START: Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) - END: Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) - TOP: Thumbnail positioned at the top - HIDDEN: Thumbnail hidden and not displayed - name: paragraphData | type: ParagraphData | description: Data for a paragraph node. - name: textStyle | type: TextStyle | description: Styling for the paragraph text. - name: indentation | type: integer | description: Indentation level from 1-4. - name: level | type: integer | description: Paragraph level - name: pollData | type: PollData | description: Data for a poll node. - name: containerData | type: PluginContainerData | description: Styling for the poll's container. - name: poll | type: Poll | description: Poll data. - name: id | type: string | description: Poll GUID. - name: title | type: string | description: Poll title. - name: creatorId | type: string | description: Poll creator GUID. - name: image | type: Media | description: Main poll image. - name: options | type: array