- read

มาลองเล่น Line Shopping API กัน และลองคิด Use Case ที่จะเกิดขึ้นเล่นๆ

ธำรงค์ ไชยวงค์ 90

Line Shopping หรือ Line Myshop จริงๆคืออันเดียวกันแหละ มันคือ Ecommerce Platform ที่พัฒนาโดย Line ซึ่งเป็นระบบหลังบ้านที่เชื่อมกับ Line OA แล้วคำถามทำไมถึงไม่ใช้ Shoppee หรือ Lazada มองในมุมของผมคำตอบก็คือ เพิ่มช่องทางการขาย และทำระบบ CRM ผ่าน Line OA มันสามารถเอาไปต่อยอดได้อีกมาก เช่นถ้าเราทำ Line Liff เราก็สามารถทำ Liff ระบบสมัครสมาชิก ให้กรอกเบอร์ อีเมล ต่างๆเพื่อไป Map กับ Order ว่าคนคนนี้คนที่ซื้อของที่อยู่บน Line OA ของเราเราก็สามารถส่งข้อความ Personalizeได้แล้ว มาลองดูกันเลยดีกว่าครับว่า ณ ตอนนี้ Line Shopping มี API อะไรให้เราลองเล่นบ้าง

อันดับแรกเลยใครที่มี Line OA อยู่แล้วก็ทำการเปิด Line Myshop ผ่านช่องทางนี้ได้เลย ทีนี่

กดเปิดร้านก็จะมี Line OA มากมายที่เราสร้างไว้เราก็ทำการเปิดใช้งาน

ก็จะได้หน้าตาออกมาประมาณนี้แต่เราจะยังไม่สามารถใช้ API ได้นะเราต้องยื่นเรื่องไปขอเปิดการใช้ API ก่อน กดที่นี่ เพื่อทำการส่งเรื่องไป

กดไปมันก็จะให้เราใส่ชื่อร้าน + กับ URL ของ Shop เราก่อน ซึ่งต้องเพิ่มสินค้าเข้าไปก่อน

หลังจากส่งเรื่องไปมันก็จะบอกจะพิจารณาทุกวันศุกร์ ผมก็ไม่แน่ใจว่าจริงๆกี่วันเพราะผมเรื่องไปวันพุธ แต่วันศุกร์ที่จะถึงผมไม่ได้นะ ผมได้ศุกร์ถัดไปเลย ซึ่งถ้าจะพัฒนาเป็น platform สำหรับตรงนี้เลยผมยังมองว่า brand ที่เราจะเอาเข้ามาก็จะต้องรอหน่อยเช่นอาจใส่ว่า รอ 7–14 วัน ประมาณนี้ ซึ่งอนาคตอาจจะเร็วกว่านี้ก็ได้อยู่ที่ Line เป็นหลักเลยครับ

ซึ่งหลังจากเรื่องผ่านแล้วเราจะเห็นปุ่มตรงอยู่ที่ menu ของเรา

จากนั้นก็มาสร้าง API Key ที่เราจะนำเอาไปใช้ และเราก็เข้าไปดู Doc มันว่ามีอะไรบ้างจาก ที่นี่

ก็จะเห็นว่ามี Menus อะไรบ้าง ซึ่งผมจะแตกย่อยๆออกมาตามนี้

อย่าง Menu Product ก็จะเห็นเลยว่ามีแต่ Get All อนาคตอาจจะมีสร้างก็ได้แต่ตอนนี้ต้องสร้างบน Line Myshop เป็นหลักก่อน

ซึ่งผมก็ยิงผ่าน Postman GET ผ่าน URL
https://developers-oaplus.line.biz/myshop/v1/products
และ Set Headers เป็น X-API-KEY ตามด้วย API Key เรา เราก็จะได้ Product ทั้งหมดออกมาที่เราสร้าง Products บน Line Myshop ซึ่งถ้าเรามี Sale Page หรือ Ecommerce เป็นของตัวเองเราสามารถขายของ หลายช่องทางโดยไปเซทที่เดียวบน Line Myshop ได้เลย

ส่วน Inventory ก็จะมี 3 ส่วน

