เริ่มต้นใช้งาน Magento Web API (REST & SOAP)

เผยแพร่แล้ว: 2020-10-06

กรอบงาน Magento 2 Web API เปิดโอกาสให้ผู้ใช้สร้างบริการใหม่ที่สามารถสื่อสารกับโมดูลของบุคคลที่สาม Magento 2 รองรับบริการเว็บ REST และ SOAP ตามการดำเนินการ CRUD (สร้าง อ่าน อัปเดต และลบ)

ในบทความนี้ เราจะอธิบายขั้นตอนเริ่มต้นของการใช้ Magento 2 API API เหล่านี้ช่วยเพิ่มความเร็วในการประมวลผลและอำนวยความสะดวกในการส่งข้อมูล เช่น ผลิตภัณฑ์ ลูกค้า หรือคำสั่งซื้อ ตลอดจนโอนไปยังระบบของบุคคลที่สาม นอกจากนี้ยังช่วยให้คุณจัดการสินค้าคงคลัง

การทำให้กระบวนการเป็นอัตโนมัติ การใช้ API ช่วยให้คุณเขียนโค้ดน้อยลง

สารบัญ

  • Magento Web API คืออะไร
  • คุณสามารถทำอะไรกับ Magento Web API ได้บ้าง
  • เริ่มต้นใช้งาน: ด้วย Magento 2 Rest API
  • สร้างผู้ใช้บริการเว็บใน Magento 2
  • การตรวจสอบสิทธิ์ Magento 2 REST API
  • รับโมดูลโดยใช้ REST API ใน Magento 2
  • ใช้บริการสบู่
  • บริการ SOAP ― การตรวจสอบสิทธิ์โดยใช้ Magento 2
  • คำพูดสุดท้าย

Magento Web API คืออะไร

Magento web API นั้นเข้าใจง่ายมากสำหรับนักพัฒนาที่ต้องการใช้บริการเว็บที่ช่วยสื่อสารกับระบบ Magento คุณลักษณะเหล่านี้เป็นกุญแจสำคัญสำหรับ API:

  • Magento 2 รองรับทั้ง REST (Representational State Transfer) และ SOAP (Simple Object Access Protocol)
  • มีการตรวจสอบสิทธิ์สามประเภท: 1) OAuth 1.0a สำหรับการตรวจสอบสิทธิ์แอปพลิเคชันบุคคลที่สาม 2) วิธีการสร้างโทเค็นสำหรับการตรวจสอบสิทธิ์แอปพลิเคชันมือถือ และ 3) ข้อมูลรับรองการเข้าสู่ระบบสำหรับการดูแลระบบและการยืนยันลูกค้า
  • คุณสามารถกำหนดค่า Magento หรือ Web API ของบริษัทอื่นได้โดยการเขียน XML สองสามบรรทัด
  • รองรับการกรองฟิลด์ของเว็บ API ที่สงวนการตอบสนองมือถือ
  • เฟรมเวิร์กปัจจุบันอิงตาม CRUD (สร้าง อ่าน อัปเดต ลบ) และรูปแบบการค้นหา

คุณสามารถทำอะไรกับ Magento Web API ได้บ้าง

API ช่วยให้โมดูลต่างๆ สื่อสารกัน สามารถใช้เพื่อดำเนินการได้หลากหลาย ตัวอย่างเช่น:

  • คุณสามารถสร้างร้านค้าออนไลน์โดยใช้ Magento และเชื่อมต่อกับระบบจริง เช่น POS (Point of Sale) เพื่อควบคุมสินค้าคงคลังทั่วโลก
  • ผสานรวมกับระบบแบ็กเอนด์ CRM (Customer Relationship Management) หรือ ERP (Enterprise Resource Planning) ได้อย่างง่ายดาย เช่น Salesforce, Microsoft Dynamics หรือซอฟต์แวร์เสียงอื่นๆ
  • ช่วยในการเชื่อมต่อกับ CMS (ระบบจัดการเนื้อหา)
  • คุณยังสามารถสร้างวิดเจ็ต JavaScript บนแบ็กเอนด์ Magento (แผงการดูแลระบบ) หรือหน้าร้าน Magento

