ณ เวลานี้ คงไม่มีใครไม่รู้จักกับ Lazada แบรนด์ E-Commerce อันดับ 1 ในประเทศไทย เว็บไซต์ที่เปิดให้บริการซื้อขายสินค้าออนไลน์ซึ่งมาแรงในขณะนี้ โดยทำให้การขายของออนไลน์นั้น ไม่ยากเหมือนในอดีตแล้ว
ซึ่งใน blog นี้จะมานำเสนอวิธีการเชื่อมต่อข้อมูลยอดขายสินค้า(คำสั่งซื้อ) จากฝั่งของผู้ขายสินค้า (Lazada Seller) โดยใช้ Microsoft Dynamics 365 for Finance and Operations
Quick Suggest
ถ้าสนใจอยากรู้เพิ่มเติม ขอแนะนำบทความ
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 แอปเพียงแค่ครั้งเดียวก็พอ
}
"Access_token": "50000601c30atpedfguLVvik87IxIsvlemSoB7701ceb156fPunYZ43GBg",
"Refresh Token": "500016000300bwa2wteaQyfwMnPxurcA0mXGhQdTt18356663CfcDTYpwoi",
"Country": "Cb",
"Refresh_expires_in": 259200,
"Account _platform": "Seller_center",
"Expires_in": 259200,
"Account": "Xxx@126.Com"
"Country_user_info":
[
{
"Country": "Sg",
"Seller_id": "1001",
"User Id": 10101
},
{
"Country": "My",
"Seller Id": "2001",
"User Id": 20101
}
]
}
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;
}
}
ก้าวเข้าสู่ Digital Business
ดูผลิตภัณฑ์ที่เกี่ยวข้องได้ที่นี่