Adjust Inventory อันนี้ตรงๆเลยปรับจำนวนสินค้า เช่นสมมุติเราทำ CMS สำหรับปรับจำนวนสินค้า ถามว่าแล้วทำไมไม่ปรับบน Line Myshop ยกตัวอย่าง สมมุติเราขายผ่านหลายช่องทาง แล้วเราพัฒนา Platform แล้วมีแอดมินหลายคน แต่เราไม่อยากให้เข้าไปเป็น Admin บน Line OA ของลูกค้าตรงนี้ก็สามารถมาช่วยเราได้เยอะเลย

Decrease Inventory ก็คือการลดจำนวนสินค้า ยกตัวอย่างเช่น สมมุติเรามี Sale Page เวลามีการซื้อขายผ่าน Sale Page เราก็สามารถลดจำนวนสินค้าได้เลย แต่อาจจะต้องออกแบบระบบ Orders ให้รองรับจากการขายหลายช่องทาง

Increase Invemtory ก็คือการเพิ่มจำนวนสินค้า ยกตัวอย่างเช่น เหมือนเดิมมี Sale Page 55555+ แล้วเราเวลาขายได้ไม่ได้เราหักจำนวนสินค้าไว้ก่อน สมมุติ Order นั้นไม่จ่ายเงิน 1 เดือนเราจะถือว่าเขา Abadon Cart แล้วเราก็เอามาเพิ่มจำนวนสินค้า หรือ สินค้านั้นขายดีมากๆคือแบบคนกดซื้อ 1000 คนแต่สินค้ามี 100 ชิ้นเราซึ่งไม่ถึงนาทีสินค้าหมดแต่คนไม่จ่ายอยู่ 50 คน ภายใน 10 นาทีเราอาจจะถือว่าเป็น Abadon Cart แล้ว Increase จำนวนสินค้านั้นคนอื่นที่พร้อมซื้อก็จะซื้อสินค้าชิ้นนั้นต่อได้หลังจากผ่านไป 10 นาที

ส่วน Order ก็มีอยู่ 5 Menus ณ ตอนนี้

Get All Orders อันนี้ Get สินค้ามาตรงๆเลยถ้าเราทำระบบของตัวเองอาจจะได้ใช้แค่ครั้งเดียวคือ Dump ข้อมูลลง DB เราเพราะหลังจากนั้นมันจะมีส่วนของ Webhook ที่ทาง Line จะส่ง Order เข้ามาหา Webhook เรา แต่อาจจะไม่ได้ใช้แค่ครั้งเดียวเช่น กรณี Server เราพังส่งมาไม่ถึง หรือ Server Line ตรงส่วนนั้นพังไม่ได้ส่งมาก็อาจจะมีการเช็ค Orders ใน DB เราว่า rows ที่เป็นสินค้าซื้อผ่าน Line เท่ากันไหมกับของ Line ไม่เท่าก็ต้องทำให้มันเท่า

Order Detail ตรงส่วนนี้ก็คือตามชื่อเลย เราอาจจะมีการเขียนเช็คก็ได้ว่าตรงไหม บางอันที่ DB เราเพิ่ม Schema มาเองก็ปล่อยไว้แต่ Schema ที่เราเอามาจาก Line ที่ตรงกับ DB เราก็อาจจะมีการ Update ถังเมื่อมีการ Get ดู Detail สินค้าที่ถูกซื้อผ่าน Line ก็ได้เพราะอาจจะเกิด Case แบบด้านบน Server ล่ม

Mark as paid (COD) อันนี้ก็เป็นการไป update สินค้านั้นว่าเป็นเก็บเงินปลายทางอันนี้คืออาจจะขายผ่าน Line Myshop ตรงๆ แต่ไม่อยากให้ให้Adminหรือคนนอกมาเป็น Admin บน Line OA เราก็ทำ หลังบ้านมาให้ใช้

Mark as ship คือบอกว่าจัดส่งแล้วนะและยังสามารถแนบ trackingNumber ไปด้วย ยกตัวอย่างเช่น เราต่อกับ Platform ที่เป็น Shipping โดยเฉพาะแล้วเรายิง API ไปหาเขาแล้วเราก็เอาเลข Shipping มา Update ได้เลยซึ่งเราก็ต้อง Update ทั้ง DB เราและ Order บน Line ซึ่ง Platform Shipping ส่วนใหญ่ต้องใส่ทั้ง กว้าง ยาว สูง ซึ่ง Line จะมีแต่น้ำหนัก Admin ที่ทำหน้าที่บน Platform หลังบ้านก็ต้องกรอก กว้าง ยาว สูง ของกล่องส่ง ก่อนจะเรียก API แต่เราอาจจะมีตั้งค่าตั้งแต่ Product ก็ได้นะได้หมด

