Below is a list of Rebuy's cart based methods.
All methods below are as if the cart object has a reference variable defined as shown in this code snippet.
const Cart = window.Rebuy.Cart;
This is not a complete list of the globally available function but the ones that we find most helpful.
addItem
Adds the item object that is passed in as the first argument to the Shopify cart.
Cart.addItem(data, options);
allItemsAreOneTime
Returns a boolean. If all items in the cart are onetime items as opposed to subscription items.
Cart.allItemsAreOneTime();
allItemsAreSubscription
Returns a boolean. If all items in the cart are subscription items as opposed to onetime items.
Cart.allItemsAreSubscription();
allSubscribableItemsAreSubscription
Returns a boolean. If all items in the cart that have a subscription option are subscription products.
Cart.allSubscribableItemsAreSubscription();
availableSubscriptionOptions
Returns an options property which is an array containing all of the available frequency options of the items in the cart.
Cart.availableSubscriptionOptions();
cartHasMetafieldSubscriptionItems
Returns a boolean. This would be in reference to stores using subscription items with Recharge Checkout which would return true.
Cart.cartHasMetafieldSubscriptionItems();
cartHasSellingPlanSubscriptionItems
Returns a boolean. This would be in reference to Shopify selling plans or Recharges Shopify checkout integration which would return true.
Cart.cartHasSellingPlanSubscriptionItems();
cartHasSubscriptionItems
Returns a boolean if any of the items in the cart are a subscription item.
Cart.cartHasSubscriptionItems();
changeItem
Accepts an object which must contain an id (this should be the key of the item that you would like to change) property and a quantity property but could also adjust product properties. The options argument is also an object which can take a success and/or error property which are callback functions upon success or error.
Cart.changeItem(object, options);
// Example API call
Cart.changeItem({
id: item.key,
quantity: 2,
properties: {
test: 'This is a test'
}
});
checkout
Will navigate the user to Shopify checkout if all items are onetime or if the merchant is set up with Shopify selling plans and subscription items are in the cart. Otherwise this function will navigate the user to Recharge checkout
Cart.checkout();
clearCart
When this method is called all the items in the cart will be removed.
Cart.clearCart(options);
decreaseItem
This function takes in a single item object as it first argument and an optional callback. One way to get the item object is using the window.Rebuy.Cart.getItemAtIndex(1); method if the index is known.
Cart.decreaseItem(item, callback);
enrichCart
This method loops through the cart items and appends additional information to the item by adding a product property. Within this product property you will find useful information referencing the map between the one-time product and the subscription version of that product depending on which checkout version of Recharge the merchant is using. This method also stores this information in Local Storage to be more easily accessed again in the future.
Cart.enrichCart(callback);
Takes an email address and passes the Rebuy customer object into the callback.
fetchReChargeCart
Passes the Recharge cart object into the callback
Cart.fetchReChargeCart(callback);
Cart.fetchReChargeCart(cart => console.log("cart", cart));
fetchShopifyCart
Async function that returns the Rebuy cart object.
Cart.fetchShopifyCart(callback);
Cart.fetchShopifyCart(cart => console.log("cart", cart));
formatMoney
This function takes a number as the first argument and returns a formatted string with decimal and dollar symbol.
Cart.formatMoney(price, format);
Cart.formatMoney(10000);
// Will return '$100.00'
getCart
Returns the Rebuy cart object.
Cart.getCart();
getCartProductIDs
Returns tan array of numbers which are the product ID's of the products in the cart.
Cart.getCartProductIDs();
getCartToken
Returns a string which is the current Shopify cart token.
Cart.getCartToken();
getCartVariantIDs
Returns tan array of numbers which are the variant ID's of the products in the cart.
Cart.getCartVariantIDs();
getCurrency
Returns a string which is the current currency the store is using.
Cart.getCurrency();
getItemAtIndex
Returns an item object at the index given.
Cart.getItemAtIndex(index);
getItemLineNumber
Cart.getItemLineNumber(item);
getItems
Returns an array containing the objects of the items currently in the cart in sorted order where index 0 is the most recent item added or updated.
Cart.getItems(filters, possessive);
getRebuyItemCount
Returns a number which is the number of items added by a Rebuy widget. If a specific widget ID is passed into this method as an argument then it will return the number of items that have been added by that widget only.
Widget Tracking
Widget tracking must be enabled for this method to work properly. This is enabled on all widgets by default.
Cart.getRebuyItemCount(widget_id);
getRebuyItems
Returns an array of objects which are the items added by a Rebuy widget. If a specific widget ID is passed into this method as an argument then it will return the items that have been added by that widget only.
Widget Tracking
Widget tracking must be enabled for this method to work properly. This is enabled on all widgets by default.
Cart.getRebuyItems(widget_id);
getReChargeCheckoutDomain
Returns the Recharge checkout domain.
Warning
Only use this if the merchant is using the Recharge checkout version of Recharge as opposed to the Shopify Checkout Integration.
Cart.getReChargeCheckoutDomain();
goToCartPage
When this method is called the user will be redirected to the cart page.
Cart.goToCartPage();
goToReChargeCheckout
When this method is called and the store is using the Recharge Checkout Integration the user will be redirected to the Recharge checkout page.
Warning
Only use this if the merchant is using the Recharge checkout version of Recharge as opposed to the Shopify Checkout Integration.
Cart.goToReChargeCheckout();
goToShopifyCheckout
When this function is called, the customer will be re-directed to the Shopify checkout page.
Cart.goToShopifyCheckout();
hasItems
Returns a boolean (true) if the cart currently has any items.
Cart.hasItems();
hasSubscribableItems
Returns a boolean (true) when the cart contains at least one item that could be or is a subscription item.
Cart.hasSubscribableItems();
increaseItem
Takes an item object as the first argument, a success callback as the second, and an error callback as the last and will increase the quantity of that item by one.
Cart.increaseItem(item, success, error);
Cart.increaseItem(Cart.items[0]);
init
Initializes the Rebuy Cart object
Cart.init();
isSubscription
Returns a boolean (true) if the product in the cart either is a subscription item or has a subscription option and is currently a onetime item.
Cart.isSubscription(item);
itemCount
Returns the count (type: number) of all the items including items with more than one quantity.
Cart.itemCount();
itemDeliveryFrequency
Takes an item object as an argument and returns a string which is the delivery frequency at which the item is currently selected at. (i.e. 'Onetime', '30', '60')
Cart.itemDeliveryFrequency(item);
itemDeliveryInterval
Returns a string which is the currently selected interval ('days').
Cart.itemDeliveryInterval(item);
itemIsOneTime
Returns a boolean (true) if the specified item is a onetime item as opposed to a subscription item.
Cart.itemIsOneTime(item);
itemIsSubscription
Returns a boolean (true) if the specified item is a subscription item as opposed to a onetime item.
Cart.itemIsSubscription(item);
itemPrice
Returns an unformatted number of the price of the item. Could be used in conjunction with Cart.formatMoney() to create a formatted price.
Cart.itemPrice(item);
items
Returns an array of objects which are the items in the cart.
Cart.items();
lineCount
Returns a number. If one item has quantity of two then that will only count as one toward to total count returned.
Cart.lineCount();
lineItemDiscountMessage
Returns a string which is the discount message if applicable to the item.
Cart.lineItemDiscountMessage(item);
removeItem
Removes the item that is passed in as the first argument.
Cart.removeItem(item, callback);
removeShopifyDiscount
Cart.removeShopifyDiscount(callback);
selectVariant
Cart.selectVariant(product, query);
setDiscount
Cart.setDiscount(discount);
setItemQuantity
Takes and item object and a number as arguments and will set that item quantity to the given number.
Cart.setItemQuantity(item, quantity, callback);
subtotal
Returns a number which is the current subtotal of all the items in the cart. This is not formatted.
Cart.subtotal();
switchCartToFrequency
Cart.switchCartToFrequency(selectedOption, callback, errorHandler);
switchItemToFrequency
Cart.switchItemToFrequency(item, frequency, callback, errorHandler);
switchItemToOneTimeData
Cart.switchItemToOneTimeData(item);
switchItemToSubscriptionData
Cart.switchItemToSubscriptionData(item, frequency, interval);
switchToOneTime
Takes a subscription item's object as an argument and will switch the item from a subscription to a one-time item.
Cart.switchToOneTime(item, callback);
switchToSubscription
Takes an item object and a frequency string. The frequency is the interval at which you would like the shipping interval to default to. (i.e. '30')
Cart.switchToSubscription(item, frequency, callback);