# Models

## The ProductDetailResponse object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"ProductDetailResponse":{"type":"object","description":"Complete product detail response including variant selection data.\n\nContains all information needed to render a product detail page.","required":["in_stock","product","variants"],"properties":{"in_stock":{"type":"boolean","description":"Indicates if any variant of this product is currently in stock.\n\nThis is an aggregate status across all sub-products/variants."},"product":{"$ref":"#/components/schemas/Product"},"variants":{"type":"array","description":"List of variant attribute groups with selectable options.\n\nEach item represents one attribute dimension (e.g., Size, Color) with available options.","items":{"$ref":"#/components/schemas/VariantGroup"}},"selected_variant":{"oneOf":[{"$ref":"#/components/schemas/Product"},{"type":"null"}],"description":"The currently selected variant based on query parameters.\n\n**Null Scenarios:**\n* No variant attributes provided in query\n* Provided attributes don't match any available variant\n* Selected combination is out of stock (when stock check is enforced)"},"offers":{"type":"array","description":"Alternative seller offers for this product.\n\nAvailable in marketplace scenarios where multiple sellers offer the same product.","items":{"$ref":"#/components/schemas/ProductOffer"}}}},"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}},"VariantGroup":{"type":"object","description":"A group of variant options for a single attribute dimension.\n\nEach variant group represents one selectable attribute (e.g., all available sizes).","required":["attribute_key","attribute_name","options"],"properties":{"attribute_key":{"type":"string","description":"Internal key for this attribute.\n\nUsed as query parameter name for variant selection."},"attribute_name":{"type":"string","description":"Human-readable attribute name for display.\n\nMay be translated based on language settings."},"options":{"type":"array","description":"Available options within this attribute group.","items":{"$ref":"#/components/schemas/VariantOption"}}}},"VariantOption":{"type":"object","description":"A single selectable variant option within an attribute group.","required":["label","value","is_selected","is_selectable"],"properties":{"is_selected":{"type":"boolean","description":"Indicates if this option is currently selected.\n\nBased on query parameters or default selection logic."},"is_selectable":{"type":"boolean","description":"Indicates if this option can be selected given current selections.\n\nFalse when the combination with other selected attributes is unavailable."},"is_selectable_without_stock":{"type":["boolean","null"],"description":"Indicates if this option would be selectable ignoring stock status.\n\nUseful for showing \"out of stock\" vs. \"invalid combination\" states."},"in_stock":{"type":["boolean","null"],"description":"Stock status for this specific option combination."},"order":{"type":"string","description":"Display order for this option."},"label":{"type":"string","description":"Display label for this option."},"value":{"type":"string","description":"Internal value for this option.\n\nUsed as query parameter value for variant selection."},"product":{"allOf":[{"$ref":"#/components/schemas/Product"}],"description":"Full product details for this variant option.\n\nOnly populated when this specific option is selected or needed."}}},"ProductOffer":{"type":"object","description":"Seller-specific product offer in marketplace scenarios.","properties":{"pk":{"type":"integer","description":"Offer identifier"},"name":{"type":"string","description":"Product name"},"attributes":{"type":"object","additionalProperties":true},"attribute_set":{"type":"integer"},"attributes_kwargs":{"type":"object","additionalProperties":true},"extra_attributes":{"type":["object","null"],"additionalProperties":true},"price":{"type":"string","description":"Seller's price for this product"},"in_stock":{"type":"boolean"},"data_source":{"$ref":"#/components/schemas/DataSourceSummary"},"absolute_url":{"type":"string","format":"uri"}}},"DataSourceSummary":{"type":"object","description":"Abbreviated data source information","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"title":{"type":"string"}}}}}}
```

## The Product object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}}}}}
```

## The ProductImage object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}}}}}
```

## The ProductVideo object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}}}}}
```

