Class: SalesforceConnector

sfcc.SalesforceConnector(client)

A connector for the Salesforce Commerce Cloud API.

Constructor

new SalesforceConnector(client)

Parameters:
Name Type Description
client ShopApi.ApiClient
Implements:
Source:

Methods

(static) fromConfig(config) → {module:sfcc.SalesforceConnector}

Given a configuration in the form of a plain object, this method returns a new SalesforceConnector instance.

Parameters:
Name Type Description
config Object

https://github.com/mobify/commercecloud-ocapi-client/blob/develop/src/ApiClient.js#L44

Source:
Returns:

The new SalesforceConnector instance.

Type
module:sfcc.SalesforceConnector

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
Implements:
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

Implements:
Source:
Throws:

Could not create cart.

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

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

Implements:
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

Implements:
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

Implements:
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

Implements:
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

Implements:
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.

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

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
Implements:
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

Implements:
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

Implements:
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
Implements:
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

Implements:
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
Implements:
Source:
Throws:
  • Will throw an error if the username or password aren't provided for type registered.

    Type
    module:errors/InvalidArgumentError
  • Will throw an error if the customer credentials are incorrect.

    Type
    module:errors/ForbiddenError
Returns:

.

Type
Promise.<module:types/Customer>

logout() → {Promise.<undefined>}

Log a custmer out.

Implements:
Source:
Throws:

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

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

parseCart()

Parse a cart

Implements:
Source:

parseCartItem()

Parse a cart item

Implements:
Source:

parseCategories(categories) → {Array.<module:types.Category>}

Takes an array of OCAPI Category objects and parses it into an commerce-integrations Category type.

Parameters:
Name Type Description
categories Array.<Object>

an array of OCAPI Category document

Implements:
Source:
Returns:
Type
Array.<module:types.Category>

parseCategory()

Parse a category.

Implements:
Source:

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

Takes a OCAPI Customer object and parses it into a commerce-integrations Customer type.

Parameters:
Name Type Description
data Object

a OCAPI Customer document

Implements:
Source:
Returns:
Type
Promise.<module:types.Customer>

parseCustomerInformation()

Parse customer information

Implements:
Source:

parseGetStore(data) → {Promise.<module:types.Store>}

Takes a OCAPI Store object and parses it into a commerce-integrations Store type.

Parameters:
Name Type Description
data Object

a OCAPI Store document

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

parseImage(imageUrl, attributes) → {Promise.<module:types.Image>}

Takes an image url and its attributes and return an commerce-integrations Image type.

Parameters:
Name Type Description
imageUrl string
attributes Object

additional attributes of an image

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

parseOrderAddress()

Parse an order address

Implements:
Source:

parsePayment()

Parse a payment.

Implements:
Source:

parsePaymentMethod()

Parse a payment method

Implements:
Source:

parseProduct(data) → {Promise.<module:types.Product>}

Takes a OCAPI Product object and parses it into a commerce-integrations Product type.

Parameters:
Name Type Description
data Object

a OCAPI Product document

Implements:
Source:
Returns:
Type
Promise.<module:types.Product>

parseSearchProducts(data) → {Promise.<module:types.ProductSearch>}

Takes a OCAPI ProductSearchResult object and parses it into a commerce-integrations ProductSearch type.

Parameters:
Name Type Description
data Object

a OCAPI ProductSearchResult document

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

parseSearchStores()

Parse a StoreSearchResult

Implements:
Source:

parseShippingMethod()

Parse a shipping method

Implements:
Source:

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

Refresh a session token, on backends that support refresh.

Implements:
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
Implements:
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

Implements:
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

Implements:
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
Implements:
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
Implements:
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>
Implements:
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
Implements:
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
Implements:
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
Implements:
Source:
Returns:
Type
Promise.<module:types.Cart>

transformSearchStoreParams()

This function will take product search request as we use them in the commerce-integrations and output them into a format usable by the specific connector (ocapi).

Source:

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
Implements:
Source:
Returns:
Type
Promise.<module:types.Cart>