{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/vtex/json-schema/vtex-product-schema.json",
  "title": "VTEX Product",
  "description": "Schema for a VTEX product object from the Catalog API",
  "type": "object",
  "properties": {
    "Id": {
      "type": "integer",
      "description": "Unique product identifier"
    },
    "Name": {
      "type": "string",
      "description": "Product name"
    },
    "DepartmentId": {
      "type": "integer",
      "description": "Department category identifier"
    },
    "CategoryId": {
      "type": "integer",
      "description": "Category identifier"
    },
    "BrandId": {
      "type": "integer",
      "description": "Brand identifier"
    },
    "BrandName": {
      "type": "string",
      "description": "Brand name"
    },
    "LinkId": {
      "type": "string",
      "description": "URL slug for the product page"
    },
    "RefId": {
      "type": "string",
      "description": "External reference identifier"
    },
    "IsVisible": {
      "type": "boolean",
      "description": "Whether the product is visible in the storefront"
    },
    "Description": {
      "type": "string",
      "description": "Full product description (HTML allowed)"
    },
    "DescriptionShort": {
      "type": "string",
      "description": "Short product description"
    },
    "ReleaseDate": {
      "type": "string",
      "format": "date-time",
      "description": "Product release date"
    },
    "KeyWords": {
      "type": "string",
      "description": "Comma-separated keywords for search optimization"
    },
    "Title": {
      "type": "string",
      "description": "SEO page title override"
    },
    "IsActive": {
      "type": "boolean",
      "description": "Whether the product is active and can be purchased"
    },
    "TaxCode": {
      "type": "string",
      "description": "Tax classification code"
    },
    "MetaTagDescription": {
      "type": "string",
      "description": "SEO meta description"
    },
    "ShowWithoutStock": {
      "type": "boolean",
      "description": "Whether to show the product when out of stock"
    },
    "Score": {
      "type": "integer",
      "description": "Manual relevance score for search ranking"
    }
  },
  "required": ["Name", "CategoryId", "BrandId"]
}
