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)
เมื่อเราทำการ Register Account เรียบร้อย ไปที่ App Console เลือก Create App
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 ให้มาด้วย
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 แอปเพียงแค่ครั้งเดียวก็พอ
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;
}
}
จบ…