Skip to content

Commit

Permalink
docs: adjust README
Browse files Browse the repository at this point in the history
  • Loading branch information
HormCodes committed Jan 6, 2022
1 parent 97142d4 commit df27ffe
Showing 1 changed file with 56 additions and 20 deletions.
76 changes: 56 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,82 @@ API Wrapper for Klarna with Crystallize helper functions

## Install

Add wrapper as dependency:

```shell
$ npm install @crystallize/node-klarna
yarn add @crystallize/node-klarna

# Or, if you prefer yarn
$ yarn add @crystallize/node-klarna
```

## Usage
Or, if you prefer NPM:

Initialize the Klarna library
```shell
npm install @crystallize/node-klarna
```

```javascript
## Usage

const { Klarna, CrystallizeKlarnaHelpers } = require('@crystallize/node-klarna');
### Klarna Library

const klarna = new Klarna({ username, password, apiEndpoint });
const crystallizeKlarnaHelpers = new CrystallizeKlarnaHelpers({
host_uri: 'http://localhost:3000',
purchase_country: 'NO',
// And other defaults
})
Initialize the Klarna library:

const orderBody = crystallizeKlarnaHelpers.getOrderBody(crystallizeLineItems); // Returns Klarna compatible order body
```javascript
const {Klarna} = require('@crystallize/node-klarna')

const klarna = new Klarna({
username: 'username provided by Klarna',
password: 'password provided by Klarna',
apiEndpoint: 'api.playground.klarna.com', // Optional, this value by default
logs: { // Optional, logs disabled by default
enabled: false,
useNodeEnv: true, // Use NODE_ENV variable, logs enabled in non 'production' environment
}
})
```

const order = klarna.checkoutV3.createOrder(orderBody);
Create Klarna order using the library:

```javascript
const response = await klarna.checkoutV3.createOrder({
// body structure follows Klarna API spec
})
```

The library mimicks the Klarna API path, making module usability more predictable.
The library has also built-in TypeScript support:

```typescript
import {OrderBody, OrderResponse} from '@crystallize/node-klarna'

Example:
const body: OrderBody = {
// ...
}

api path: `/checkout/v3/orders/:order_id` [https://developers.klarna.com/api/#checkout-api-retrieve-an-order](https://developers.klarna.com/api/#checkout-api-retrieve-an-order)
const response: OrderResponse = await klarna.checkoutV3.createOrder(body)
```

### Crystallize Klarna helpers

is usable like
Initialize Crystallize helpers:

```javascript
const {CrystallizeKlarnaHelpers} = require('@crystallize/node-klarna');

const order = await klarna.checkoutV3.retrieveOrder(orderId);
const crystallizeKlarnaHelpers = new CrystallizeKlarnaHelpers({
host_uri: 'http://localhost:3000',
purchase_country: 'NO',
logs: { // Optional, logs disabled by default
enabled: false,
useNodeEnv: true, // Use NODE_ENV variable, logs enabled in non 'production' environment
}
// And other defaults
})
```

Generate Klarna order body from Crystallize order items:

```javascript
const klarnaOrderBody = crystallizeKlarnaHelpers.getOrderBody(crystallizeLineItems);
```



0 comments on commit df27ffe

Please sign in to comment.