## The VariantGroup object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"VariantGroup":{"type":"object","description":"A group of variant options for a single attribute dimension.\n\nEach variant group represents one selectable attribute (e.g., all available sizes).","required":["attribute_key","attribute_name","options"],"properties":{"attribute_key":{"type":"string","description":"Internal key for this attribute.\n\nUsed as query parameter name for variant selection."},"attribute_name":{"type":"string","description":"Human-readable attribute name for display.\n\nMay be translated based on language settings."},"options":{"type":"array","description":"Available options within this attribute group.","items":{"$ref":"#/components/schemas/VariantOption"}}}},"VariantOption":{"type":"object","description":"A single selectable variant option within an attribute group.","required":["label","value","is_selected","is_selectable"],"properties":{"is_selected":{"type":"boolean","description":"Indicates if this option is currently selected.\n\nBased on query parameters or default selection logic."},"is_selectable":{"type":"boolean","description":"Indicates if this option can be selected given current selections.\n\nFalse when the combination with other selected attributes is unavailable."},"is_selectable_without_stock":{"type":["boolean","null"],"description":"Indicates if this option would be selectable ignoring stock status.\n\nUseful for showing \"out of stock\" vs. \"invalid combination\" states."},"in_stock":{"type":["boolean","null"],"description":"Stock status for this specific option combination."},"order":{"type":"string","description":"Display order for this option."},"label":{"type":"string","description":"Display label for this option."},"value":{"type":"string","description":"Internal value for this option.\n\nUsed as query parameter value for variant selection."},"product":{"allOf":[{"$ref":"#/components/schemas/Product"}],"description":"Full product details for this variant option.\n\nOnly populated when this specific option is selected or needed."}}},"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}}}}}
```

## The VariantOption object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"VariantOption":{"type":"object","description":"A single selectable variant option within an attribute group.","required":["label","value","is_selected","is_selectable"],"properties":{"is_selected":{"type":"boolean","description":"Indicates if this option is currently selected.\n\nBased on query parameters or default selection logic."},"is_selectable":{"type":"boolean","description":"Indicates if this option can be selected given current selections.\n\nFalse when the combination with other selected attributes is unavailable."},"is_selectable_without_stock":{"type":["boolean","null"],"description":"Indicates if this option would be selectable ignoring stock status.\n\nUseful for showing \"out of stock\" vs. \"invalid combination\" states."},"in_stock":{"type":["boolean","null"],"description":"Stock status for this specific option combination."},"order":{"type":"string","description":"Display order for this option."},"label":{"type":"string","description":"Display label for this option."},"value":{"type":"string","description":"Internal value for this option.\n\nUsed as query parameter value for variant selection."},"product":{"allOf":[{"$ref":"#/components/schemas/Product"}],"description":"Full product details for this variant option.\n\nOnly populated when this specific option is selected or needed."}}},"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}}}}}
```

## The ProductOffer object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"ProductOffer":{"type":"object","description":"Seller-specific product offer in marketplace scenarios.","properties":{"pk":{"type":"integer","description":"Offer identifier"},"name":{"type":"string","description":"Product name"},"attributes":{"type":"object","additionalProperties":true},"attribute_set":{"type":"integer"},"attributes_kwargs":{"type":"object","additionalProperties":true},"extra_attributes":{"type":["object","null"],"additionalProperties":true},"price":{"type":"string","description":"Seller's price for this product"},"in_stock":{"type":"boolean"},"data_source":{"$ref":"#/components/schemas/DataSourceSummary"},"absolute_url":{"type":"string","format":"uri"}}},"DataSourceSummary":{"type":"object","description":"Abbreviated data source information","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"title":{"type":"string"}}}}}}
```

## The DataSource object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}}}}}
```

## The DataSourceSummary object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"DataSourceSummary":{"type":"object","description":"Abbreviated data source information","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"title":{"type":"string"}}}}}}
```

## The AttributeConfigForm object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}}}}}
```

## The GroupedProductDetailResponse object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"GroupedProductDetailResponse":{"type":"object","description":"Response for grouped product detail page.\n\nContains the main grouped product and all its member products.","required":["in_stock","product","group_products","group_products_total_price","group_products_total_retail_price"],"properties":{"in_stock":{"type":"boolean","description":"Aggregate stock status across all group members.\n\nTrue if at least one member product is in stock."},"product":{"$ref":"#/components/schemas/Product"},"group_products":{"type":"array","description":"List of products included in this group.\n\nEach item may include an `initial_quantity` indicating default quantity.","items":{"$ref":"#/components/schemas/GroupProduct"}},"group_products_total_price":{"type":"string","description":"Sum of all member product prices.\n\nCalculated as: sum(product.price × initial_quantity) for all members."},"group_products_total_retail_price":{"type":"string","description":"Sum of all member retail prices.\n\nUseful for showing total savings on the group."}}},"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}},"GroupProduct":{"allOf":[{"$ref":"#/components/schemas/Product"},{"type":"object","properties":{"initial_quantity":{"type":"integer","description":"Default quantity of this product in the group.","default":1}}}]}}}}
```

## The GroupProduct object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"GroupProduct":{"allOf":[{"$ref":"#/components/schemas/Product"},{"type":"object","properties":{"initial_quantity":{"type":"integer","description":"Default quantity of this product in the group.","default":1}}}]},"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}}}}}
```

