Class: HybrisConnector

connectors/hybris.HybrisConnector()

A connector for the Hybris API.

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

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.

getAuthentications() → {Object}

Get current authentications object, which can be used to save/restore auth state, eg. for server-side usage.

Source:
Returns:
Type
Object

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:

Hybris only supports payments by credit card attained from their cardtypes endpoint so this command will return only one payment method with the id 'CREDIT_CARD', name 'Credit Card' and all of it's valid credit card types.

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()

Parse categories.

Implements:
Source:

parseCategory(categories) → {Promise.<module:types.Category>}

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

Parameters:
Name Type Description
categories Array.<Object>

an OCAPI Category document

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

parseCouponEntry()

Parse a coupon item

Implements:
Source:

parseCustomer()

Parse a customer.

Implements:
Source:

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

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

Parameters:
Name Type Description
data Object

a OCCAPI PointOfService document

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

parseOpeningHours(hours) → {Promise.<module:types.Store.hours>}

Takes a OCCAPI WeekdayOpeningDay object and parses it into a commerce-integrations Store.hours type.

Parameters:
Name Type Description
hours Object

a OCCAPI WeekdayOpneningDay document

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

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()

Parse a product.

Implements:
Source:

parseSearchProducts()

Parse a product search result.

Implements:
Source:

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

setAuthentications(authentications)

Set the current authentications object, as returned from getAuthentications. Use to save/restore auth state, eg. for server-side usage.

Parameters:
Name Type Description
authentications Object
Source:

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:

Billing Address model : this order address needs to have a titleCode defined. The default titleCodes are: ['mr', 'ms', 'miss', 'mrs', 'dr', 'rev'] But these may change depending on your backend, please refer to your backend instance to confirm valid titleCodes.

If the billing address is set before adding a payment, the billing address will not yet be saved in the hybris instance. Instead, the billing address will be saved in the hybris instance upon setting a payment.

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:

Email can be set for a guest user but not a registered user.

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 add the payment to.

payment module:types.Payment

The payment to add.

opts Object
Implements:
Source:
Returns:

Need to set a billing address before setting a payment. Must call setCustomerInformation() to add an email before setting payment for an anonymous user. cart.paymentDetails.number will be returned as undefined and set as a masked number in cart.paymentDetails.maskedNumber.

Type
Promise.<module:types.Cart>

setShippingAddress(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:

Must call setCustomerInformation() to add an email before setting payment for a guest user.

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>

transformCartItem()

Transform a cartItem into hybris' model OrderEntryOCC.

Source:

transformOrderAddress()

Transform an orderAddress into hybris' models: billingAddress or shippingAddress

Source:

transformPayment()

Transform a payment into hybris' model paymentDetail.

Source:

transformShippingMethod()

Transform a shippingMethod into hybris' model deliveryMethod.

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>