What It Does
The Cart Drawer Product component automatically renders each individual product line item inside the cart drawer. Displays product image, title, variant, quantity selector, price, and remove button for each item added to cart.This is an automatic component with no customizable settings. Renders automatically for each cart item when cart drawer opens. Cannot be configured in Theme Customizer.
How It Works
Automatic Rendering
Component renders when:- Customer opens cart drawer (clicks cart icon in header)
- Cart contains one or more items
- Component loops through
cart.itemsarray, rendering one cart item per loop iteration
- Cart drawer loops through items
- For each item, renders cart-drawer-product component
- Displays product details (image, title, variant, quantity, price)
- Provides interaction (quantity update, remove item)
Display Content
Each cart item shows:- Product image - Thumbnail of product variant
- Product title - Clickable link to product page
- Variant - Selected options (e.g., “Size: M, Color: Blue”)
- Quantity selector - +/- buttons or input to adjust quantity
- Line price - Price × quantity (e.g., 100.00)
- Remove button - “X” or “Remove” to delete item from cart
User Interactions
Quantity adjustment:- Customer clicks ”+” to increase quantity
- Clicks ”-” to decrease quantity (minimum 1)
- Or types quantity directly in input field
- Cart updates via Ajax (no page reload)
- Cart total recalculates automatically
- Customer clicks “Remove” or “X” button
- Item deleted from cart
- Cart drawer updates (item fades out)
- Cart total recalculates
- Clicking product image or title → Redirects to product page
- Allows customer to review product details without closing cart
Cart Item Data
Product Properties
Each cart item includes:item.title- Product titleitem.variant.title- Variant name (e.g., “Medium / Blue”)item.image- Product variant imageitem.quantity- Quantity in cartitem.line_price- Total for this line (price × quantity)item.original_line_price- Pre-discount price (if discount applied)item.url- Link to product pageitem.properties- Custom properties (engraving, gift message, etc.)
Variant Details
Displayed if applicable:- Size
- Color
- Material
- Other options (configured in product variants)
- Custom property data (e.g., engraving text)
Best practices
Clear Product Images
Ensure cart item images clear and recognizable. Customers use images to verify correct items in cart.
Variant Details Visible
Display variant options prominently (Size, Color, etc.). Prevents confusion when multiple variants in cart.
Quantity Selectors Accessible
Ensure +/- buttons large enough to tap on mobile. Minimum 44x44px touch target.
Remove Button Clear
“Remove” button should be obvious but not accidentally clickable. Confirmation modal optional for safety.
Related Components
- Cart Drawer - Cart drawer container (configures drawer size, layout)
- Cart Page - Full cart page (similar cart item rendering)
- Product Page - Where products added to cart
Technical Notes
Ajax Cart Updates
Quantity changes:- Sends POST request to
/cart/change.js - Updates cart object on server
- Returns updated cart data (JSON)
- Cart drawer re-renders with new quantities/totals
- Sends POST to
/cart/change.jswithquantity: 0 - Removes item from cart
- Cart drawer re-renders without deleted item
Cart Item Loop
Liquid code structure:itemobject (product data)- Renders HTML for that specific cart item
- Repeated for each item in cart
Custom Properties
If product has custom fields:- Properties display below variant (e.g., “Engraving: John”)
- Configured on product page (custom input fields)
- Stored in
item.properties - Rendered in cart item component
Key Takeaways
- Automatic component - No settings, renders for each cart item automatically
- Loops through cart items - One component instance per cart item
- Shows product details - Image, title, variant, quantity, price
- Interactive - Quantity adjustment and remove item functionality
- Ajax updates - Cart updates without page reload (smooth UX)
- No Theme Customizer control - Cannot customize without code editing
- Mobile-optimized - Touch-friendly buttons essential for mobile cart drawer