Ajax Cart
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.
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);
});
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);
});
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);
});
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);
});
Clears all line items, but not cart atrributes or notes.
clearItems();
Event listener
document.addEventListener('cart:clear', (event) => {
// console.log(event.detail.json);
});
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 modified 3yr ago