@gat-solutions/ecommerce
TypeScript icon, indicating that this package has built-in type declarations

1.1.3 • Public • Published

E-commerce Integration

Introduction

Đây là một thư viện chứa các hàm để kết nối với service ecommerce của công ty GreenAgri

Installation

$ npm install @gat-solutions/ecommerce

Config environment

ECOMMERCE_SERVICE_URL=
ECOMMERCE_SERVICE_APP_CODE=
ECOMMERCE_SERVICE_APP_SECRET=

EcommerceService

Muốn kết nối được với service ecommerce của GreenAgri bạn cần phải có app-code và app-secret. Sau đó dùng hàm dưới đây để lấy access token.

...
    const { token } = await EcommerceService.generateToken();
...

Sau khi có được access token bạn cần khởi tạo EcommerceService:

...
    const ecommerceService = new EcommerceService(token);
...

GetPlatformAuthorizeUrl

Lấy đường dẫn đăng nhập của các sàn TMDT

...
    const payload = {
        platformType: PlatformType.TIKI
    };
    const { url } = await ecommerceService.getPlatformAuthorizeUrl(payload)
...

Đường dẫn trả về sẽ đưa bạn đến trang đăng nhập của sàn TMDT.

ConnectPlatform

Liên kết với một sàn TMDT

...
    const payload = {
        merchantId: "uuid"
        code: "something"
        platformType: PlatformType.TIKI
    };
    const data = await ecommerceService.connectPlatform(payload)
...
  • merchantId: Mã cửa hàng liên kết với sàn TMDT
  • code: đoạn mã trả về sau khi login thành công trên sàn

ConnectTikiInhouse

Liến kết với sàn Tiki thông qua app-inhouse (Only dev mode)

...
    const payload = {
        merchantId: "uuid"
    };
    const data = await ecommerceService.connectTikiInhouse(payload)
...
  • merchantId: Mã cửa hàng liên kết với sàn Tiki

GetAllLinkedShop

Lấy danh sách những cửa hàng đã liên kết

...
    const payload = {
        merchantId: "uuid",
        limit: 20,
        page: 1
    };
    const data = await ecommerceService.getAllLinkedShop(payload)
...

GetAllPlatformProducts

Lấy danh sách sản phẩm trên sàn TMDT

...
    const payload = {
        merchantId: "uuid",
        platformType: PlatformType.TIKI
        limit: 20,
        page: 1,
        name: "UCook"
    };
    const data = await ecommerceService.getAllPlatformProducts(payload)
...

LinkProduct

Liên kết sản phẩm trên cửa hàng với sản phẩm trên sàn TMDT

...
    const payload = {
        merchantId: "uuid",
        data: [
            {
                merchantProductId: "uuid",
                platformProductId: "uuid",
                platformType: PlatformType.TIKI
            }
        ]
    };
    const data = await ecommerceService.linkProduct(payload)
...
  • merchantProductId: Mã sản phẩm trên cửa hàng
  • platformProductId: Mã sản phẩm trên sàn

GetAllLinkedProducts

Lấy danh sách các sản phẩm đã liên kết

...
    const payload = {
        merchantId: "uuid",
        platformType: PlatformType.TIKI
        limit: 20,
        page: 1,
    };
    const data = await ecommerceService.getAllLinkedProducts(payload)
...

GraphQL

Schema

import { schema } from "@gat-solutions/ecommerce";

export default schema;

Resolver

import {
  GetAllLinkedProductArgs,
  GetAllPlatformProductArgs,
  GetAllLinkedPlatformArgs,
  LinkProductArgs,
  ConnectPlatformArgs,
  Mutation,
  Query,
  parseToResolver,
} from "@gat-solutions/ecommerce";

class EcommerceQuery implements Query {
  async getPlatformAuthorizeUrl(root: any, args: any, context: Context) {
    ...
  }
  async getAllLinkedPlatform(root: any, args: GetAllLinkedPlatformArgs, context: Context) {
    ...
  }
  async getAllPlatformProduct(root: any, args: GetAllPlatformProductArgs, context: Context) {
    ...
  }
  async getAllLinkedProduct(root: any, args: GetAllLinkedProductArgs, context: any) {
    ...
  }
}

class EcommerceMutation implements Mutation {
  async connectPlatform(root: any, args: ConnectPlatformArgs, context: Context) {
    ...
  }
  async connectTikiInhouse(root: any, args: any, context: Context) {
    ...
  }
  async linkProduct(root: any, args: LinkProductArgs, context: Context) {
    ...
  }
}

const ecommerceQuery = new EcommerceQuery();
const ecommerceMutation = new EcommerceMutation();

export default parseToResolver(ecommerceQuery, ecommerceMutation);

Readme

Keywords

none

Package Sidebar

Install

npm i @gat-solutions/ecommerce

Weekly Downloads

21

Version

1.1.3

License

ISC

Unpacked Size

48.4 kB

Total Files

48

Last publish

Collaborators

  • huygiale
  • dotranminhchu
  • duyanhit
  • thaivlinh