## The BundleProductDetailResponse object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"BundleProductDetailResponse":{"type":"object","description":"Response for bundle product detail page with chapter navigation.","required":["in_stock","bundle_product","chapters","current_chapter"],"properties":{"in_stock":{"type":"boolean","description":"Aggregate stock status for the bundle."},"bundle_product":{"$ref":"#/components/schemas/Product"},"chapters":{"type":"array","description":"All available chapters for this bundle.\n\nEach chapter represents a selection category.","items":{"$ref":"#/components/schemas/BundleChapter"}},"current_chapter":{"$ref":"#/components/schemas/BundleChapterDetail"},"current_page":{"type":"string","description":"Current page number within the chapter.","default":"1"},"selected_attributes":{"type":"object","description":"Currently selected attributes across all chapters.\n\nTracks user selections as they navigate through the bundle configuration.","additionalProperties":true}}},"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}},"BundleChapter":{"type":"object","description":"Chapter information with available variants.","properties":{"chapter":{"$ref":"#/components/schemas/BundleChapterDetail"},"variants":{"type":"array","description":"Variant selection groups within this chapter.","items":{"$ref":"#/components/schemas/VariantGroup"}}}},"BundleChapterDetail":{"type":"object","description":"Detailed chapter configuration.","required":["pk","name","slug","order","is_required"],"properties":{"pk":{"type":"integer","description":"Chapter identifier"},"name":{"type":"string","description":"Display name of the chapter"},"slug":{"type":"string","description":"URL-friendly chapter identifier"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"is_required":{"type":"boolean","description":"Whether selection in this chapter is mandatory.\n\nBundle cannot be added to basket without completing required chapters."},"form_schema":{"type":"array","description":"Additional form fields for this chapter (e.g., customization options).","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"attributes":{"type":"object","description":"Chapter-level attributes","additionalProperties":true},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata","additionalProperties":true}}},"VariantGroup":{"type":"object","description":"A group of variant options for a single attribute dimension.\n\nEach variant group represents one selectable attribute (e.g., all available sizes).","required":["attribute_key","attribute_name","options"],"properties":{"attribute_key":{"type":"string","description":"Internal key for this attribute.\n\nUsed as query parameter name for variant selection."},"attribute_name":{"type":"string","description":"Human-readable attribute name for display.\n\nMay be translated based on language settings."},"options":{"type":"array","description":"Available options within this attribute group.","items":{"$ref":"#/components/schemas/VariantOption"}}}},"VariantOption":{"type":"object","description":"A single selectable variant option within an attribute group.","required":["label","value","is_selected","is_selectable"],"properties":{"is_selected":{"type":"boolean","description":"Indicates if this option is currently selected.\n\nBased on query parameters or default selection logic."},"is_selectable":{"type":"boolean","description":"Indicates if this option can be selected given current selections.\n\nFalse when the combination with other selected attributes is unavailable."},"is_selectable_without_stock":{"type":["boolean","null"],"description":"Indicates if this option would be selectable ignoring stock status.\n\nUseful for showing \"out of stock\" vs. \"invalid combination\" states."},"in_stock":{"type":["boolean","null"],"description":"Stock status for this specific option combination."},"order":{"type":"string","description":"Display order for this option."},"label":{"type":"string","description":"Display label for this option."},"value":{"type":"string","description":"Internal value for this option.\n\nUsed as query parameter value for variant selection."},"product":{"allOf":[{"$ref":"#/components/schemas/Product"}],"description":"Full product details for this variant option.\n\nOnly populated when this specific option is selected or needed."}}}}}}
```

## The BundleChapter object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"BundleChapter":{"type":"object","description":"Chapter information with available variants.","properties":{"chapter":{"$ref":"#/components/schemas/BundleChapterDetail"},"variants":{"type":"array","description":"Variant selection groups within this chapter.","items":{"$ref":"#/components/schemas/VariantGroup"}}}},"BundleChapterDetail":{"type":"object","description":"Detailed chapter configuration.","required":["pk","name","slug","order","is_required"],"properties":{"pk":{"type":"integer","description":"Chapter identifier"},"name":{"type":"string","description":"Display name of the chapter"},"slug":{"type":"string","description":"URL-friendly chapter identifier"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"is_required":{"type":"boolean","description":"Whether selection in this chapter is mandatory.\n\nBundle cannot be added to basket without completing required chapters."},"form_schema":{"type":"array","description":"Additional form fields for this chapter (e.g., customization options).","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"attributes":{"type":"object","description":"Chapter-level attributes","additionalProperties":true},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata","additionalProperties":true}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}},"VariantGroup":{"type":"object","description":"A group of variant options for a single attribute dimension.\n\nEach variant group represents one selectable attribute (e.g., all available sizes).","required":["attribute_key","attribute_name","options"],"properties":{"attribute_key":{"type":"string","description":"Internal key for this attribute.\n\nUsed as query parameter name for variant selection."},"attribute_name":{"type":"string","description":"Human-readable attribute name for display.\n\nMay be translated based on language settings."},"options":{"type":"array","description":"Available options within this attribute group.","items":{"$ref":"#/components/schemas/VariantOption"}}}},"VariantOption":{"type":"object","description":"A single selectable variant option within an attribute group.","required":["label","value","is_selected","is_selectable"],"properties":{"is_selected":{"type":"boolean","description":"Indicates if this option is currently selected.\n\nBased on query parameters or default selection logic."},"is_selectable":{"type":"boolean","description":"Indicates if this option can be selected given current selections.\n\nFalse when the combination with other selected attributes is unavailable."},"is_selectable_without_stock":{"type":["boolean","null"],"description":"Indicates if this option would be selectable ignoring stock status.\n\nUseful for showing \"out of stock\" vs. \"invalid combination\" states."},"in_stock":{"type":["boolean","null"],"description":"Stock status for this specific option combination."},"order":{"type":"string","description":"Display order for this option."},"label":{"type":"string","description":"Display label for this option."},"value":{"type":"string","description":"Internal value for this option.\n\nUsed as query parameter value for variant selection."},"product":{"allOf":[{"$ref":"#/components/schemas/Product"}],"description":"Full product details for this variant option.\n\nOnly populated when this specific option is selected or needed."}}},"Product":{"type":"object","description":"Core product information including pricing, stock, and attributes.","required":["pk","name","sku","base_code","price","in_stock","product_type"],"properties":{"pk":{"type":"integer","description":"Unique product identifier"},"name":{"type":"string","description":"Display name of the product.\n\nMay be translated based on active language settings."},"sku":{"type":"string","description":"Stock Keeping Unit - unique product code for inventory management."},"base_code":{"type":"string","description":"Base product code shared across variants.\n\nAll size/color variants of the same product share this code."},"attributes":{"type":"object","description":"Product attributes as key-value pairs.\n\nContains both variant-defining attributes (size, color) and descriptive attributes (material, weight).","additionalProperties":true},"attribute_set":{"type":"integer","description":"ID of the attribute set that defines this product's attribute schema."},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata including labels and display values.\n\nProvides translated attribute names and formatted values for display.","additionalProperties":true},"extra_attributes":{"type":["object","null"],"description":"Additional custom attributes not part of the standard attribute set.","additionalProperties":true},"productimage_set":{"type":"array","description":"Product images in multiple sizes and formats.","items":{"$ref":"#/components/schemas/ProductImage"}},"productvideo_set":{"type":"array","description":"Product videos for enhanced product presentation.","items":{"$ref":"#/components/schemas/ProductVideo"}},"price":{"type":"string","description":"Current selling price as a decimal string.\n\nFormat: \"123.45\" (two decimal places)"},"retail_price":{"type":"string","description":"Original retail/list price before discounts.\n\nCompare with `price` to calculate discount percentage."},"currency_type":{"type":"string","description":"Currency code for price values.\n\nCommon values: \"try\" (Turkish Lira), \"usd\", \"eur\""},"price_type":{"type":"string","description":"Price category or tier identifier."},"tax_rate":{"type":"string","description":"Applicable tax rate as a decimal percentage.\n\nExample: \"18.00\" represents 18% tax"},"in_stock":{"type":"boolean","description":"Stock availability status for this specific product/variant."},"stock":{"type":"integer","description":"Available stock quantity.\n\nMay be from default stock or inventory-specific stock list."},"unit_type":{"type":"string","description":"Unit of measurement for stock.\n\nCommon values: \"quantity\", \"kg\", \"meter\""},"product_type":{"type":"string","description":"Product classification type.\n\n| Value | Code | Description |\n|-------|------|-------------|\n| 0 | simple | Standard product with optional variants |\n| 1 | product_meta | Parent product that groups variants |\n| 2 | bundle | Configurable product with chapters |\n| 3 | grouped | Collection of related products sold together |\n| 4 | miscellaneous | Special product (services, fees) |\n| 5 | offer | Seller-specific product offer |","enum":["0","1","2","3","4","5"]},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this product.\n\nUse this for SEO-friendly product links."},"form_schema":{"type":"array","description":"Form field definitions for products requiring additional input.\n\nUsed for personalized products, custom engravings, etc.","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"is_ready_to_basket":{"type":"boolean","description":"Indicates if the product can be directly added to basket.\n\nFalse when variant selection or additional input is required."},"data_source":{"oneOf":[{"$ref":"#/components/schemas/DataSource"},{"type":"null"}],"description":"Seller/data source information for marketplace products."},"basket_offers":{"type":"array","description":"Promotional offers applicable when this product is in the basket.","items":{"type":"object"}},"is_listable":{"type":"boolean","description":"Indicates if the product should appear in product listings.\n\nNon-listable products may only be accessible via direct URL."},"listing_code":{"type":"string","description":"Code used for product listing grouping."}}},"ProductImage":{"type":"object","description":"Product image with multiple size variants","properties":{"pk":{"type":"integer","description":"Image identifier"},"status":{"type":"string","description":"Image processing status"},"image":{"type":"string","format":"uri","description":"Original image URL"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail size image URL"},"mid_thumbnail":{"type":"string","format":"uri","description":"Medium thumbnail URL"},"detailed_thumbnail":{"type":"string","format":"uri","description":"Detailed/larger thumbnail URL"}}},"ProductVideo":{"type":"object","description":"Product video information","properties":{"pk":{"type":"integer","description":"Video identifier"},"video_type":{"type":"string","description":"Video hosting platform type.\n\nCommon values: \"youtube\", \"vimeo\", \"self_hosted\""},"video":{"type":"string","format":"uri","description":"Video URL or embed code"}}},"DataSource":{"type":"object","description":"Seller or data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"title":{"type":"string","description":"Display title"},"slug":{"type":"string","description":"URL-friendly identifier"}}}}}}
```

