# Grouped Product

Grouped product (product set) operations

## Retrieve grouped product detail

> Returns detail information for a grouped product, including all member products and combined pricing.\
> \
> \*\*Grouped Products:\*\*\
> A grouped product represents a collection of related products sold together, such as:\
> \* Furniture sets (table + chairs)\
> \* Outfit combinations (shirt + pants + accessories)\
> \* Kit products (main product + accessories)\
> \
> \*\*Response Includes:\*\*\
> \* Main grouped product information\
> \* List of all member products with individual details\
> \* Combined total price and retail price for the group\
> \* Stock availability across all group members\
> \
> \*\*Pricing:\*\*\
> \* \`group\_products\_total\_price\`: Sum of all member product prices\
> \* \`group\_products\_total\_retail\_price\`: Sum of all member retail prices

```json
{"openapi":"3.1.0","info":{"title":"Product API - Product Catalog & Detail Information","version":"1.0.0"},"tags":[{"name":"Grouped Product","description":"Grouped product (product set) operations"}],"servers":[{"description":"Commerce API Server","url":"https://{commerce_url}","variables":{"commerce_url":{"default":"sandbox.akinon.com","description":"Commerce server URL (e.g., your-store.akinon.com)"}}}],"paths":{"/group-product/{product_id}/":{"get":{"tags":["Grouped Product"],"operationId":"getGroupedProductDetail","summary":"Retrieve grouped product detail","description":"Returns detail information for a grouped product, including all member products and combined pricing.\n\n**Grouped Products:**\nA grouped product represents a collection of related products sold together, such as:\n* Furniture sets (table + chairs)\n* Outfit combinations (shirt + pants + accessories)\n* Kit products (main product + accessories)\n\n**Response Includes:**\n* Main grouped product information\n* List of all member products with individual details\n* Combined total price and retail price for the group\n* Stock availability across all group members\n\n**Pricing:**\n* `group_products_total_price`: Sum of all member product prices\n* `group_products_total_retail_price`: Sum of all member retail prices","parameters":[{"name":"product_id","in":"path","required":true,"description":"Unique identifier of the grouped product.\n\nMust be a product with type \"grouped\".","schema":{"type":"integer"}}],"responses":{"200":{"description":"Grouped product detail retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupedProductDetailResponse"}}}},"404":{"description":"Grouped product not found.\n\nOccurs when:\n* No product exists with the specified ID\n* Product exists but is not of type \"grouped\"\n* Product is marked as end-of-life"}}}}},"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}}}]}}}}
```
