Last updated

addCartItems()

Adds one or more items to the cart.

Signature

// Add single item (shorthand)
await window.FairShareSDK.addCartItems(variantId, options);

// Add multiple items
await window.FairShareSDK.addCartItems(items);

Parameters

Shorthand Form

ParameterTypeRequiredDescription
variantIdnumberYesProduct variant ID
options.quantitynumberNoQuantity to add (default: 1)
options.subscribebooleanNoEnable subscription (default: false)
options.subscription_plan_idnumberNoSubscription plan ID
options.bundled_itemsBundledItem[]NoBundle group selections for dynamic bundle products

Array Form

ParameterTypeDescription
itemsCartItem[]Array of items to add

CartItem Object:

PropertyTypeRequiredDescription
variant_idnumberYesProduct variant ID
quantitynumberYesQuantity to add
subscribebooleanNoEnable subscription
subscription_plan_idnumberNoSubscription plan ID
bundled_itemsBundledItem[]NoBundle group selections for dynamic bundle products

BundledItem Object:

PropertyTypeRequiredDescription
variant_idnumberYesVariant ID of the bundled item
quantitynumberYesQuantity of the bundled item (min: 0)
display_to_customerbooleanNoWhether to display bundled item to customer
subscriptionbooleanNoWhether bundled item is a subscription
subscription_plan_idnumber | nullNoSubscription plan ID for the bundled item

Returns

Promise<Cart | undefined>

Examples

Simple Add

await window.FairShareSDK.addCartItems(22190);

Add with Quantity

await window.FairShareSDK.addCartItems(22190, { quantity: 2 });

Add with Subscription

await window.FairShareSDK.addCartItems(22190, {
  subscribe: true,
  subscription_plan_id: 642
});

Dynamic Bundle — Single Item Syntax

await window.FairShareSDK.addCartItems(278318, {
  quantity: 1,
  bundled_items: [
    { variant_id: 39325, quantity: 1 },
    { variant_id: 35376, quantity: 1 },
    { variant_id: 11311, quantity: 1 },
  ]
});

Dynamic Bundle — Array Syntax

await window.FairShareSDK.addCartItems([
  {
    variant_id: 278318,
    quantity: 1,
    bundled_items: [
      { variant_id: 39325, quantity: 1 },
      { variant_id: 35376, quantity: 1 },
      { variant_id: 11311, quantity: 1 },
    ]
  }
]);

Multiple Regular Items

await window.FairShareSDK.addCartItems([
  { variant_id: 22190, quantity: 1 },
  { variant_id: 29366, quantity: 2 },
]);

HTML Alternative

Use data attributes without JavaScript:

<!-- Basic add to cart -->
<button data-fluid-add-to-cart="123456">Add to Cart</button>

<!-- With quantity -->
<button data-fluid-add-to-cart="123456" data-fluid-quantity="2">
  Add 2 to Cart
</button>

<!-- With subscription -->
<button data-fluid-add-to-cart="123456" data-fluid-subscribe="true">
  Subscribe
</button>

<!-- With specific subscription plan -->
<button
  data-fluid-add-to-cart="123456"
  data-fluid-subscription-plan-id="99"
>
  Subscribe with Plan
</button>

<!-- Add multiple items -->
<button data-fluid-add-to-cart="123456,789012">Add Both</button>

<!-- Dynamic bundle with bundled items -->
<button
  data-fluid-add-to-cart="278318"
  data-fluid-bundled-items='[{"variant_id":39325,"quantity":1},{"variant_id":35376,"quantity":1},{"variant_id":11311,"quantity":1}]'
>
  Add Bundle to Cart
</button>

<!-- Control cart opening after add -->
<button
  data-fluid-add-to-cart="123456"
  data-fluid-open-cart-after-add="false"
>
  Add Silently
</button>

All Data Attributes

AttributeTypeDescription
data-fluid-add-to-cartstringVariant ID(s), comma-separated for multiple
data-fluid-quantitystringQuantity (default: 1)
data-fluid-subscribestring"true" or "false", comma-separated for multiple
data-fluid-subscription-plan-idstringSubscription plan ID
data-fluid-bundled-itemsJSON stringArray of { variant_id, quantity } for dynamic bundles
data-fluid-open-cart-after-addstringSet to "false" to prevent cart from opening