{"title":"ProductComponent - Liquid Object Reference","slug":"product-component-liquid-object-reference","url":"https://support.storeconnect.com/articles/product-component-liquid-object-reference","url_markdown":"https://support.storeconnect.com/articles/product-component-liquid-object-reference.md","subtitle":null,"summary":"The ProductComponent object represents a component that can be included in a New Product Bundle.\n      It defines the relationship between an anchor product and a component product with quantity rules and pricing.","type":"Developer_Documentation","video_url":"","keywords":"liquid, objects, ProductComponent, template, storeconnect","last_modified":"2026-08-21T07:12:35+0000","body_markdown":"## Description\n\nThe ProductComponent object represents a component that can be included in a New Product Bundle.\n      It defines the relationship between an anchor product and a component product with quantity rules and pricing.\n\n:::note\nThis object supports custom data via the `data` attribute.\n:::\n\n## Attributes\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `anchor_product` | [Product](product-liquid-object-reference) | Returns the anchor Product for this component |\n| `can_edit_quantity?` | Boolean | Returns true if this component can have addable quantity |\n| `chargeable_quantity` | Number | Returns the quantity that will be charged (accounting for free quantity) |\n| `component_pricing` | [ComponentPricing](component-pricing-liquid-object-reference) | Returns special bundle pricing for this component |\n| `component_product` | [Product](product-liquid-object-reference) | Returns the component Product |\n| `component_unit_price` | Number | Returns the effective bundle price (Used for JS to reference the added price on the bundle) |\n| `default_quantity` | Number | Returns the default quantity for this component |\n| `free_quantity` | Number | Returns the quantity included free in bundle price |\n| `group` | [ComponentGroup](component-group-liquid-object-reference) | Returns the ComponentGroup this component belongs to |\n| `has_component_pricing?` | Boolean | Returns true if this component has special New Product Bundle pricing |\n| `has_free_quantity?` | Boolean | Returns true if this component has free quantity included |\n| `id` | String | Returns the unique id of this ProductComponent |\n| `in_group?` | Boolean | Returns true if this component belongs to a ComponentGroup |\n| `included_by_default?` | Boolean | Returns true if this component is included and cannot be removed |\n| `max_quantity` | Number | Returns the maximum quantity allowed for this component |\n| `min_quantity` | Number | Returns the minimum quantity required for this component |\n| `optional?` | Boolean | Returns true if this component is optional in the bundle |\n| `position` | Number | Returns the display order position of this component |\n| `quantity_range` | String | Returns the valid quantity range for this component |\n| `required?` | Boolean | Returns true if this component is required in the bundle |\n\n## Available on\n\n- [ComponentGroup - Liquid Object Reference](component-group-liquid-object-reference) — `components`\n- [Product - Liquid Object Reference](product-liquid-object-reference) — `product_components`"}