EP 6 : เชื่อมโยงกับร้านค้าใน Lazada ด้วย Microsoft Dynamics 365 for Finance and Operations

--

ณ เวลานี้ คงไม่มีใครไม่รู้จักกับ Lazada แบรนด์ E-Commerce อันดับ 1 ในประเทศไทย เว็บไซต์ที่เปิดให้บริการซื้อขายสินค้าออนไลน์ซึ่งมาแรงในขณะนี้ โดยทำให้การขายของออนไลน์นั้น ไม่ยากเหมือนในอดีตแล้ว

ซึ่งใน blog นี้จะมานำเสนอวิธีการเชื่อมต่อข้อมูลยอดขายสินค้า(คำสั่งซื้อ) จากฝั่งของผู้ขายสินค้า (Lazada Seller) โดยใช้ Microsoft Dynamics 365 for Finance and Operations

Lazada Open Platform

API สำหรับการจัดการฝั่งผู้ขาย (seller) ให้กับนักพัฒนาภายนอก ทำให้เราสามารถพัฒนาเชื่อมต่อ Lazada เข้ากับระบบหลังบ้านที่มีอยู่เดิม หรือระบบจัดการขายอื่นที่อาจจะมีฟีเจอร์ตรงความต้องการของผู้ขายมากกว่าระบบของ Lazada เอง โดยมี SDK ที่รองรับภาษาถึง 5 ภาษาได้แก่ Python, Java, Ruby, PHP และ .NET
(ที่มา blognone)

https://open.lazada.com

Lazada Open Platform

เมื่อเราทำการ Register Account เรียบร้อย ไปที่ App Console เลือก Create App

App Console
Create App
App Overview

App Overview
Callback URL : ใช้ redirect หลังจาก request permission จาก seller แล้ว
App Key : เป็นรหัส application (ใช้ตอน request api)
App Secret : เป็นรหัสความลับ application (ใช้ตอน request api)

API Explorer : จะช่วยให้เราพัฒนาแอปได้ง่ายขึ้น โดยใช้ทดสอบรับส่งค่าข้อมูล ก่อนที่จะไปพัฒนาแอปจริงๆ ดู API ที่เราสามารถเชื่อมต่อได้ที่ API name mapping
และยังมี source code ตัวอย่างเมื่อใช้ SDK ให้ด้วยนะ (tab SDK Download)
Loan Account : เป็นการยืม user ที่เป็น Seller มาใช้งานตอน develop และมี sample data ให้มาด้วย

API Explorer
Loan Account

Seller Authorization

ขั้นตอนการขออนุญาตเข้าถึงข้อมูลผู้ขาย (Lazada Seller) สามารถดู document ได้ที่ Seller authorization introduction , ขออธิบายง่ายๆ ก็คือ
1. เราต้องส่ง URL ให้กับผู้ขายเพื่อ request permission

  • format -> https://auth.lazada.com/oauth/authorize?response_type=code&force_auth=true&redirect_uri=${app call back url}&client_id=${appkey}
  • example -> https://auth.lazada.com/oauth/authorize?response_type=code&redirect_uri=https://dynamics.microsoft.com&force_auth=true&client_id=120615

2. เมื่อ submit ระบบจะ redirect มาที่ callback url พร้อมทั้งส่งค่า authorization code มาให้

3. นำ authorization code ที่ได้ ไป get access token และ refresh token ด้วย API /auth/token/create , กล่าวคือ

  • ทุกครั้งที่เรา call api จำเป็นต้องใช้ token ในการเข้าถึงข้อมูล
  • ระบบเราจะต้องเก็บ token ล่าสุดไว้เสมอ เมื่อ token ใกล้หมดอายุ (expires_in) เราจะต้องนำ refresh_token ไป get access_token ใหม่เสมอ
  • จากขั้นตอนด้านบน ทำให้ผู้ขาย (Lazada Seller) authorize แอปเพียงแค่ครั้งเดียวก็พอ
parameters in the token

Get orders from Lazada

download SDK และนำไป add References ที่ Visual studio

ตัวอย่าง source code การเรียก API /orders/get

class LazadaController
{
str appkey = "120...";
str appSecret = "TzxoXfpwgkmUqp3iB........";
public static LazadaController construct()
{
return new LazadaController();
}
public str getOAuthToken(str _code)
{
Lazop.Api.LazopClient lazadaClient = new Lazop.Api.LazopClient("https://auth.lazada.com/rest", appkey, appSecret);
Lazop.Api.LazopRequest request = new Lazop.Api.LazopRequest("/auth/token/create");
request.AddApiParameter("code", _code);
Lazop.Api.LazopResponse response = lazadaClient.Execute(request);
str responseJson = response.Body.ToString();
str token;
// TODO: Json deserialize process
return token;
}
public str getOrders(str _token)
{
Lazop.Api.ILazopClient lazadaClient = new Lazop.Api.LazopClient("https://api.lazada.co.th/rest", appkey, appSecret);
Lazop.Api.LazopRequest request = new Lazop.Api.LazopRequest();
request.SetApiName("/orders/get");
request.SetHttpMethod("GET");
request.AddApiParameter("created_before", "2018-02-10T16:00:00+08:00");
request.AddApiParameter("created_after", "2017-02-10T09:00:00+08:00");
request.AddApiParameter("status", "shipped");
request.AddApiParameter("update_before", "2018-02-10T16:00:00+08:00");
request.AddApiParameter("sort_direction", "DESC");
request.AddApiParameter("offset", "0");
request.AddApiParameter("limit", "10");
request.AddApiParameter("update_after", "2017-02-10T09:00:00+08:00");
request.AddApiParameter("sort_by", "updated_at");
Lazop.Api.LazopResponse response = lazadaClient.Execute(request, _token);
str responseJson = response.Body.ToString();
// TODO: Json deserialize process
return responseJson;
}
}

จบ…

--

--

Teerapong Mukdapipatkul (Bee) 😄

Microsoft Dynamics 365 Developer at QUICK ERP and Co-Founder at Analytic Business Solutions linkedin.com/in/teerapong-muk