## The BundleChapterDetail object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"BundleChapterDetail":{"type":"object","description":"Detailed chapter configuration.","required":["pk","name","slug","order","is_required"],"properties":{"pk":{"type":"integer","description":"Chapter identifier"},"name":{"type":"string","description":"Display name of the chapter"},"slug":{"type":"string","description":"URL-friendly chapter identifier"},"order":{"type":"integer","description":"Display order (lower numbers appear first)"},"is_required":{"type":"boolean","description":"Whether selection in this chapter is mandatory.\n\nBundle cannot be added to basket without completing required chapters."},"form_schema":{"type":"array","description":"Additional form fields for this chapter (e.g., customization options).","items":{"$ref":"#/components/schemas/AttributeConfigForm"}},"attributes":{"type":"object","description":"Chapter-level attributes","additionalProperties":true},"attributes_kwargs":{"type":"object","description":"Extended attribute metadata","additionalProperties":true}}},"AttributeConfigForm":{"type":"object","description":"Form field configuration for product customization inputs.","properties":{"key":{"type":"string","description":"Field identifier"},"label":{"type":"string","description":"Field display label"},"type":{"type":"string","description":"Input type.\n\nCommon values: \"text\", \"textarea\", \"select\", \"file\""},"required":{"type":"boolean","description":"Whether the field is required"},"options":{"type":"array","items":{"type":"object"},"description":"Available options for select fields"}}}}}}
```

## The CategoryDetailResponse object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"CategoryDetailResponse":{"type":"object","description":"Category detail response with subcategory navigation.","required":["pk","name"],"properties":{"pk":{"type":"integer","description":"Category identifier"},"name":{"type":"string","description":"Display name of the category.\n\nMay be translated based on active language settings."},"menuitemmodel":{"type":["string","null"],"format":"uuid","description":"UUID of the associated menu item for navigation.\n\nNull if the category has no menu configuration."},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this category.\n\nUse this for SEO-friendly category links."},"attributes":{"type":"object","description":"Category-specific attributes.\n\nMay include display settings, featured flags, etc.","additionalProperties":true},"uuid":{"type":"string","format":"uuid","description":"Universally unique identifier for the category."},"depth":{"type":"integer","description":"Hierarchical depth level of the category.\n\nRoot categories have depth 1, their children have depth 2, etc."},"path":{"type":"string","description":"Materialized path representing the category's position in the hierarchy.\n\nUsed internally for efficient hierarchical queries."},"sort_option":{"type":["integer","null"],"description":"ID of the default sort option for product listings in this category.\n\nWhen set, product listings automatically use this sort order."},"sub_categories":{"type":"array","description":"Nested subcategories up to 2 levels deep.\n\nFirst level contains direct children, second level contains their children.","items":{"$ref":"#/components/schemas/CategoryNodeNested"}}}},"CategoryNodeNested":{"type":"object","description":"Category node with nested children.","allOf":[{"$ref":"#/components/schemas/CategoryNode"},{"type":"object","properties":{"children":{"type":"array","description":"Child categories (one level deep).","items":{"$ref":"#/components/schemas/CategoryNode"}}}}]},"CategoryNode":{"type":"object","description":"Basic category node information.","required":["pk","name"],"properties":{"pk":{"type":"integer","description":"Category identifier"},"name":{"type":"string","description":"Display name of the category"},"menuitemmodel":{"type":["string","null"],"format":"uuid","description":"UUID of associated menu item"},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this category"},"attributes":{"type":"object","additionalProperties":true},"uuid":{"type":"string","format":"uuid"},"depth":{"type":"integer","description":"Hierarchical depth level"},"path":{"type":"string","description":"Materialized path"}}}}}}
```

