Ajax Cart
The Ajax Cart module is a wrapper for the Shopify Ajax API.
getCart, addItem, updateCart, updateItem, clearItems and getShippingRates methods are available using this module. An additional getProduct method is currently available seperately via the Product module.
All methods include an event listener.
getCart
Fetches the current cart as a JSON object.
import {getCart} from '@elkfox/shopify-theme/scripts/cart';
getCart();
Event listener
You can also listen for the getCart event throughout your project.
document.addEventListener('cart:get', (event) => {
// console.log(event.detail.json);
});
addItem
Adds an item to the cart.
Requires variant id
and quantity
Also accepts properties
as an array of value pairs, ie { key : value }
import {addItem} from '@elkfox/shopify-theme/scripts/cart';
addItem(item, (result) => {
// console.log(result)
});
Event listener
document.addEventListener('cart:added', (event) => {
// console.log(event.detail.json);
});
updateCart
Updates line items, cart notes and cart attributes.
Accepts properties
as an array of value pairs, ie { key : value }
import {updateCart} from '@elkfox/shopify-theme/scripts/cart';
updateCart(data, (result) => {
// console.log(result)
});
Event listener
document.addEventListener('cart:update', (event) => {
// console.log(event.detail.json);
});
updateItem
Updates the quantity of a line item.
Requires variant id
or line index, and quantity
import {updateItem} from '@elkfox/shopify-theme/scripts/cart';
updateItem(data, (result) => {
// console.log(result)
});
Event listener
document.addEventListener('cart:change', (event) => {
// console.log(event.detail.json);
});
clearItems
Clears all line items, but not cart atrributes or notes.
clearItems();
Event listener
document.addEventListener('cart:clear', (event) => {
// console.log(event.detail.json);
});
getShippingRates
Fetch the shipping rates as a JSON object.
Requires an address.
import {getShippingRates} from '@elkfox/shopify-theme/scripts/cart';
const address = {
'shipping_address[country]': 'Australia',
'shipping_address[province]': 'Victoria',
'shipping_address[zip]': '3000',
}
getShippingRates(address);
Event listener
document.addEventListener('cart:get:rates', (event) => {
// console.log(event.detail.json);
});
Last updated
Was this helpful?