Headless Magento Resources

The App Shell Model  (https://developers.google.com/web/fundamentals/architecture/app-shell) คุณสามารถค้นหาข้อมูลที่สำคัญเกี่ยวกับ application shell เป็นดีไซร์มาตรฐานสำหรับ headless apps

เข้าสู่ Headless (https://github.com/ishakhsuvarov/going-headless)

พื้นที่เก็บข้อมูลที่สร้างในช่วง Imagine 2017 DevExchange มีแนวคิดหลากหลายเกี่ยวกับการใช้งาน Web API ของ Magento กับ custom frontend, Headless Magento 2และ จุดสำคัญรวมถึงจุดผิดพลาดของ Web API และการพัฒนา

Headless Magento และส่วนขยาย (https://alankent.me/2016/12/14/headless-magento-and-extensions/)

หากคุณเป็นผู้พัฒนาส่วนขยายของ Magento 2 คุณจะพบคำตอบของทุกคำถามที่เกี่ยวกับ third-party modules และ Headless Magento ในบทความนี้ นอกจากนี้ Alan Kent ยังได้แบ่งปันความคิดของเขาเกี่ยวกับ Headless Magento 2 ด้วย

CMS API ใน Mage2 (http://davidmanners.de/cms-api-in-mage2

การสาธิตวิธีเพิ่มและแก้ไขหน้า CMS ผ่าน REST API ที่สร้างขึ้นใน Magento 2 บทความนี้จะเน้นไปที่วิธีการสร้างและแก้ไขหน้า CMS

MageSDK (https://github.com/KickAssCommerce/magesdk)

wrapper PHP สำหรับ Magento 2 API ที่ให้ความสะดวกในการดึงและตั้งค่าข้อมูล

Mamas & Papas(http://www.mamasandpapas.ae/)  OUNASS (http://www.ounass.com/)

ร้านค้าที่พัฒนาโดยใช้ Headless Magento

คำอธิบายเกี่ยวกับ Magento PWA

หลังจากอ่านทั้งหมดคุณจะไม่แปลกใจถ้า Magento 2 จะกลายเป็นแพลตฟอร์มเว็บแอปพลิเคชันที่ออกแบบมาเพื่อให้ Developer มีวิธีที่ง่ายที่สุดในการสร้างร้านค้า

Magento 2 PWA จะ install และรันโค้ดอย่างรวดเร็วบนอุปกรณ์ของผู้ใช้งาน  และความสามารถที่เพิ่มขึ้นเมื่อเปรียบเทียบกับ “single-page JavaScript apps”ในอดีต ในขณะเดียวกันมันก็ยังเป็นเว็บ Magento 2 PWA เขียนผ่าน HTML, CSS และ JavaScript languages ของเวบ  ไม่มีการใช้ภาษาเฉพาะ หรือ native frameworks ในแพลตฟอร์มเดียว มันยังแสดงผลด้วย lazy-loads เพื่อประสานตัวเองให้สอดคล้องกับผู้ใช้งาน

Magento PWA นั้นดีกว่าเว็บไซต์อื่นที่มีความเร็วในระดับดี  เนื่องจากเหตุผลดังต่อไปนี้

  • The network traffic จะลดลง เนื่องจากมันจะยังทำงานได้ แม้ว่าไม่ได้เชื่อมต่ออินเตอร์เนต และในกรณีที่เกิดการเชื่อมต่ออินเตอร์เนตช้า ผู้ใช้งานก็ยังโต้ตอบกับเวบแอฟพลิเคชั่นได้ อย่างมีประสิทธิภาพ นอกจากนี้การโหลดหน้าแรก ยังเป็น shell document ขนาดเล็ก, มีการรับส่งข้อมูลผ่านเว็บผ่าน HTTPS, ServiceWorker ทำหน้าที่แคชข้อมูล ทำให้โหลดหน้นเพจได้รวดเร็วขึ้น
  • เทคนิค Non-blocking ถูกใช้เพื่อรักษาการตอบสนองของ UI ที่ 60fps และให้ประสบการณ์เช่นเดียวกับแอพที่แท้จริง
  • ServiceWorker ทำหน้าที่เหมือนลูกค้าอัจฉริยะ ที่ไม่ต้องการ network traffic ในการโต้ตอบ
  • ทำหน้าที่เป็นแอพที่สามารถใช้งานได้บนหน้าจอหลักพร้อมกับแอพทั่วไป

สำหรับเครื่องมือ ค่อนข้างเป็นมิตรกับ Developer  แนวคิดการออกแบบขั้นต้นเกือบทั้งหมดใส่ใจเกี่ยวกับประสบการณ์ของ Developer เพื่อความสำเร็จในการพัฒนา ทีมเบื้องหลังของโปรเจคนี้ อาศัยการใช้ประเด็นสำคัญต่างๆ ที่เกิดจากการพูดคุย สนทนา ถกเถียงหัวข้อสำคัญ กับ Magento community ซึ่งมีทั้ง Developer ทั่วโลก, ผู้เชี่ยวชาญ JavaScript, ผู้ที่ชื่นชอบ CSS, ผู้ฝึกสอนที่มีชื่อเสียง, ผู้นำทางธุรกิจที่โดดเด่น, full-stack developers ที่มีประสบการณ์ แนวคิดเบื้องหลัง Studio คือการทำให้การพัฒนา Magento 2 เป็นไปได้สำหรับผู้เชี่ยวชาญทุกคน

Magento PWA & แนวคิดหลัก

  • API Layer คุณอาจจะประทับใจกับ Magento REST API ที่ค่อนข้างจะครอบคลุม แต่เตรียมพร้อมสำหรับการครอบคลุมที่มากกว่ากับ PWA Studio เพราะมันต้องการขั้นตอน API ใหม่ มีการวางแผนจุดหมายของประสิทธิภาพ API ที่มากกว่า จึงมีโอกาสที่จะมีการเพิ่มรูปแบบ  API ใหม่ เพื่อการตอบสนองที่กำหนดเองมากขึ้น
  • Application Shell Application Shell ทำงานกับ CSS และข้อมูลทั่วโลก นอกจากนี้ยังได้รับการออกแบบมาเพื่อจัดการ UI ที่น้อยที่สุดระหว่างการโหลด ต้องกล่าวถึงว่า App Shell รับผิดชอบ  JavaScript file , bootstrap , PWA runtime และ การโหลดข้อมูล
  • Application Framework

Magento PWA Studio แนะนำวิธีที่ดีที่สุดในการใช้ Magento store ใน “headless mode” ดังนั้นคุณจะได้รับ single-page JavaScript applications ที่ทำงานบนเฟรมเวิร์ก JavaScript ใหม่ ซึ่งจะนำไปสู่สิ่งใหม่ๆ

– รูปแบบ “unidirectional data flow” กับ pure components

-ใช้ ReactJS เพื่อทำRender และจัดการเหตุการณ์ทั้งหมด

-ใช้ Redux ในการจัดการสถานะที่ใช้ร่วมกันทั้งหมด และ core library ของฟังก์ชั่น Redux reducer

– เป็นไปได้ที่จะใช้โมดูล CSS  และแยก / กำหนดสไตล์ชีทให้กับส่วนประกอบ

– การทดสอบส่วนประกอบ และการกระทำเกี่ยวข้องกับ Jest และ Storybook

– เมื่อต้องการรวบรวมการกำหนดค่าร้านค้าล่วงหน้าลงใน Fronted เครื่องมือจะสร้าง, bundles  และ minifies ด้วย Webpack ที่ได้รับการปรับปรุงด้วย loaders และ plugins ที่กำหนดเอง

Developer experience

ดังที่ได้กล่าวไปแล้วสิ่งสำคัญอันดับหนึ่งของ Magento 2 PWA คือประสบการณ์ของนักพัฒนา  เครื่องมือที่สมบูรณ์จะช่วยปรับปรุงสิ่งต่างๆ อย่างเหมาะสม

  • React

ใช้สำหรับ JavaScript ดังนั้น  Magento PWA Studioจะทำ “React apps.” ดังนั้นคุณอย่าลืมเตรียมตัวให้พร้อมสำหรับประสบการณ์นี้  ที่จะช่วยให้เข้าถึงชุมชนได้กว้างขึ้น

สุดท้าย

อย่าเพิ่งสรุปว่า Magento 2 PWA และ Headless Magento 2  นั้นคล้ายกับ “applets” เพราะความจริงแล้วมันตรงกันข้ามกันอย่างสิ้นเชิง  Magento 2 PWA และ Headless Magento 2   ไม่เพียงรองรับ SEO  แต่ยังมีพื้นที่สำหรับการเพิ่มประสิทธิภาพอีกด้วย นอกจากนี้ Magento 2 PWA shop สามารถให้การสื่อสารระหว่างหลายแท็บของเวบไซต์และทำให้พวกเขาพูดคุยกับเซิร์ฟเวอร์เป็นแอปพลิเคชันเดียว ในขณะที่ใช้ทรัพยากรน้อยลง แต่  Magento 2 PWA และ Headless Magento 2   ทำให้ลูกค้าได้รับประสบการณ์ที่ดีขึ้น