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

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)

Lazada-Dynamics365FO-1

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

Lazada-Dynamics365FO-2
Lazada-Dynamics365FO-3
Lazada-Dynamics365FO-4

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 ให้มาด้วย

Lazada-Dynamics365FO-5
Lazada-Dynamics365FO-6

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


Lazada-Dynamics365FO-7

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

Lazada-Dynamics365FO-8

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

Lazada-Dynamics365FO-9
Lazada-Dynamics365FO-10

ตัวอย่าง 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 

ดูผลิตภัณฑ์ที่เกี่ยวข้องได้ที่นี่ 

D365 FO Screen 3

Dynamics 365 Finance and Operations

โซลูชันบริหารจัดการทางการเงินที่ยืดหยุ่น ช่วยให้ปรับตัวตอบสนองความเปลี่ยนแปลงได้อย่างรวดเร็ว ทันต่อเหตุการณ์

Blog ล่าสุด

ข่าวล่าสุด