---
title: "Product Schema"
canonical: "https://red-ant-documentation.refined.site/space/RDD/717520906/Product%20Schema"
format: markdown
---
> Macro (excerpt)
> 
> | **Field (* Required)** | **Definition** | **Format / Additional Info** |
> | --- | --- | --- |
> | `externalProductId` | Typically a unique number that identifies an individual product on your site |  |
> | `name` * | The name of the product as displayed to the customer | Alphanumeric string |
> | `link` | Ecom product link - this will be included as a hyperlink when the product is sent in any outbound communication to a customer | Links can be provided at both product and variant level |
> | `brand` * | The brand associated with the product | Alphanumeric string |
> | `promotionalText` | Supporting promotional text which will display alongside the product on the product listing and product details page | Alphanumeric string |
> | `price` * | Define the price of the product | JSON object e.g:<br>`{`  
> ` "value": "10.50",`  
> ` "code": "GBP"`  
> `}` |
> | `price.code` * | Price currency code. | ISO4217 Currency code |
> | `price.value` * | Price value. | Numeric string. Supports floats. |
> | `images` | Accompanying product image(s) which will display on the product listing and product details page | Must be publically accessible image URL(s) provided as an array |
> | `details` | Contains extra information regarding a product. Red Ant will generally store custom fields required by clients within this object. | JSON Object |
> | `details.summary` | Short product description | Supports markdown |
> | `details.description` | Long product description | Supports markdown |
> | `details.productSizeGuide` | Size guide for product | Supports markdown |
> | `details.productCareInstructions` | Care instructions for product | Supports markdown |
> | `details.productGroupOrder` | Product option can be ordered to determine which displays first | Number<br>Default: 0 |
> | `details.productGroupShortName` | Short name for display in dropdowns. If undefined, it will display `name` | String |
> | `details.swatchImage` | HTTPS Link to the colour Swatch for the productOption.<br>In the case of both `swatchHexCode` and `swatchImage` being provided, `swatchImage` will take precedence. | URL String |
> | `details.swatchHexCode` | Hexadecimal colour of the swatch, as an alternative to imagery.<br>In the case of both `swatchHexCode` and `swatchImage` being provided, `swatchImage` will take precedence. | Hexadecimal string eg `#D93931` |
> | `details.searchTerms` | Additional keywords that aid discoverability when conducting a product search | JSON array of strings |
> | `categoryId` | Associate the product with a specific category. | If your product catalogue has parent and sub-categories, you should set the `categoryId` to the specific sub-category that the product should reside in.<br>Products with no category will not appear in category views, but will be returned in search results and barcode scans. |
> | `secondaryName` | Used as a secondary product name | Alphanumeric string |
> | `embeddedVideos` | Accompanying product video(s) which will display on the product details page | Must be publically accessible embed URL(s) provided as an array |
> | `reporting` | This can include:<br>`relatedProducts` - This holds a list of products that are frequently purchased together with the respective product | JSON object |
> | `discount` | Define the discount value currently associated with the product | JSON object e.g:<br>`{`  
> ` "value": "10.50",`  
> ` "code": "GBP"`  
> `}`<br>The final price of the product is calculated using `price` and `discount` |
> | `discount.code` | Discount currency code. | ISO4217 Currency code |
> | `dicount.value` | Discount value. | Numeric string. Supports floats. |
> | `regionId` * | Associate the product with a specific region | UUID foreign key (regions) |
> | `preview` | Mark product(s) that cannot yet be purchased. Setting this value to `TRUE` will hide the option to add the product to the basket | Boolean |
> | `service` * | Mark product(s) that are services. e.g. a “Beauty Makeover” | Boolean |
> | `videoThumbnails` | An accompanying image thumbnail used as the preview for any embedded videos | Must be a publicly accessible image HTTPS URL |
> | `catalogue` * | The name of the catalogue where the product resides |  |
> | `productGroup` | The name of the product group that the product is associated with | This is typically utilised to group related products that share common attributes into a single record.<br>For example, a t-shirt that is available in different colours, and therefore has different products images, but is the same price. |
> | `updateSource`* | The last application to update the record | String. Possible values vary on client. |
> | `vatPercent` | The VAT percent for the product. | Assumes prices are inclusive of VAT. This value will allow the display of VAT breakdown within the app. |