## The CategoryNode object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"CategoryNode":{"type":"object","description":"Basic category node information.","required":["pk","name"],"properties":{"pk":{"type":"integer","description":"Category identifier"},"name":{"type":"string","description":"Display name of the category"},"menuitemmodel":{"type":["string","null"],"format":"uuid","description":"UUID of associated menu item"},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this category"},"attributes":{"type":"object","additionalProperties":true},"uuid":{"type":"string","format":"uuid"},"depth":{"type":"integer","description":"Hierarchical depth level"},"path":{"type":"string","description":"Materialized path"}}}}}}
```

## The CategoryNodeNested object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"CategoryNodeNested":{"type":"object","description":"Category node with nested children.","allOf":[{"$ref":"#/components/schemas/CategoryNode"},{"type":"object","properties":{"children":{"type":"array","description":"Child categories (one level deep).","items":{"$ref":"#/components/schemas/CategoryNode"}}}}]},"CategoryNode":{"type":"object","description":"Basic category node information.","required":["pk","name"],"properties":{"pk":{"type":"integer","description":"Category identifier"},"name":{"type":"string","description":"Display name of the category"},"menuitemmodel":{"type":["string","null"],"format":"uuid","description":"UUID of associated menu item"},"absolute_url":{"type":"string","format":"uri","description":"Canonical URL for this category"},"attributes":{"type":"object","additionalProperties":true},"uuid":{"type":"string","format":"uuid"},"depth":{"type":"integer","description":"Hierarchical depth level"},"path":{"type":"string","description":"Materialized path"}}}}}}
```

