shipxanh-oalazada
v1.0.5
Published
Lazada Open Platform SDK for Node.js
Downloads
128
Readme
Nodejs wrapper for Lazada Open Platform API
| ! WIP project
Usage
Install sdk
[~/project/dir] $ npm install lazada-open-platform-sdk
Require
LazadaAPI
classimport LazadaAPI from "lazada-open-platform-sdk"; // OR const LazadaAPI = require("lazada-open-platform-sdk");
Instantiate a LazadaAPI Object
/** * LazadaAPI class constructor * @param {string} appKey * @param {string} appSecret * @param {Venture} countryCode @ref: 'src/LazadaClient/constants.js' * countryCode should be one of the following * | 'SINGAPORE' * | 'THAILAND' * | 'MALAYSIA' * | 'VIETNAM' * | 'PHILIPPINES' * | 'INDONESIA' * @param {string?} accessToken require for some API */ const aLazadaAPI = new LazadaAPI(appKey, appSecret, "SINGAPORE"); // OR const accessToken = "some_access_token"; const aLazadaAPIWithToken = new LazadaAPI( appKey, appSecret, "SINGAPORE", accessToken );
Call API action with proper parameters
// all API action return promise aLazadaAPI.generateAccessToken({ code: "auth_code" }).then((response) => { const { access_token } = response; // JSON data from Lazada's API }); // for API action that require authorization, you must set the accessToken first aLazadaAPI.accessToken = "some_access_token"; aLazadaAPI.getShipmentProviders().then((response) => { // JSON data from Lazada's API });
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: | | getProductItem | :heavy_check_mark: | | getProducts | :heavy_check_mark: | | getQcStatus | :no_entry_sign: | | getResponse | :heavy_check_mark: | | migrateImage | :heavy_check_mark: | | migrateImages | :heavy_check_mark: | | removeProduct | :heavy_check_mark: | | setImages | :heavy_check_mark: | | updatePriceQuantity | :heavy_check_mark: | | updateProduct | :heavy_check_mark: | | uploadImage | :no_entry_sign: |
| Media | status | | ------------------- | ------------------ | | initCreateVideo | :heavy_check_mark: | | uploadBlockVideo | :heavy_check_mark: | | completeCreateVideo | :heavy_check_mark: |
| 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
orPascalCase
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" // Protocol (default: https) + Gateway (location specific)
HttpAction: "GET OR POST", // API specific
apiPath: "action/path", // API specific
accessToken: ":optional", // API specific
payload: {} // API specific
};
Reference
Lazada API Doc
https://open.lazada.com/doc/api.htm