Update tracking number อันนี้ก็กรณีเราใส่เลข tracking ผิด หรือจะเปลี่ยนเลข tracking

ก็ส่วนอธิบาย API ต่างๆก็จบไปแล้วต่อมา มาต่อในส่วนของ Webhook ดีกว่าครับอันนี้อาจจะต้องลง Code ให้เห็นภาพหน่อยครับ โดยผมจะใช้ Golang มาทำ Webhook เสริมนิดหน่อยทำไมถึงเลือก Golang Package มันเล็กครับเหมาะกับทำ Microservices มากๆ

อันนี้เป็น Code ที่ผมจะเอามาดูค่าบน Webhook ว่ามีค่าอะไรเข้ามาบ้างเฉยๆนะครับ

จะเห็นว่าผมสร้าง Webhook ตัวนี้เป็น Post และดู Log เฉยๆ

ผมจะใช้ ngrok มาช่วยเพื่อให้ local ผมออกสู่ภายนอกได้ โดยที่ผมจะ run go ที่ Port 8080

เมื่อเราเตรียมเส้น API เราเสร็จแล้ว จากนั้นผมก็จะมาติดตั้ง webhook เข้ามาตามภาพได้เลย

จากนั้นก็ใส่ชื่อกับ Webhook ให้เรียบร้อยก็จะสร้างเสร็จดังภาพ หลังจากนั้นลองซื้อสินค้าจากร้านค้าเราดูครับ

ลองสั่งซื้อสินค้าดูก็และสถานะ Order เป็น ready to ship เท่านั้น ถึงจะมีการส่งเข้า webhook ของเรา เช่น สั่งซื้อแล้ว admin ทำการตรวจสอบแล้วถึงจะเป็น ready to ship หรือๆ COD และ Rabbit Line Pay จะเป็น ready to ship อัตโนมัติเลย

และยังมี Log ให้เราดูได้ด้วยบน webhook ที่เราสร้างบน Line Myshop

ถ้าใครอยากให้ webhook security ก็เอา secret ตรงนี้ไปดักผ่าน code เราได้เพราะทุกการส่ง Line จะแนบ headers x-myshop-signature มาทุกครั้ง

ก็มาดักตรงนี้ได้ครับถ้ามาไม่ถูกต้องจะได้ไม่ต้องให้มันทำอะไรต่อ Link ที่จะเอาไปดูต่อ กดตรงนี้ได้เลย

สรุปประโยชน์จาก webhook ในมุมของผมเลยนะเราสามารถเอา order ที่ไหลเข้ามา มาให้แอดมินจัดการต่อได้เลยเช่นพร้อมส่ง นำ order นั้นเรียกกับ Platform Shippop ต่อแล้วทำการ update เลข tracking ได้เลย เพราะจะได้ให้ขนส่งมารับถึงบ้านหรือไปส่งถึงที่ก็ได้แล้วแต่ว่าเป็น pickup หรือ drop off และอีกประเด็นใหญ่ๆเลย เราสามารถไป map กับ user ที่เราให้เขาลงทะเบียนผ่านช่องทางต่างๆได้ ถ้าเก็บผ่าน Line Liff ยิ่งทำ Personalizeได้อีกเพราะ Line มัน Push Message ได้และถูกด้วย

ก็จบไปแล้วครับสำหรับบทความที่ผมมาสำรวจดู Line Shopping ว่ามันมี API อะไรบ้างและคิด Use Case เล่นๆ จริงๆกะจะไม่เขียน Code เลย มาจำเป็นเขียนตรง Webhook 55555 งั้นคนเขียนก็ไม่เข้าใจเหมือนกันเพราะอันอื่นมันยิง Test ได้หมดผ่าน Postman หวังว่าจะมีประโยชน์ไม่มากก็น้อยครับ สำหรับ Use Case ต่างๆในมุมของผมเอง

( CR. ธำรงค์ ไชยวงค์ )