@spree/storefront-api-v2-sdk
Version:
Node module to easily integrate your JavaScript or TypeScript application with Spree Storefront API V2. You can create an entirely custom Storefront in JS/TS with this package including one page checkout, Single Page Apps, PWAs and so on.
444 lines (443 loc) • 16.4 kB
TypeScript
import { Http } from '@spree/core-api-v2-sdk';
import type { IQuery, IToken, NoContentResult } from '@spree/core-api-v2-sdk';
import type { AddItem, CouponCode, EstimateShippingMethods, SetQuantity, AssociateCart, ChangeCurrency, EstimateShippingRates } from '../interfaces/endpoints/CartClass';
import type { EstimatedShippingRatesResult, IEstimatedShippingMethodsResult } from '../interfaces/EstimatedShippingMethod';
import type { IOrderResult } from '../interfaces/Order';
import type { AddItemOptions, ApplyCouponCodeOptions, AssociateGuestCartOptions, ChangeCurrencyOptions, CreateOptions, EmptyCartOptions, EstimateShippingRatesOptions, RemoveAllCouponsOptions, RemoveCouponCodeOptions, RemoveItemOptions, RemoveOptions, SetQuantityOptions, ShowOptions } from '../interfaces/Cart';
export default class Cart extends Http {
/**
* Creates a new Cart and returns its attributes. See [api docs](https://api.spreecommerce.org/docs/api-v2/6a57a5a49594f-create-a-cart).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) - if logged in user
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.create({
* bearer_token: '7381273269536713689562374856'
* })
*
* // or guest user
* const response = await client.cart.create()
* ```
*/
create(options?: CreateOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
create(token?: IToken, params?: IQuery): Promise<IOrderResult>;
/**
* Returns contents of the cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MzE0Mjc0Ng-retrieve-a-cart).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.show({
* bearer_token: '7381273269536713689562374856'
* })
*
* // or guest user
* const response = await client.cart.show({
* order_token: '7381273269536713689562374856'
* })
* ```
*/
show(options: ShowOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
show(token: IToken, params?: IQuery): Promise<IOrderResult>;
/**
* Adds a Product Variant to the Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MzE0Mjc0Nw-add-an-item-to-cart).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Options schema:**
* ```ts
* interface options {
* variant_id: string
* quantity: number
* options?: {
* [key: string]: string
* }
* }
* ```
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.addItem({
* bearer_token: '7381273269536713689562374856',
* variant_id: '1',
* quantity: 1
* })
*
* // or guest user
* const response = await client.cart.addItem({
* order_token: '7381273269536713689562374856',
* variant_id: '1',
* quantity: 1
* })
* ```
*/
addItem(options: AddItemOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
addItem(token: IToken, params: AddItem): Promise<IOrderResult>;
/**
* Sets the quantity of a given line item. It has to be a positive integer greater than 0. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MzE0Mjc0OA-set-line-item-quantity).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Options schema:**
* ```ts
* interface options {
* line_item_id: string
* quantity: number
* }
* ```
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.setQuantity({
* bearer_token: '7381273269536713689562374856',
* line_item_id: '9',
* quantity: 100
* })
*
* // or guest user
* const response = await client.cart.setQuantity({
* order_token: '7381273269536713689562374856',
* line_item_id: '9',
* quantity: 100
* })
* ```
*/
setQuantity(options: SetQuantityOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
setQuantity(token: IToken, params: SetQuantity): Promise<IOrderResult>;
/**
* Removes Line Item from Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/8b7783ed322f1-remove-a-line-item).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Options schema:**
* ```ts
* interface options {
* id: string
* }
* ```
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.removeItem({
* bearer_token: '7381273269536713689562374856',
* id: '1'
* })
*
* // or guest user
* const response = await client.cart.removeItem({
* order_token: '7381273269536713689562374856',
* id: '1'
* })
* ```
*/
removeItem(options: RemoveItemOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
removeItem(token: IToken, id: string, params?: IQuery): Promise<IOrderResult>;
/**
* Empties the Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MzE0Mjc1MA-empty-the-cart).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.emptyCart({
* bearer_token: '7381273269536713689562374856'
* })
*
* // or guest user
* const response = await client.cart.emptyCart({
* order_token: '7381273269536713689562374856'
* })
* ```
*/
emptyCart(options: EmptyCartOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
emptyCart(token: IToken, params?: IQuery): Promise<IOrderResult>;
/**
* Removes the Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MTcyNTA0NDc-delete-a-cart).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.remove({
* bearer_token: '7381273269536713689562374856'
* })
*
* // or guest user
* const response = await client.cart.remove({
* order_token: '7381273269536713689562374856'
* })
* ```
*/
remove(options: RemoveOptions): Promise<NoContentResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
remove(token: IToken): Promise<NoContentResult>;
/**
* Applies a coupon code to the Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MzE0Mjc1MQ-apply-a-coupon-code).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Options schema:**
* ```ts
* interface options {
* coupon_code: string
* }
* ```
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.applyCouponCode({
* bearer_token: '7381273269536713689562374856',
* coupon_code: 'promo_test'
* })
*
* // or guest user
* const response = await client.cart.applyCouponCode({
* order_token: '7381273269536713689562374856',
* coupon_code: 'promo_test'
* })
* ```
*/
applyCouponCode(options: ApplyCouponCodeOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
applyCouponCode(token: IToken, params: CouponCode): Promise<IOrderResult>;
/**
* Removes a coupon code from the Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MzE0Mjc1Mg-remove-a-coupon).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Options schema:**
* ```ts
* interface options {
* code?: string
* }
* ```
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.removeCouponCode({
* bearer_token: '7381273269536713689562374856',
* code: 'promo_test'
* })
*
* // or guest user
* const response = await client.cart.removeCouponCode({
* order_token: '7381273269536713689562374856',
* code: 'promo_test'
* })
* ```
*/
removeCouponCode(options: RemoveCouponCodeOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
removeCouponCode(token: IToken, code: string, params?: IQuery): Promise<IOrderResult>;
/**
* Removes all coupon codes from the Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MjM5NTU3NTg-remove-all-coupons).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.removeAllCoupons({
* bearer_token: '7381273269536713689562374856'
* })
*
* // or guest user
* const response = await client.cart.removeAllCoupons({
* order_token: '7381273269536713689562374856'
* })
* ```
*/
removeAllCoupons(options: RemoveAllCouponsOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
removeAllCoupons(token: IToken, params: IQuery): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use {@link estimateShippingRates} instead.
*/
estimateShippingMethods(token: IToken, params: EstimateShippingMethods): Promise<IEstimatedShippingMethodsResult>;
/**
* Returns a list of Estimated Shipping Rates for Cart. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MzE0Mjc1Mw-list-estimated-shipping-rates).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Options schema:**
* ```ts
* interface options {
* country_iso: string
* }
* ```
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.estimateShippingRates({
* bearer_token: '7381273269536713689562374856',
* country_iso: 'USA'
* })
*
* // or guest user
* const response = await client.cart.estimateShippingRates({
* order_token: '7381273269536713689562374856',
* country_iso: 'USA'
* })
* ```
*/
estimateShippingRates(options: EstimateShippingRatesOptions): Promise<EstimatedShippingRatesResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
estimateShippingRates(token: IToken, params: EstimateShippingRates): Promise<EstimatedShippingRatesResult>;
/**
* Associates a guest cart with the currently signed in user. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MjAxMTAyMzM-associate-a-cart-with-a-user).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token)
*
* **Options schema:**
* ```ts
* interface options {
* guest_order_token: string
* }
* ```
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.associateGuestCart({
* bearer_token: '7381273269536713689562374856',
* guest_order_token: 'aebe2886d7dbba6f769e20043e40cfa3447e23ad9d8e82c632f60ed63a2f0df1'
* })
* ```
*/
associateGuestCart(options: AssociateGuestCartOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
associateGuestCart(token: IToken, params: AssociateCart): Promise<IOrderResult>;
/**
* Changes the Cart's currency. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MjA2OTMwMDM-change-cart-currency).
*
* **Required token:** [Bearer token](../pages/tokens.html#bearer-token) or [Order token](../pages/tokens.html#order-token)
*
* **Options schema:**
* ```ts
* interface options {
* new_currency: string
* }
* ```
*
* **Success response schema:** [Success schema](../pages/response-schema.html#success-schema)
*
* **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema)
*
* **Example:**
* ```ts
* // Logged in user
* const response = await client.cart.changeCurrency({
* bearer_token: '7381273269536713689562374856',
* new_currency: 'CAD'
* })
* ```
*/
changeCurrency(options: ChangeCurrencyOptions): Promise<IOrderResult>;
/**
* @hidden
* @deprecated Use the combined options signature instead.
*/
changeCurrency(token: IToken, params: ChangeCurrency): Promise<IOrderResult>;
}