## The AttributeSet object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"AttributeSet":{"type":"object","description":"Attribute set configuration defining product attribute schema.","required":["pk","variant_attributes","variant_listable_attributes"],"properties":{"pk":{"type":"integer","description":"Attribute set identifier"},"variant_attributes":{"type":"array","description":"List of attribute keys that define product variants.\n\nProducts with different values for these attributes are considered separate variants (e.g., size, color).","items":{"type":"string"}},"variant_listable_attributes":{"type":"array","description":"Subset of variant attributes shown in product listings.\n\nThese attributes help customers distinguish between variants in list views.","items":{"type":"string"}}}}}}}
```

## The AttributeConfigGroupResponse object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"AttributeConfigGroupResponse":{"type":"object","description":"Response containing grouped attribute configurations.","required":["attribute_config_groups"],"properties":{"attribute_config_groups":{"type":"array","description":"List of attribute groups with their configurations.\n\nEach group organizes related attributes for display purposes.","items":{"$ref":"#/components/schemas/AttributeConfigGroup"}}}},"AttributeConfigGroup":{"type":"object","description":"A logical grouping of product attributes for display.","properties":{"name":{"type":"string","description":"Display name of the attribute group."},"order":{"type":"integer","description":"Display order for the group."},"attributes":{"type":"array","description":"Attributes belonging to this group.","items":{"type":"object","properties":{"key":{"type":"string","description":"Attribute identifier"},"label":{"type":"string","description":"Display label"},"order":{"type":"integer","description":"Display order within group"}}}}}}}}}
```

## The AttributeConfigGroup object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"AttributeConfigGroup":{"type":"object","description":"A logical grouping of product attributes for display.","properties":{"name":{"type":"string","description":"Display name of the attribute group."},"order":{"type":"integer","description":"Display order for the group."},"attributes":{"type":"array","description":"Attributes belonging to this group.","items":{"type":"object","properties":{"key":{"type":"string","description":"Attribute identifier"},"label":{"type":"string","description":"Display label"},"order":{"type":"integer","description":"Display order within group"}}}}}}}}}
```

## The RetailStoreStock object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"RetailStoreStock":{"type":"object","description":"Retail store with stock availability information.","properties":{"pk":{"type":"integer","description":"Store identifier"},"name":{"type":"string","description":"Store name"},"erp_code":{"type":"string","description":"Store code in the ERP system.\n\nUsed for inventory synchronization."},"phone_number":{"type":"string","description":"Store contact phone number"},"address":{"type":"string","description":"Full street address"},"township":{"$ref":"#/components/schemas/Township"},"latitude":{"type":"number","format":"float","description":"Geographic latitude coordinate"},"longitude":{"type":"number","format":"float","description":"Geographic longitude coordinate"},"stock":{"type":"integer","description":"Available stock quantity at this store."},"is_available":{"type":"boolean","description":"Indicates if the product is available for collection at this store."}}},"Township":{"type":"object","description":"Township (ilçe) geographic information.","properties":{"pk":{"type":"integer","description":"Township identifier"},"name":{"type":"string","description":"Township name"},"city":{"$ref":"#/components/schemas/City"}}},"City":{"type":"object","description":"City geographic information.","properties":{"pk":{"type":"integer","description":"City identifier"},"name":{"type":"string","description":"City name"},"country":{"$ref":"#/components/schemas/Country"}}},"Country":{"type":"object","description":"Country information.","properties":{"pk":{"type":"integer","description":"Country identifier"},"name":{"type":"string","description":"Country name"},"code":{"type":"string","description":"ISO country code"}}}}}}
```

