Interface: CommerceConnector

connectors/interfaces.CommerceConnector

A generic interface for API based or web-scraping ecommerce Connectors.

Methods

addCartItem(cart, cartItem, opts) → {Promise.<module:types.Cart>}

Adds a cart item to cart.

Parameters:
Name Type Description
cart module:types.Cart

The cart to add the cart item to.

cartItem module:types.CartItem

The cart item to add.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>

addCouponEntry(cart, couponEntry, opts) → {Promise.<module:types.Cart>}

Add a coupon to the cart by it's code.

Parameters:
Name Type Description
cart module:types.Cart

The customer's cart.

couponEntry Object

The coupon.

opts Object

Options object.

Source:
Returns:
Type
Promise.<module:types.Cart>

createCart(oldCcart, optsopt) → {Promise.<module:types.Cart>}

Creates a new cart with an optional cart object.

Parameters:
Name Type Attributes Description
oldCcart module:types.Cart

The cart you'd like to migrate to the new cart

opts Object <optional>

object

Source:
Throws:

Could not create cart.

Returns:
Type
Promise.<module:types.Cart>

createOrder(cart, opts) → {Promise.<module:types.Order>}

Create a new order using a given cart.

Parameters:
Name Type Description
cart module:types.Cart

The customer's cart.

opts Object
Source:
Returns:

.

Type
Promise.<module:types.Order>

deleteCart(cartId, optsopt)

Deletes the given cart

Parameters:
Name Type Attributes Description
cartId String

The id of the cart you want to delete.

opts Object <optional>

object

Source:
Throws:

Could not delete cart.

getCart(cartId, optsopt) → {Promise.<module:types.Cart>}

Retrieve cart by id.

Parameters:
Name Type Attributes Description
cartId String

The id of the cart you want to retrieve

opts Object <optional>

object

Source:
Returns:
Type
Promise.<module:types.Cart>

getCategories(ids, optsopt) → {Promise.<module:types.CategoryList>}

Returns multiple product Categories by their ids.

On supported backends this method will retrieve Categories in a single network call. Others may make a call per id to emulate the same behaviour.

Invalid ids are ignored and results are not guaranteed to be returned in the order requested.

Parameters:
Name Type Attributes Description
ids Array.<String>
opts Object <optional>

object

Source:
Returns:
Type
Promise.<module:types.CategoryList>

getCategory(id, optsopt) → {Promise.<module:types.Category>}

Get a product Category by id.

Parameters:
Name Type Attributes Description
id String
opts Object <optional>

object

Source:
Returns:
Type
Promise.<module:types.Category>

getCustomer(id, optsopt) → {Promise.<module:types.Customer>}

Return a customer's details by id.

Parameters:
Name Type Attributes Description
id String

Customer Id

opts Object <optional>

Options object

Source:
Throws:

Throw generic error if server has error.

Type
module:errors.ServerError
Returns:
Type
Promise.<module:types.Customer>

getDefaultHeaders() → {Object.<String, String>}

Get the default headers that are sent with every request.

Source:
Returns:
Type
Object.<String, String>

getOrder(id, optsopt) → {Promise.<module:types.Order>}

Get a single order by id.

Parameters:
Name Type Attributes Description
id String

The order id.

opts Object <optional>

Options object

Source:
Returns:

.

Type
Promise.<module:types.Order>

getOrders(ids, optsopt) → {Promise.<module:types.OrderList>}

Get multiple orders by their ids.

On supported backends this method will retrieve orders in a single network call. Others may make a call per id to emulate the same behaviour.

Invalid ids are ignored and results are not guaranteed to be returned in the order requested.

Parameters:
Name Type Attributes Description
ids Array.<String>

The order ids.

opts Object <optional>

Options object

Source:
Returns:

.

Type
Promise.<module:types.OrderList>

getPaymentMethods(cart, opts) → {Promise.<Array.<module:types.PaymentMethod>>}

Get the available payment methods for the cart.

Parameters:
Name Type Description
cart module:types.Cart

The customer's cart.

opts Object
Source:
Returns:
Type
Promise.<Array.<module:types.PaymentMethod>>

getProduct(id, optsopt) → {Promise.<module:types.Product>}

Get a single product by id.

Parameters:
Name Type Attributes Description
id String

The product id.

opts Object <optional>

Options object

Source:
Returns:

.

Type
Promise.<module:types.Product>

getProducts(ids, optsopt) → {Promise.<module:types.ProductList>}

Get multiple products by their ids.

On supported backends this method will retrieve products in a single network call. Others may make a call per id to emulate the same behaviour.

Invalid ids are ignored and results are not guaranteed to be returned in the order requested.

Parameters:
Name Type Attributes Description
ids Array.<String>

The product ids.

