Noticeably Playful Monkeys

    lazada-open-platform-sdk

    2.0.0-0 • Public • Published

    Nodejs wrapper for Lazada Open Platform API

    Build Status

    | ! WIP project

    Usage

    1. Install sdk

      [~/project/dir] $ npm install lazada-open-platform-sdk
    2. Require LazadaAPI class

      import LazadaAPI from 'lazada-open-platform-sdk'
      // OR
      const LazadaAPI = require('lazada-open-platform-sdk')
    3. 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)
    4. 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
        })
    5. 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 ✔️
    getProducts ✔️
    getQcStatus 🚫
    getResponse 🚫
    migrateImage ✔️
    migrateImages 🚫
    removeProduct ✔️
    setImages ✔️
    updatePriceQuantity ✔️
    updateProduct ✔️
    uploadImage 🚫

    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

    1. sdk variables: camelCase
    2. 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" // 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

    Install

    npm i lazada-open-platform-sdk

    DownloadsWeekly Downloads

    817

    Version

    2.0.0-0

    License

    MIT

    Unpacked Size

    212 kB

    Total Files

    20

    Last publish

    Collaborators

    • conradlo