Class: SalesforceConnector

connectors/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>

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.

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>

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

Create a new order using a given cart. This command will trigger the appropriate OCAPI order authorization hooks. If orders placed through this command aren't progressing from the created status, it's possible that your API hooks haven't been set up. Please consult your Saleforce professional.

Parameters:
Name Type Description
cart module:types.Cart

The customer's cart.

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

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>

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

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

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

.

Type
Promise.<module:types.Customer>

logout() → {Promise.<undefined>}

Log a customer 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:

parseCouponEntry()

Parse a coupon item

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>

parseOrder()

Parse an order.

Implements:
Source:

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>

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

Register a new customer account and login.

Parameters:
Name Type Description
data module:types/CustomerRegistration
Source:
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>

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.

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>