## The Township object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"Township":{"type":"object","description":"Township (ilçe) geographic information.","properties":{"pk":{"type":"integer","description":"Township identifier"},"name":{"type":"string","description":"Township name"},"city":{"$ref":"#/components/schemas/City"}}},"City":{"type":"object","description":"City geographic information.","properties":{"pk":{"type":"integer","description":"City identifier"},"name":{"type":"string","description":"City name"},"country":{"$ref":"#/components/schemas/Country"}}},"Country":{"type":"object","description":"Country information.","properties":{"pk":{"type":"integer","description":"Country identifier"},"name":{"type":"string","description":"Country name"},"code":{"type":"string","description":"ISO country code"}}}}}}
```

## The City object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"City":{"type":"object","description":"City geographic information.","properties":{"pk":{"type":"integer","description":"City identifier"},"name":{"type":"string","description":"City name"},"country":{"$ref":"#/components/schemas/Country"}}},"Country":{"type":"object","description":"Country information.","properties":{"pk":{"type":"integer","description":"Country identifier"},"name":{"type":"string","description":"Country name"},"code":{"type":"string","description":"ISO country code"}}}}}}
```

## The Country object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"Country":{"type":"object","description":"Country information.","properties":{"pk":{"type":"integer","description":"Country identifier"},"name":{"type":"string","description":"Country name"},"code":{"type":"string","description":"ISO country code"}}}}}}
```

## The BasketStockResult object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"BasketStockResult":{"type":"object","description":"Store availability result for basket items.","properties":{"tag":{"type":"string","description":"Collection identifier or tag for this fulfillment option."},"products":{"type":"array","description":"Products available at this store with quantities.","items":{"type":"object","properties":{"product_id":{"type":"integer","description":"Product identifier"},"quantity":{"type":"integer","description":"Available quantity"}}}},"retail_store":{"$ref":"#/components/schemas/RetailStoreStock"}}},"RetailStoreStock":{"type":"object","description":"Retail store with stock availability information.","properties":{"pk":{"type":"integer","description":"Store identifier"},"name":{"type":"string","description":"Store name"},"erp_code":{"type":"string","description":"Store code in the ERP system.\n\nUsed for inventory synchronization."},"phone_number":{"type":"string","description":"Store contact phone number"},"address":{"type":"string","description":"Full street address"},"township":{"$ref":"#/components/schemas/Township"},"latitude":{"type":"number","format":"float","description":"Geographic latitude coordinate"},"longitude":{"type":"number","format":"float","description":"Geographic longitude coordinate"},"stock":{"type":"integer","description":"Available stock quantity at this store."},"is_available":{"type":"boolean","description":"Indicates if the product is available for collection at this store."}}},"Township":{"type":"object","description":"Township (ilçe) geographic information.","properties":{"pk":{"type":"integer","description":"Township identifier"},"name":{"type":"string","description":"Township name"},"city":{"$ref":"#/components/schemas/City"}}},"City":{"type":"object","description":"City geographic information.","properties":{"pk":{"type":"integer","description":"City identifier"},"name":{"type":"string","description":"City name"},"country":{"$ref":"#/components/schemas/Country"}}},"Country":{"type":"object","description":"Country information.","properties":{"pk":{"type":"integer","description":"Country identifier"},"name":{"type":"string","description":"Country name"},"code":{"type":"string","description":"ISO country code"}}}}}}
```

## The DataSourceDetail object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"DataSourceDetail":{"type":"object","description":"Detailed seller/data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name of the data source."},"title":{"type":"string","description":"Display title of the seller."},"address":{"type":"string","description":"Business address of the seller."},"email":{"type":"string","format":"email","description":"Contact email address."},"phone_number":{"type":"string","description":"Contact phone number."},"fax_number":{"type":["string","null"],"description":"Fax number (if available)."},"kep_address":{"type":["string","null"],"description":"Registered Electronic Mail (KEP) address.\n\nRequired for official business correspondence in Turkey."},"mersis_number":{"type":["string","null"],"description":"Central Registration System (MERSIS) number.\n\nUnique business registration number in Turkey."},"extras":{"type":"object","description":"Additional seller-specific data.\n\nMay include custom fields, certifications, ratings, etc.","additionalProperties":true}}}}}}
```

## The SellerOffer object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"SellerOffer":{"type":"object","description":"Seller's offer for a product including price and stock.","properties":{"datasource":{"$ref":"#/components/schemas/DataSourceFull"},"stock":{"$ref":"#/components/schemas/SellerStock"},"price":{"$ref":"#/components/schemas/SellerPrice"}}},"DataSourceFull":{"type":"object","description":"Complete seller/data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"slug":{"type":["string","null"],"description":"URL-friendly identifier"},"title":{"type":"string","description":"Display title"},"supplier_code":{"type":["string","null"],"description":"Supplier code for integration purposes."},"address":{"type":"string","description":"Business address"},"email":{"type":"string","format":"email","description":"Contact email address"},"phone_number":{"type":"string","description":"Contact phone number"},"fax_number":{"type":["string","null"]},"kep_address":{"type":["string","null"]},"mersis_number":{"type":["string","null"]},"trade_association":{"type":["string","null"],"description":"Trade association membership information."},"extras":{"type":"object","additionalProperties":true},"price_list":{"type":["integer","null"],"description":"ID of the price list used by this seller."},"stock_list":{"type":["integer","null"],"description":"ID of the stock list used by this seller."},"is_active":{"type":"boolean","description":"Whether this seller is currently active."}}},"SellerStock":{"type":"object","description":"Seller-specific stock information.","properties":{"pk":{"type":"integer","description":"Stock record identifier"},"product":{"type":"integer","description":"Product identifier"},"stock":{"type":"integer","description":"Available stock quantity from this seller."},"unit_type":{"type":"string","description":"Unit of measurement."},"stock_list":{"type":"integer","description":"Stock list identifier"},"stock_list_detailed":{"type":"object","description":"Detailed stock list information.","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}},"extra_field":{"type":"object","description":"Additional stock-related data.","additionalProperties":true}}},"SellerPrice":{"type":"object","description":"Seller-specific pricing information.","properties":{"pk":{"type":"integer","description":"Price record identifier"},"product":{"type":"integer","description":"Product identifier"},"price":{"type":"string","description":"Seller's current selling price."},"retail_price":{"type":"string","description":"Seller's retail/list price."},"currency_type":{"type":"string","description":"Currency code."},"tax_rate":{"type":"string","description":"Applicable tax rate."},"price_list":{"type":"integer","description":"Price list identifier"},"price_list_detailed":{"type":"object","description":"Detailed price list information.","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"currency":{"type":"string"}}},"extra_field":{"type":"object","description":"Additional pricing data.","additionalProperties":true}}}}}}
```