opts Object <optional>

Options object

Source:
Returns:

.

Type
Promise.<module:types.ProductList>

getShippingMethods(cart, opts) → {Promise.<Array.<module:types.ShippingMethod>>}

Get all the available shipping methods given the cart details.

Parameters:
Name Type Description
cart module:types.Cart

The cart to determinen avaialble shipping methods for.

opts Object
Source:
Returns:
Type
Promise.<Array.<module:types.ShippingMethod>>

getStore(id, optsopt) → {Promise.<module:types.Store>}

Get a Store (ie. a physical retail-outlet) by id. Includes addresses, opening hours, etc.

Parameters:
Name Type Attributes Description
id String

The id of the store

opts Object <optional>

Options object

Source:
Returns:

.

Type
Promise.<module:types.Store>

login(username, password) → {Promise.<module:types.Customer>}

Log a customer in and return their details.

On backends which support "guest login", credentials can be omitted to give you a guest session.

Parameters:
Name Type Description
username String
password String
Source:
Throws:
Returns:

.

Type
Promise.<module:types.Customer>

logout() → {Promise.<undefined>}

Log a customer out.

Source:
Throws:

Will throw an error if there was a server-side error.

Type
module:errors.ServerError
Returns:
Type
Promise.<undefined>

refreshSession() → {Promise.<module:types.Customer>}

Refresh a session token, on backends that support refresh.

Source:
Throws:

Will throw an error if authorization credentials are incorrect

Type
module:errors.ForbiddenError
Returns:
Type
Promise.<module:types.Customer>

removeCartItem(cart, cartItemId, opts) → {Promise.<module:types.Cart>}

Remove a cart item from the cart.

Parameters:
Name Type Description
cart module:types.Cart

The cart to remove the cart item from.

cartItemId String

The id of the cart item to remove.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>

removeCouponEntry(cart, couponEntryId, opts) → {Promise.<module:types.Cart>}

Removes a coupon from the cart by its coupon entry id.

Parameters:
Name Type Description
cart module:types.Cart

The customer's cart.

couponEntryId Object

The coupon entry id.

opts Object

Options object.

Source:
Returns:
Type
Promise.<module:types.Cart>

searchProducts(productSearchRequest, optsopt) → {Promise.<module:types.ProductSearch>}

Search for products, given a productSearchRequest object.

Parameters:
Name Type Attributes Description
productSearchRequest module:types.ProductSearchRequest

Search query

opts Object <optional>

Options object

Source:
Returns:
Type
Promise.<module:types.ProductSearch>

searchStores(storeSearchRequest, optsopt) → {Promise.<module:types.StoreSearchResult>}

Searches for Stores (ie. physical retail-outlets).

Parameters:
Name Type Attributes Description
storeSearchRequest module:types.StoreSearchRequest
opts Object <optional>

Options object

Source:
Returns:
Type
Promise.<module:types.StoreSearchResult>

setBillingAddress(cart, billingAddress, opts) → {Promise.<module:types.Cart>}

Set the billing address on the cart.

Parameters:
Name Type Description
cart module:types.Cart

The cart to update the billing address for.

billingAddress module:types.OrderAddress

The new or modified address.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>

setCustomerInformation(cart, customerInformation, opts) → {Promise.<module:types.Cart>}

Set the customer information.

Parameters:
Name Type Description
cart module:types.Cart

The customer's cart.

customerInformation module:types.CustomerInformation

The new or modified customer information.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>

setDefaultHeaders(headers)

Set the default headers that are sent with every request.

Parameters:
Name Type Description
headers Object.<String, String>
Source:

setPayment(cart, payment, opts) → {Promise.<module:types.Cart>}

Add a supported payment type to the cart

Parameters:
Name Type Description
cart module:types.Cart

The cart to remove the payment from.

payment module:types.Payment

The payment to add.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>

setShippingAddress(cart, shippingAddress, opts) → {Promise.<module:types.Cart>}

Set the shipping address on the cart.

Parameters:
Name Type Description
cart module:types.Cart

The cart to update the shipping address for.

shippingAddress module:types.OrderAddress

The new or modified address.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>

setShippingMethod(cart, shippingMethod, opts) → {Promise.<module:types.Cart>}

Set the shipping method for the cart.

Parameters:
Name Type Description
cart module:types.Cart

The cart to set the shipping method for.

shippingMethod module:types.ShippingMethod

The shipping method to set.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>

updateCartItem(cart, cartItem, opts) → {Promise.<module:types.Cart>}

Update an existing cart item in the cart.

Parameters:
Name Type Description
cart module:types.Cart

The cart to containing the cart item to update.

cartItem module:types.CartItem

The cart item to update.

opts Object
Source:
Returns:
Type
Promise.<module:types.Cart>