เริ่มต้นใช้งาน: ด้วย Magento 2 Rest API

ในการสร้างบทบาทบริการเว็บใน Magento 2 ให้ทำตามขั้นตอนง่าย ๆ เหล่านี้:

1.ลงชื่อเข้าใช้แผงการดูแลระบบ Magento 2

2. ไปที่ ระบบ >> บทบาทของผู้ใช้ และคลิกปุ่ม เพิ่มบทบาทใหม่

เริ่มต้นใช้งาน Magento Web API | Mageworx Magento Blog

3. ป้อนชื่อ บทบาท

เริ่มต้นใช้งาน Magento Web API | Mageworx Magento Blog

4. ในช่อง Your Password ให้ป้อนรหัสผ่านปัจจุบันของ Magento 2 Admin

เริ่มต้นใช้งาน Magento Web API | Mageworx Magento Blog

5. ทางด้านซ้ายมือ คลิก ทรัพยากรของบทบาท ภายใต้ การเข้าถึงทรัพยากร ให้เลือกเฉพาะสิ่งที่จำเป็นสำหรับบริการเว็บของคุณ

เริ่มต้นใช้งาน Magento Web API | Mageworx Magento Blog

6. เมื่อเสร็จแล้ว ให้กด บันทึกบทบาท

สร้างผู้ใช้บริการเว็บใน Magento 2

สร้างผู้ใช้ใหม่สำหรับบทบาทที่สร้างขึ้นใหม่โดยทำตามขั้นตอนเหล่านี้:

1.ไปที่ ระบบ >> ผู้ใช้ทั้งหมด แล้วคลิก เพิ่มผู้ใช้ใหม่

เริ่มต้นใช้งาน Magento Web API | Mageworx Magento Blog

2. ป้อนข้อมูลที่จำเป็น รวมทั้ง ชื่อผู้ใช้ , ชื่อ และ นามสกุล , อีเมล และ รหัสผ่าน

เริ่มต้นใช้งาน Magento Web API | Mageworx Magento Blog

3. ทางด้านซ้ายมือ คลิก บทบาทของผู้ใช้ จากนั้นเลือกบทบาทที่สร้างขึ้นใหม่ เมื่อเสร็จแล้วให้คลิกปุ่ม บันทึกผู้ใช้

เริ่มต้นใช้งาน Magento Web API | Mageworx Magento Blog

การตรวจสอบสิทธิ์ Magento 2 REST API

ที่นี่ ฉันจะตรวจสอบสิทธิ์ REST API ผ่านวิธีการตรวจสอบโทเค็น สิ่งนี้เกี่ยวข้องกับการส่งชื่อผู้ใช้และรหัสผ่านในการเชื่อมต่อเริ่มต้น และรับโทเค็นที่จะบันทึกไว้ในตัวแปรสำหรับการโทรเพิ่มเติม

 <?php //API URL for authentication $apiURL="http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/integration/admin/token"; //parameters passing with URL $data = array("username" => "username", "password" => "********"); $data_string = json_encode($data); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string))); $token = curl_exec($ch); //decoding generated token and saving it in a variable $token= json_decode($token); ?>

โปรดทราบ: ชื่อผู้ใช้ & รหัสผ่านถูกใช้เป็นตัวอย่าง

รับโมดูลโดยใช้ REST API ใน Magento 2

คุณสามารถดึงข้อมูลโดยใช้ Magento 2 REST API นี่คือรายการทั้งหมดของ REST API สำหรับ Magento EE และ CE

 <?php //Using above token into header $headers = array("Authorization: Bearer ".$token); //API URL to get all Magento 2 modules $requestUrl='YourgeneratedUrl'; $ch = curl_init($requestUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); //decoding result $result= json_decode($result); //printing result print_r($result); ?>