## The DataSourceFull object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"DataSourceFull":{"type":"object","description":"Complete seller/data source information.","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Internal name"},"slug":{"type":["string","null"],"description":"URL-friendly identifier"},"title":{"type":"string","description":"Display title"},"supplier_code":{"type":["string","null"],"description":"Supplier code for integration purposes."},"address":{"type":"string","description":"Business address"},"email":{"type":"string","format":"email","description":"Contact email address"},"phone_number":{"type":"string","description":"Contact phone number"},"fax_number":{"type":["string","null"]},"kep_address":{"type":["string","null"]},"mersis_number":{"type":["string","null"]},"trade_association":{"type":["string","null"],"description":"Trade association membership information."},"extras":{"type":"object","additionalProperties":true},"price_list":{"type":["integer","null"],"description":"ID of the price list used by this seller."},"stock_list":{"type":["integer","null"],"description":"ID of the stock list used by this seller."},"is_active":{"type":"boolean","description":"Whether this seller is currently active."}}}}}}
```

## The SellerStock object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"SellerStock":{"type":"object","description":"Seller-specific stock information.","properties":{"pk":{"type":"integer","description":"Stock record identifier"},"product":{"type":"integer","description":"Product identifier"},"stock":{"type":"integer","description":"Available stock quantity from this seller."},"unit_type":{"type":"string","description":"Unit of measurement."},"stock_list":{"type":"integer","description":"Stock list identifier"},"stock_list_detailed":{"type":"object","description":"Detailed stock list information.","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}},"extra_field":{"type":"object","description":"Additional stock-related data.","additionalProperties":true}}}}}}
```

## The SellerPrice object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"SellerPrice":{"type":"object","description":"Seller-specific pricing information.","properties":{"pk":{"type":"integer","description":"Price record identifier"},"product":{"type":"integer","description":"Product identifier"},"price":{"type":"string","description":"Seller's current selling price."},"retail_price":{"type":"string","description":"Seller's retail/list price."},"currency_type":{"type":"string","description":"Currency code."},"tax_rate":{"type":"string","description":"Applicable tax rate."},"price_list":{"type":"integer","description":"Price list identifier"},"price_list_detailed":{"type":"object","description":"Detailed price list information.","properties":{"pk":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"currency":{"type":"string"}}},"extra_field":{"type":"object","description":"Additional pricing data.","additionalProperties":true}}}}}}
```

## The Product360Response object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"Product360Response":{"type":"object","description":"Response containing 360-degree product image information.","required":["activate","images"],"properties":{"activate":{"type":"boolean","description":"Indicates if 360° viewing is available for this product.\n\nWhen false, the `images` array will be empty."},"images":{"type":"array","description":"Ordered list of image URLs for 360° rotation.\n\nImages should be displayed in sequence to create the rotation effect.\nTypical sequences contain 24-72 images (representing 15° or 5° intervals).","items":{"type":"string","format":"uri"}}}}}}}
```

## The BukalemunResponse object

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"components":{"schemas":{"BukalemunResponse":{"type":"object","description":"Response containing the transformed image URL.","required":["image_url"],"properties":{"image_url":{"type":"string","format":"uri","description":"URL of the transformed image.\n\nThis URL can be used directly in `<img>` tags or CSS backgrounds.\nThe transformed image is cached for performance."}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.akinon.com/commerce-openapis/products/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
