0.1.2 • Published 7 years ago

hybris-occ2-nodejs-client v0.1.2

Weekly downloads
-
License
ISC
Repository
-
Last release
7 years ago

Overview

The goal of this project is to provide a NodeJS client library to access to SAP Hybris OCC2.

Disclaimer

This development does not cover all OCC API but just the part I need for a personal project (to be able to place an order). If you want more, feel free to propose idea or to contribute. This is a personal project. SAP do not sponsor and do not provide any support.

Usage

  • Create an OAuth Access Token with the Backoffice application
  • Install the module via npm
npm install hybris-occ2-nodejs-client

Code Examples

Get stock

In the example below, we retrieve the stock of PowerShot A480.

#!/usr/bin/env node

var Hybris = require('hybris-occ2-nodejs-client');
var hybris = new Hybris();

var hostname = "localhost";
var port = 9002;
var clientId = "mobile_android";
var clientSecret = "secret";
var username = "yannick.robin@gmail.com";
var password = "hybris";

var productCode = '1934793'; //PowerShot A480

hybris.init(hostname, port, clientId, clientSecret, username, password);

hybris.product.getProduct(productCode)
.then((product) => { console.log("Stock: " + product.stock.stockLevel) })

Place an order

In this example, we add one PowerShot A480 to the cart and we place an order.

#!/usr/bin/env node

var Hybris = require('hybris-occ2-nodejs-client');
var hybris = new Hybris();

var hostname = "localhost";
var port = 9002;
var clientId = "mobile_android";
var clientSecret = "secret";
var username = "yannick.robin@gmail.com";
var password = "hybris";

var productCode = '1934793'; //PowerShot A480
var quantity = 1;
var deliveryModeId = 'standard-gross';

hybris.init(hostname, port, clientId, clientSecret, username, password);

hybris.cart.createCart('current', 'current')
.then((data) => { hybris.cart.addToCart('current', 'current', productCode, quantity)
	.then((data) => { hybris.user.getUser('current')
		.then((user) => { hybris.cart.setAddress('current', 'current', user.defaultAddress.id)
			.then((data) => { hybris.cart.setDeliveryMode('current', 'current', deliveryModeId)
				.then((data) => { hybris.user.getPaymentInfos('current')
					.then((paymentDetails) => { hybris.cart.setCreditCardPayment('current', 'current', paymentDetails.payments[0].id)
						.then((data) => { hybris.order.placeOrder(username, 'current')
						})
					})
				})
			})
		})
	})
})