/** * 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 */constaLazadaAPI=newLazadaAPI(appKey,appSecret,"SINGAPORE");// ORconstaccessToken="some_access_token";constaLazadaAPIWithToken=newLazadaAPI(appKey,appSecret,"SINGAPORE",accessToken);
Call API action with proper parameters
// all API action return promiseaLazadaAPI.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 firstaLazadaAPI.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
✔️
getFailureReasons
✔️
getMultipleOrderItems
✔️
getOrder
✔️
getOrderItems
✔️
getOrders
✔️
setInvoiceNumber
✔️
setStatusToCanceled
✔️
setStatusToPackedByMarketplace
✔️
setStatusToReadyToShip
✔️
Product
status
createProduct
✔️
getBrands
✔️
getCategoryAttributes
✔️
getCategoryTree
✔️
getProductItem
✔️
getProducts
✔️
getQcStatus
🚫
getResponse
✔️
migrateImage
✔️
migrateImages
✔️
removeProduct
✔️
setImages
✔️
updatePriceQuantity
✔️
updateProduct
✔️
uploadImage
🚫
Media
status
initCreateVideo
✔️
uploadBlockVideo
✔️
completeCreateVideo
✔️
Finance
status
getPayoutStatus
🚫
getTransactionDetails
🚫
Logistics
status
getShipmentProviders
✔️
Seller
status
getSeller
🚫
updateSeller
🚫
updateUser
🚫
System
status
generateAccessToken
✔️
refreshAccessToken
✔️
DataMoat
status
dataMoatBatchLog
🚫
dataMoatComputeRisk
🚫
dataMoatLogin
🚫
dataMoatOrder
🚫
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
constAPIRequest={appKey: ":require",appSecret: ":require",baseURL: ":require"// Protocol (default: https) + Gateway (location specific)HttpAction: "GET OR POST",// API specificapiPath: "action/path",// API specificaccessToken: ":optional",// API specificpayload: {}// API specific};