ในโค้ดด้านบนนี้ ฉันได้ส่งโทเค็น (ซึ่งถูกดึงมาก่อนหน้านี้) ด้วย API URL เพื่อรับโมดูลทั้งหมดที่ติดตั้งในร้านค้า Magento 2

นี่คือรหัสที่สมบูรณ์

 <?php //API URL for authentication $apiURL="URL"; //parameters passing with URL $data = array("username" => "username", "password" => "*********"); $data_string = json_encode($data); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string))); $token = curl_exec($ch); //decoding generated token and saving it in a variable $token= json_decode($token); //******************************************// //Using above token into header $headers = array("Authorization: Bearer ".$token); //API URL to get all Magento 2 modules $requestUrl='YourURL'; $ch = curl_init($requestUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); //decoding result $result= json_decode($result); //printing result print_r($result); ?>

ใช้บริการสบู่

ก่อนที่เราจะเข้าสู่บริการ SOAP สิ่งสำคัญคือต้องเรียนรู้เกี่ยวกับหลักการตั้งชื่อของ Magento:

  • คุณต้องใช้ CamelCase ในการตั้งชื่อบริการ ตัวอย่างเช่น MyFirstModule
  • สตริง "บริการ" ถูกละไว้ หมายความว่าคุณใช้งานไม่ได้
  • คำนำหน้า “Magento” และส่วนต่อท้าย “Interface” ก็เพิ่มขึ้นเช่นกัน
  • หากชื่อ 'บริการ' ของคุณเหมือนกับชื่อ 'โมดูล' ชื่อโมดูลนั้นจะถูกละเว้น

MageWorx อัพเดท Roundup | บล็อก MageWorx

ดังนั้น อย่าลืมคำนึงถึงประเด็นเหล่านี้

บริการ SOAP ― การตรวจสอบสิทธิ์โดยใช้ Magento 2

ทรัพยากร SOAP สามารถเข้าถึงได้โดยใช้โทเค็นการเข้าถึง OAuth ผ่าน HTTP การตรวจสอบสิทธิ์ OAuth นั้นคล้ายกับวิธีโทเค็น แต่มีการจัดการที่ซับซ้อนกว่า โทเค็นการเข้าถึงเป็นสตริงที่แสดงถึงการอนุญาตการเข้าถึงที่ออกให้แก่ลูกค้า

นี่คือสคริปต์ PHP ที่อธิบายวิธีรับโทเค็นการเข้าถึง:

 <?php $opts = [ 'http'=> [ 'header' => 'Authorization: Bearer 36849300bca4fbff758d93a3379f1b8e' ] ]; $wsdlUrl = 'http://magento.ll/soap/default?wsdl=1&services=testModule1AllSoapAndRestV1'; $serviceArgs = ["id" => 1]; $context = stream_context_create($opts); $soapClient = new SoapClient($wsdlUrl, ['version' => SOAP_1_2, 'stream_context' => $context]); $soapResponse = $soapClient->testModule1AllSoapAndRestV1Item($serviceArgs); ?>

คำพูดสุดท้าย

บทความนี้สรุปพื้นฐานของ Magento web APIs แต่ยังมีอีกมากที่คุณสามารถเรียนรู้ได้ หากคุณต้องการเข้าใจการใช้งาน Magento 2 API ที่แน่นแฟ้นยิ่งขึ้น คุณควรสำรวจวิธีการที่มีอยู่แล้วภายใน Magento 2 และส่วนขยายของบุคคลที่สาม คุณควรเข้าใจวิธีการส่งข้อมูลไปยังระบบที่จำเป็นด้วย

แค่นั้นแหละ!

หากต้องการสัมผัสประสบการณ์การโฮสต์ Magento ที่เร็วขึ้นด้วยความอุ่นใจ ลองดูช่วงทดลองใช้ฟรี 3 วันนี้บน DigitalOcean, Vultr และ Linode