Skip to content

Cart Items Methods

SmartCart.automaticDiscountTotalAmountSavednumber

Returns the total amount saved from automatic discounts on items in the cart

Returns: number - the total amount saved from automatic discounts on items in the cart\ (excludes items with subtotal exclusions) ## SmartCart.compareAtPricenumber | null

Gets the compare at price for a cart item

Returns: number | null - The compare at price of the cart item or null if not applicable

Param Type Description
item object The cart item

SmartCart.decreaseItem

Decreases the quantity of a cart item

Param Type Description
item object The cart item
callback function Function to call after decreasing the item quantity

Example

// Decrease quantity of an item (removes if quantity becomes 0)
const items = SmartCart.items();
if (items.length > 0 && items[0].quantity > 1) {
  SmartCart.decreaseItem(items[0], () => {
    console.log('Item quantity decreased');
  });
}

SmartCart.hasAutomaticDiscountAppliedboolean

Determines whether any of the items in the cart have an automatic discount applied

Returns: boolean - Boolean indicating whether any of the items in the cart have an automatic discount applied ## SmartCart.hasItemPropertiesboolean

Determines if the cart item has any content it should render in the line item properties area in the Smart Cart

Returns: boolean - Whether the cart item has any properties to render (or a delivery frequency with Switch to Subscription disabled)

Param Type Description
item object The cart item object to check for properties

SmartCart.hasItemsboolean

Determines whether the cart has items

Returns: boolean - Boolean indicating whether the cart has items

Example

// Check if cart has items before showing checkout
if (SmartCart.hasItems()) {
  console.log('Cart has items, ready for checkout');
} else {
  console.log('Cart is empty');
}

SmartCart.hasLineItemDiscountboolean

Determines whether the cart item has a line item discount

Returns: boolean - Boolean indicating whether the cart item has a line item discount

Param Type Description
item object The cart item

SmartCart.hiddenItemsArray.<object>

Returns the hidden items in the cart

Returns: Array.<object> - Array of hidden items in the cart ## SmartCart.hideQuantitySelectorsboolean

Determines whether the quantity selectors should be hidden for the cart item\ based on product tags or properties

Returns: boolean - Boolean indicating whether the quantity selectors should be hidden

Param Type Description
item object The cart item

SmartCart.increaseItem

Increases the quantity of a cart item

Param Type Description
item object The cart item
callback function Function to call after increasing the item quantity

Example

// Get the first item and increase its quantity
const items = SmartCart.items();
if (items.length > 0) {
  SmartCart.increaseItem(items[0], () => {
    console.log('Item quantity increased');
  });
}

SmartCart.isHiddenItemboolean

Determines whether the cart item should be hidden in the Smart Cart based on product tags or properties

Returns: boolean - Boolean indicating whether the cart item should be hidden

Param Type Description
item object The cart item

SmartCart.itemCountnumber

Returns the total number of items in the cart (excluding hidden items)

Returns: number - The total number of items in the cart

Example

// Update a custom cart counter element
const count = SmartCart.itemCount();
document.querySelector('.my-cart-count').textContent = count;

// Conditionally show/hide empty cart message
if (count === 0) {
  document.querySelector('.empty-cart-message').style.display = 'block';
}

SmartCart.itemHasDiscountboolean

Determines whether the cart item has a discount

Returns: boolean - Boolean indicating whether the cart item has a discount

Param Type Description
item object The cart item

SmartCart.itemPricenumber

Gets the price for a cart item

Returns: number - The price of the cart item

Param Type Description
item object The cart item

SmartCart.itemProductTagsClassesstring

Gets a string of tag-based classes for the line item

Returns: string - String of tag-based classes for the line item

Param Type Description
item object The cart item

SmartCart.itemPropertiesArray.<object>

Gets the line item properties to display in the cart

Returns: Array.<object> - Array of properties for the item

Param Type Description
item object The cart item

SmartCart.itemPropertyClassesstring

Gets a string of multiple property-based classes for the line item

Returns: string - String of multiple property-based classes for the line item

Param Type Description
item object The cart item
item.properties object The properties of the item

SmartCart.itemPropertyKeyClassstring

Gets a single CSS class for the line item property key

Returns: string - single CSS class for the line item property key

Param Type Description
property object Line item property object (key, value)

SmartCart.itemPropertyValueClassstring

Gets a single CSS class for the line item property value

Returns: string - single CSS class for the line item property value

Param Type Description
property object Line item property object (key, value)

SmartCart.itemURLstring

Gets the URL for a cart item

Returns: string - The URL for the cart item

Param Type Description
item object The cart item

SmartCart.itemsArray.<object>

Returns the items in the cart

Returns: Array.<object> - Array of items in the cart

Example

// Get all items in the cart
const items = SmartCart.items();

// Log each item's title and quantity
items.forEach(item => {
  console.log(`${item.title} x ${item.quantity}`);
});

// Calculate total quantity across all items
const totalQty = items.reduce((sum, item) => sum + item.quantity, 0);
console.log('Total items:', totalQty);

SmartCart.itemsWithSubtotalExclusionsArray.<object>

Gets the cart items with or without subtotal exclusions

Returns: Array.<object> - Array of cart items

Param Type Description
returnExcludedItems boolean Whether to return excluded items instead of included items

SmartCart.lineItemDiscountMessagestring | null

Gets the discount message for a line item

Returns: string | null - The discount message or null if no discount

Param Type Description
item object The cart item

SmartCart.removeItem

Removes an item from the cart

Param Type Description
item object The cart item to remove
callback function Function to call after removing the item

Example

// Remove the first item from the cart
const items = SmartCart.items();
if (items.length > 0) {
  SmartCart.removeItem(items[0], () => {
    console.log('Item removed from cart');
  });
}
See something that needs updating? Suggest an edit