Nodejs wrapper for Lazada Open Platform API
![Build Status](https://travis-ci.org/branch8/lazada-open-platform-sdk.svg?branch=master)
| ! WIP project
Usage
-
Install sdk
[~/project/dir] $ npm install lazada-open-platform-sdk
-
Require LazadaAPI
class
import LazadaAPI from 'lazada-open-platform-sdk'
const LazadaAPI = require('lazada-open-platform-sdk')
-
Instantiate a LazadaAPI Object
const aLazadaAPI = new LazadaAPI(appKey, appSecret, 'SINGAPORE')
const accessToken = 'some_access_token'
const aLazadaAPIWithToken = new LazadaAPI(appKey, appSecret, 'SINGAPORE', accessToken)
-
Call API action with proper parameters
aLazadaAPI
.generateAccessToken({ code: 'auth_code' })
.then(response => {
const { access_token } = response
})
aLazadaAPI.accessToken = 'some_access_token'
aLazadaAPI
.getShipmentProviders()
.then(response => {
})
-
For available API actions, check the support table. For proper API request parameters, check Lazada's offcial documentation and source code located in src/LazadaClient/<namespace>
API Support
Order | status |
---|
getDocument | :heavy_check_mark: |
getFailureReasons | :heavy_check_mark: |
getMultipleOrderItems | :heavy_check_mark: |
getOrder | :heavy_check_mark: |
getOrderItems | :heavy_check_mark: |
getOrders | :heavy_check_mark: |
setInvoiceNumber | :heavy_check_mark: |
setStatusToCanceled | :heavy_check_mark: |
setStatusToPackedByMarketplace | :heavy_check_mark: |
setStatusToReadyToShip | :heavy_check_mark: |
Product | status |
---|
createProduct | :heavy_check_mark: |
getBrands | :heavy_check_mark: |
getCategoryAttributes | :heavy_check_mark: |
getCategoryTree | :heavy_check_mark: |
getProducts | :heavy_check_mark: |
getQcStatus | :no_entry_sign: |
getResponse | :no_entry_sign: |
migrateImage | :heavy_check_mark: |
migrateImages | :no_entry_sign: |
removeProduct | :heavy_check_mark: |
setImages | :heavy_check_mark: |
updatePriceQuantity | :heavy_check_mark: |
updateProduct | :heavy_check_mark: |
uploadImage | :no_entry_sign: |
Finance | status |
---|
getPayoutStatus | :no_entry_sign: |
getTransactionDetails | :no_entry_sign: |
Logistics | status |
---|
getShipmentProviders | :heavy_check_mark: |
Seller | status |
---|
getSeller | :no_entry_sign: |
updateSeller | :no_entry_sign: |
updateUser | :no_entry_sign: |
System | status |
---|
generateAccessToken | :heavy_check_mark: |
refreshAccessToken | :heavy_check_mark: |
DataMoat | status |
---|
dataMoatBatchLog | :no_entry_sign: |
dataMoatComputeRisk | :no_entry_sign: |
dataMoatLogin | :no_entry_sign: |
dataMoatOrder | :no_entry_sign: |
Development
Tools
- node - runtime
- babel - js transpiler
- flow - type checker
- jest - test runner
- eslint - linter
- vscode - recommended text editor
Convention
- sdk variables:
camelCase
- api variables:
snake_case
or PascalCase
File structure
src/
├── LazadaAPI // LazadaAPI: top level controller class
│ └── index.js
├── LazadaClient // LazadaClient: namespace seperated API actions
│ ├── index.js
│ ├── logistics.js
│ ├── order.js
│ ├── product.js
│ └── system.js
├── LazadaRequest // LazadaRequest: responsible for network request
│ ├── index.js
│ └── signature // logic for signing API request
│ └── index.js
├── __tests__ // all tests located here
└── index.js // a.k.a. main.c
Design
const APIRequest = {
appKey: ":require",
appSecret: ":require",
baseURL: ":require"
HttpAction: "GET OR POST",
apiPath: "action/path",
accessToken: ":optional",
payload: {}
};
Reference
Lazada API Doc
https://open.lazada.com/doc/api.htm