LINE SHOPPING API เปิดตัวแบบ Public Open API! พร้อมกับอัพเดทของใหม่เพื่อให้ร้านค้าสะดวกขึ้นไปอีก!
เมื่อกลางปี 2022 LINE SHOPPING API ได้มีการเปิดให้นักพัฒนาบางส่วนได้ทดลองใช้งานเพื่อเชี่อมต่อข้อมูลจากระบบ LINE SHOPPING ไปยังระบบอื่นๆแบบอัตโนมัติผ่าน API ครบรอบ 1 ปีพอดีวันนี้ LINE SHOPPING พร้อมแล้วที่จะ Public Open API เพื่อให้นักพัฒนาทุกคนสามารถเริ่มใช้งาน API ได้ตั้งแต่แรกครับผม! และยังไม่พอมีการอัพเดท API ใหม่ๆออกมาอีกหลายเส้นเพื่อช่วยให้ร้านค้าจัดการหน้าร้านได้สะดวกขึ้นไปอีกจะมีอะไรบ้าง มาดูกันฮะ!
สำหรับคนที่ยังไม่เคยเล่น LINE SHOPPING API มาก่อน ผมแนะนำให้อ่านบทความในลิงค์ด้านบนก่อนสักนิดครับ จะได้รู้ว่ามี Use cases อะไรบ้าง หรือวิธีการเริ่มต้นใช้งานจะไปเอา API Key จากไหน เชื่อม Webhook ยังไง ในบทความบอกไว้แบบละเอียดแล้วฮะ
LINE SHOPPING API มีอะไรใหม่บ้าง?
ขอพูดถึงเส้น API เดิมก่อนนะครับ ใน LINE SHOPPING API เราจะแบ่งออกเป็น 4 Categories ใหญ่ๆได้แก่
- Product API จัดการข้อมูลเกี่ยวกับสินค้าภายในร้าน
- Order Webhook ยิงข้อมูล Order ไประบบหลังบ้าน
- Order API เข้าถึงข้อมูลเกี่ยวกับ Order ที่เกิดขึ้น
- Inventory API จัดการบริหาร Stock สินค้า
API ที่เพิ่มขึ้นมาใหม่ผมเปรียบเทียบให้ดูตามตารางด้านบนนี้แล้วครับผม สั้นๆคือ
- Product API ก่อนหน้านี้ดึงข้อมูลสินค้าดูได้อย่างเดียว แต่ตอนนี้สามารถ Create/Update/Delete สินค้าได้แบบละเอียด (เพิ่มมา 8 API แน่ะ!)
- Order Webhook ก่อนหน้านี้จะมี Webhook ยิงมาหลังบ้านแค่ Event เดียวกรณีลูกค้าชำระเงิน แต่ตอนนี้จะเพิ่มมาอีก 2 Event! ลูกค้าสั่งสินค้ารอชำระเงิน กับลูกค้ายกเลิกคำสั่งซื้อ
ถัดไปเราไปลงรายละเอียดว่าแต่ละตัวที่เพิ่มขึ้นมาทำอะไรได้บ้างครับ
Getting Started
วิธีการใช้งานก็เหมือนเดิมเพิ่มเติมคือพอเป็น Public API แล้วเราสามารถไปสร้าง API Key ที่เป็นกุญแจเพื่อเข้าใช้งาน API ได้ที่ oaplus.line.biz > Channel ที่ต้องการ > Settings > API Keys > กดปุ่ม Generate ครับ อ้อ ผมแนะนำให้เพิ่ม Parameter อีกตัวไว้ใน Header ชื่อว่า User-Agent
และใส่ Value เป็นชื่อบริษัทหรือชื่อบริการเราก็ได้ครับ เพื่อที่เวลาทีม Support เค้าช่วยแก้ปัญหาให้เราได้รวดเร็วยิ่งขึ้นฮะ
[New] Product API
Create Product— สร้างสินค้าใหม่
POST https://developers-oaplus.line.biz/myshop/v1/products
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Request Body
brand: แบรนด์ของสินค้า
categoryId: เลข category id เช่น เลข 1 คือ Health and Beauty สุขภาพและความงาม เป็นต้น สามารถดูได้จาก reference นี้
code: โค้ดของสินค้า
description: คำอธิบายของสินค้า (สามารถใส่เป็น format ของ HTML ได้)
imageUrls: urls รูปสินค้า (รับเป็น Array of strings)
instantDiscount: ส่วนลดของสินค้าที่จะแสดงทันทีที่สินค้าโชว์อยู่ในหน้าร้าน
name: ชื่อของสินค้า
variantOptions: Object ของ Variant option ตัวเลือกของสินค้าตาม Spec โดยต้องระบุ name คู่่ไปกับ value ด้วย เช่น name:Color value:Red,Blue,Green
variants: Array ของ Variants ตาม Spec เช่น price ราคา, weight นำ้หนัก, sku, onHandNumber จำนวนสินค้า เป็นต้น
Note: ในการสร้าง Product จะมีวิธีสร้างอยู่ 3 แบบคือ
- ไม่มี Variant (หากตอนที่เราสร้างไม่มี Variant ก็จะไม่สามารถเพิ่ม Variant ได้ครับ)
- มี 1 Variant
- มี 2 Variants ซึ่งวิธีการส่ง Parameter ของ
variantOptions
และvariants
สามารถดูตามรูปตัวอย่างด้านล่างนี้ได้ครับ
Response ที่จะได้กลับมาในกรณี 201 Created จะได้ข้อมูลตามที่เราส่งไปสร้างสินค้า เช่น brand, code, name, description, imageUrls เป็นต้น ผมขอหยิบบางส่วนที่สำคัญๆเพิ่มเติมขึ้นมาให้ดูครับ
- id: ID ของสินค้า (ให้เราไว้ใช้ตอน Update/Delete)
- hasOnlyDefaultVariant: ถ้าสินค้าไม่มีตัวเลือกย่อยจะมีค่า
true
ส่งกลับมา - isDisplay: สินค้ากำลังถูกแสดงอยู่ในหน้าร้านอยู่หรือไม่ โดย default ถ้าสร้างใหม่จะเป็นค่า
false
ส่งกลับมา
Update Product Detail — แก้ไขข้อมูลสินค้า
PATCH https://developers-oaplus.line.biz/myshop/v1/products/{id}
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Path Params
id: ใส่ Product id ของสินค้าที่ต้องการจะแก้ไขข้อมูล
Request Body
brand: แบรนด์ของสินค้า
categoryId: เลข category id เช่น เลข 1 คือ Health and Beauty สุขภาพและความงาม เป็นต้น สามารถดูได้จาก reference นี้
code: โค้ดของสินค้า
description: คำอธิบายของสินค้า (สามารถใส่เป็น format ของ HTML ได้)
imageUrls: urls รูปสินค้า (รับเป็น Array of strings)
name: ชื่อของสินค้า
Response ที่จะได้กลับมาในกรณี 200 OK จะได้เหมือนกับตัว API Create Product ครับ
Update Product price — แก้ไขราคาและ instantDiscount สำหรับสินค้า (แต่จะไม่สามารถแก้ไขในช่วงที่มีโปรโมชั่นได้)
PATCH https://developers-oaplus.line.biz/myshop/v1/products/{id}/prices
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Path Params
id: ใส่ Product id ของสินค้าที่ต้องการจะแก้ไขข้อมูล
Request Body
instantDiscount: ส่วนลดของสินค้าที่จะแสดงทันทีที่สินค้าโชว์อยู่ในหน้าร้าน
variants: Array ของ Variants ตาม Spec ให้ใส่ price ราคาที่ต้องการ
Response ที่จะได้กลับมาในกรณี 200 OK จะได้เหมือนกับตัว API Create Product ครับ
Update Product Display Status — แก้ไขสถานะการแสดงผลของสินค้า
POST https://developers-oaplus.line.biz/myshop/v1/products/{id}/display-status/{status}
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Path Params
id: ใส่ Product id ของสินค้าที่ต้องการจะแก้ไขข้อมูล
status: สถานะการแสดงผลของสินค้า ให้ระบุ onsale หรือ hide
Response ที่จะได้กลับมาในกรณี 200 OK จะได้เหมือนกับตัว API Create Product ครับ
Delete Product — ลบสินค้า
DELETE https://developers-oaplus.line.biz/myshop/v1/products/{id}
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Path Params
id: ใส่ Product id ของสินค้าที่ต้องการจะลบ
Response ที่จะได้กลับมาในกรณี 204 No Content แต่จะไม่มี JSON object กลับมาด้วยครับ
Create Product Variant — สร้างตัวเลือกย่อยของสินค้า
POST https://developers-oaplus.line.biz/myshop/v1/products/{id}/variants
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Path Params
id: ใส่ Product id ของสินค้าที่ต้องการ
Request Body
variantOptions: Object ของ Varint option ตัวเลือกของสินค้าตาม Spec โดยต้องระบุ name คู่่ไปกับ value ด้วย เช่น name:Color data.value:Red,Blue,Green
variants: Array ของ Variants ตาม Spec เช่น price ราคา, weight นำ้หนัก, sku, onHandNumber จำนวนสินค้า เป็นต้น
Response ที่จะได้กลับมาในกรณี 200 Success จะได้เหมือนกับตัว API Create Product ครับ
Update Product Variant — แก้ไขรายละเอียดตัวเลือกของสินค้า (สำหรับทั้งที่มีและไม่มีตัวเลือกย่อย)
PATCH https://developers-oaplus.line.biz/myshop/v1/products/{id}/variant
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Path Params
id: ใส่ Product id ของสินค้าที่ต้องการ
Request Body
barcode: บาร์โค้ดของตัวเลือกสินค้า (ใส่เป็น string)
id: Variant id (ที่ได้จาก Response ตอนสร้าง Product)
imageUrl: Url ของรูปตัวเลือกสินค้า
onHandNumber: จำนวนตัวเลือกสินค้าในคลัง (รวมสินค้าที่อยู่ในสถานะ Reserved และ Ready ด้วย)
price: ราคาของตัวเลือกสินค้า
sku: SKU ของตัวเลือกสินค้า
weight: น้ำหนักของตัวเลือกสินค้า
Response ที่จะได้กลับมาในกรณี 200 OK จะได้เหมือนกับตัว API Create Product ครับ
Delete Product Variant — ลบตัวเลือกย่อยของสินค้า
POST https://developers-oaplus.line.biz/myshop/v1/products/{id}/delete-variant-option
Authorization: API Key (ตั้งชื่อ Key ว่า X-API-KEY)
Path Params
id: ใส่ Product id ของสินค้าที่ต้องการจะลบ
Request Body
name: ชื่อของตัวเลือกสินค้าที่ต้องการจะลบ เช่น Color
value: value ของตัวเลือกสินค้าที่ต้องการจะลบ เช่น Red,Blue,Green
Response ที่จะได้กลับมาในกรณี 204 No Content แต่จะไม่มี JSON object กลับมาด้วยครับ
[New] Order Webhook
สำหรับขั้นตอนการเปิด Webhook เหมือนเดิมเลยครับ ไปตั้งค่าเปิด Webhook ที่ oaplus.line.biz > Channel ที่ต้องการ > E-Commerce > Shop settings > Open API > กดปุ่ม Create Webhook > กรอกข้อมูลต่างๆลงไป (ให้เราไปตั้ง Server ของเราเพื่อรอรับ Webhook และเอามากรอกใน Webhook URL) > เลือก Events ที่เราต้องการ > กดปุ่ม Save
สำหรับ Event ที่เพิ่มขึ้นมามีอยู่ 2 Event ตามนี้ครับ
- Order (Pending payment) — เมื่อลูกค้าสั่งซื้อสินค้าเข้ามา แต่ยังรอการชำระเงิน
- Order (Canceled) — ลูกค้ายกเลิกคำสั่งซื้อ
Note: ถ้านักพัฒนาท่านไหนกดไปที่ Shop settings แล้วระบบ Redirect ไปที่หน้า Getting started ให้ทำการกรอกข้อมูลให้ครบถ้วนก่อน ถึงจะสามารถใช้งานได้ครับ
[Bonus API] Order Messaging API (by request)
ถ้าใครอ่านถึงตรงนี้ผมมีของแถมพิเศษใส่ไข่ให้ครับ 555+ สำหรับร้านค้าหรือ Platform ไหนที่อยากจะขายสินค้าที่เป็น Digital เช่น ขายคูปอง (Flow คล้ายๆของ LINE MAN คือลูกค้าซื้อคูปองผ่านระบบ LINE SHOPPING และระบบทำการยิงข้อความคูปองผ่าน OA ไปให้ลูกค้า) ก็สามารถทำได้ครับ ถ้าใครสนใจส่งรายละเอียดคำขอพร้อมแจ้ง Shop URL และ Use case การขายมาที่ dl_lineshoppingapi@linecorp.com ได้เลยครัช
สรุป
อัพเดทรอบนี้มี API ใหม่หลายเส้นเกี่ยวกับ Product ทั้งสามารถสร้างและแก้ไขข้อมูลได้แล้ว น่าจะช่วยให้ร้านค้าจัดการสินค้าได้ง่ายขึ้น รวมไปถึงเมื่อมี Order เกิดขึ้นก็จะมี Webhook ยิงไปแจ้งเตือนหลังบ้านเราด้วย ดีย์งามจริงๆ ถ้าใครได้ลองเล่นแล้วมีติดปัญหาต่างๆสามารถแจ้งได้ตาม Contact ด้านล่างได้เลยครับผม
FAQ Support Case
Q: ถ้าใช้งาน API แล้วเกิดปัญหา สามารถติดต่อได้ที่ไหนบ้าง?
A: แจ้งปัญหาพร้อมรายละเอียดได้ที่แบบฟอร์มนี้, LINE Official Account @linemyshop หรือ อีเมล dl_lineshoppingapi@linecorp.com
Q: มี Platform ของตัวเองอยู่แล้ว อยากจะเชื่อมต่อกับ LINE SHOPPING API ในลักษณะ 3rd Party Partner ต้องทำยังไง?
A: ลงทะเบียนได้ที่แบบฟอร์มนี้
Q: LINE SHOPPING API Reference ดูได้จากไหน?
A: https://oaplus.line.biz/information/api-doc
Q: มีข้อแนะนำ/Development Guidelines ในการใช้ LINE SHOPPING API ไหม?
A: สามารถดูรายละเอียดเพิ่มเติมได้ที่นี่ครับ