แอปพลิเคชัน Shopify คืออะไรและจะสร้างได้อย่างไร

เผยแพร่แล้ว: 2022-07-29

คำถามหนึ่งที่เรามักได้รับเมื่อพูดคุยกับนักพัฒนาหรือผู้นำด้านวิศวกรรมเกี่ยวกับสิ่งที่เราทำคือ แอปพลิเคชัน Shopify คืออะไรกันแน่ และเครื่องมือและเทคโนโลยีใดที่จำเป็นในการสร้าง อีกคำถามหนึ่งที่พบบ่อยคือ ถ้าฉันไม่มีประสบการณ์ในการสร้างแอป Shopify จะมีปัญหาไหม

มาตอบคำถามเหล่านี้โดยอธิบายรายละเอียดในด้านเทคโนโลยีต่างๆ ของการพัฒนาแอปพลิเคชัน Shopify

วิธีที่แอป Shopify เปรียบเทียบกับเว็บแอป

มุมมองของเราในหัวข้อนี้คือแอปพลิเคชัน Shopify ทำงานเหมือนกับเว็บแอปพลิเคชันมาตรฐาน แต่มีการเชื่อมต่ออย่างมากกับแพลตฟอร์ม Shopify ผ่าน API สิ่งนี้มีความหมายหลายประการ:

  • ในการสร้างแอป Shopify คุณสามารถใช้เทคโนโลยีเดียวกันกับเว็บแอปได้ คุณไม่ จำกัด เทคโนโลยีเฉพาะ (แม้ว่าการใช้เทคโนโลยีเฉพาะบางอย่างอาจทำให้ชีวิตของคุณง่ายขึ้น - เราจะกลับมาที่นี้ในภายหลัง)
  • โดยปกติ คุณต้องสร้างทั้งส่วนหลังและส่วนหน้า
  • คุณมีหน้าที่รับผิดชอบในการโฮสต์และการทำงานของแอปพลิเคชัน
  • เมื่อใบสมัครได้รับการอนุมัติจาก Shopify แล้ว กระบวนการเผยแพร่ก็อยู่ภายใต้การควบคุมของคุณโดยสมบูรณ์

จากมุมมองของผู้ขาย เราสามารถพูดได้ว่า Shopify เป็น Software-as-a-Service (SaaS) เช่นเดียวกับแอป Shopify หมายความว่าผู้ค้าไม่จำเป็นต้องโต้ตอบกับโค้ดประเภทใดๆ เพื่อติดตั้งแอปพลิเคชันของคุณ

ส่วนประกอบแอปพลิเคชัน Shopify

เราระบุองค์ประกอบเชิงตรรกะสามประการที่แอปพลิเคชัน Shopify โดยทั่วไปมี:

  • ผู้ดูแลระบบร้านค้า
  • การประมวลผลเว็บฮุค
  • แอปพลิเคชันที่ติดต่อกับลูกค้า (UI หน้าร้าน)

ในสามข้อนี้ อันสุดท้ายไม่จำเป็น ขึ้นอยู่กับฟังก์ชันที่คุณต้องการมอบให้กับผู้ค้า ตัวอย่างเช่น แอพ Candy Rack ของเราประกอบด้วยส่วนประกอบทั้งสาม ส่วน Loyal ประกอบด้วยสองส่วนแรกเท่านั้น

ผู้ดูแลระบบร้านค้า

ผู้ดูแลระบบผู้ค้าเป็นแดชบอร์ดที่ผู้ค้าตั้งค่าและกำหนดค่าแอปพลิเคชัน Shopify แนะนำให้ให้บริการผู้ดูแลระบบผู้ขายภายในอินเทอร์เฟซของ Shopify (หรือที่เรียกว่าแอปพลิเคชันแบบฝังตัว) ซึ่งหมายความว่าคุณฝังแอปลงในการดูแลระบบของ Shopify โดยใช้ iframe

แอปพลิเคชันแบบฝังมาพร้อมกับข้อจำกัดหลายประการ:

  • เนื่องจากวิธีการรับรองความถูกต้อง คุณจึงถูกจำกัดด้วยสถาปัตยกรรมแอปพลิเคชันหน้าเดียวไม่มากก็น้อย (แม้ว่าวิธีแก้ไขปัญหาชั่วคราวบางส่วนจะสามารถทำได้ด้วยความช่วยเหลือของ Turbolinks หรือ Inertia.js)
  • การใช้ React สำหรับการเขียนส่วนหน้าอาจมีประสิทธิภาพ เนื่องจากมีไลบรารีที่ Shopify ให้บริการ: ไลบรารี UI ของ Polaris ทำให้แน่ใจว่า UX ของคุณสอดคล้องกับส่วนอื่นๆ ของ Shopify admin และ App Bridge จะทำหน้าที่เป็น frontend bridge ที่ให้ข้อมูลบริบทของ Shopify แก่แอปพลิเคชันของคุณ ทำงานใน iframe

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

นอกจากนี้ยังเป็นส่วนหนึ่งของแอปพลิเคชันที่คุณจัดการกับการเรียกเก็บเงินในกรณีที่แอปพลิเคชันของคุณไม่ฟรี

ผู้ดูแลระบบผู้ขายในแอป Shopify Candy App
ผู้ดูแลระบบร้านค้า

การประมวลผลเว็บฮุค

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

ตรรกะทางธุรกิจที่ต้องดำเนินการตามเหตุการณ์ที่ได้รับควรได้รับการจัดการโดยผู้ปฏิบัติงานเบื้องหลังอย่างแน่นอน มิฉะนั้น คุณสามารถโอเวอร์โหลดแอปพลิเคชันของคุณได้อย่างง่ายดาย คุณยังสามารถพิจารณามอบหมายงานที่ได้รับนอกแอปพลิเคชันของคุณ

แอปพลิเคชันที่ติดต่อกับลูกค้า (UI หน้าร้าน)

ในกรณีที่แอปพลิเคชันของคุณขยายหน้าร้าน Shopify (ซึ่งหมายความว่านำคุณสมบัติใหม่มาสู่ร้านค้าลูกค้า) คุณต้อง "แทรก" ลงในหน้าร้าน ในการดำเนินการดังกล่าว คุณต้องบอก Shopify ผ่าน API ให้เพิ่มทรัพยากร JavaScript ของคุณไปที่หน้าร้าน มีสองวิธีที่ได้รับความนิยมมากที่สุด: Script Tag และ App Embed block นอกจากนี้ยังมีความเป็นไปได้ที่จะขยายธีมหน้าร้านโดยตรงด้วยองค์ประกอบภาพบางส่วนโดยใช้ App Blocks (เรียกอีกอย่างว่าส่วนแอพ)

การพัฒนาแอปพลิเคชันที่ต้องเผชิญลูกค้าอาจเป็นส่วนที่ท้าทายที่สุดของกระบวนการทั้งหมด โดยปกติ คุณจะขยายหรือแทนที่การทำงานเริ่มต้นของหน้าร้าน เมื่อทำเช่นนี้ คุณต้องตรวจสอบให้แน่ใจว่าใช้งานได้ในธีม Shopify ที่แตกต่างกัน ด้วยการตั้งค่าร้านค้าที่หลากหลาย และในลักษณะที่ไม่ทำลายสิ่งใดในสถานการณ์ที่ไม่คาดคิด ยิ่งไปกว่านั้น อาจมีแอปพลิเคชันบุคคลที่สามอื่น ๆ ที่รบกวนแอปของคุณอยู่เสมอ

UI หน้าร้านเป็นที่ที่คุณควรให้ความสนใจกับประสิทธิภาพและขนาดของแอปของคุณ

ส่วนที่ติดต่อกับลูกค้าของแอป Shopify Candy Rack
ส่วนที่ติดต่อกับลูกค้าของแอป Shopify

วิวัฒนาการของการพัฒนาแอป Shopify

ในขณะที่ฉันบอกคุณก่อนว่าการสร้างแอปพลิเคชัน Shopify นั้นเป็นการพัฒนาเว็บแอปพลิเคชันโดยพื้นฐานแล้ว คำชี้แจงนี้เป็นจริงเพียงบางส่วนเท่านั้น ในปี 2564 Shopify ได้แนะนำแนวคิดของส่วนขยายการชำระเงิน ก่อนหน้านั้น ไม่สามารถขยายฟังก์ชันการชำระเงินด้วยแอป Shopify ในด้านนี้ ประสบการณ์ของนักพัฒนาจะแตกต่างจากเว็บแอปเนื่องจากเกิดขึ้นในสภาพแวดล้อมที่จำกัดมาก (เช่น คุณสามารถใช้เฉพาะชุดส่วนประกอบ React ที่เตรียมไว้ล่วงหน้าเท่านั้น) และ Shopify จัดการกระบวนการสร้างและเผยแพร่

เป็นไปได้ว่าในอนาคต Shopify จะมุ่งสู่แนวทางนี้ในด้านอื่นๆ เพื่อให้สามารถควบคุมแอปพลิเคชันของบุคคลที่สามได้มากขึ้น ด้วยเหตุนี้ การพัฒนาแอป Shopify จะเปลี่ยนไปจากการพัฒนาเว็บแอปมากขึ้น

กองเทคโนโลยี Digismoothie

แบ็กเอนด์

เทคโนโลยีหลัก:

  • Python
  • กรอบงานเว็บ Django
  • RQ หรือ Celery
  • PostgreSQL
  • Redis

บางครั้ง เรายังใช้:

  • กระติกน้ำ
  • FastAPI

ส่วนหน้า

  • React (บางครั้ง เราใช้ Preact สำหรับแอปที่ต้องพบกับลูกค้าเพื่อเหตุผลด้านประสิทธิภาพ)
  • Tailwind + ส่วนประกอบที่มีสไตล์
  • โต้ตอบแบบสอบถาม
  • Polaris UI

การสื่อสารแบ็กเอนด์ฟรอนท์เอนด์

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

  • GraphQL
  • REST API
  • ซ็อกเก็ตเว็บ
  • ความเฉื่อย

โครงสร้างพื้นฐาน

กลยุทธ์ของเราคือการใช้โซลูชันที่มีการจัดการ

  • ฮีโร่คุ
  • Vercel
  • เปลวไฟเมฆ
  • AWS

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับเทคโนโลยีที่เราใช้จากบทความนี้

สถาปัตยกรรมทั่วไปของแอปพลิเคชัน Shopify โดย Digismoothie
สถาปัตยกรรมทั่วไปของแอปพลิเคชัน Shopify โดย Digismoothie

บทสรุป

ฉันหวังว่าคุณจะได้เรียนรู้ความหมายของการสร้างแอปพลิเคชัน Shopify จากมุมมองทางเทคนิคและเทคโนโลยีที่สามารถนำไปใช้ได้

สุดท้ายนี้ กลับมาที่คำถามที่ถามในตอนต้น เป็นปัญหาสำหรับวิศวกรที่มีพื้นฐานในการพัฒนาเว็บที่จะเข้าร่วมทีมที่ทำงานบนแอปพลิเคชัน Shopify หรือไม่? บอกเลยว่าไม่แน่นอน หากวิศวกรมีความเข้าใจที่ดีเกี่ยวกับแนวคิดและเทคโนโลยีที่ใช้ในการพัฒนาเว็บแอปพลิเคชันสมัยใหม่ พวกเขาสามารถเข้ามามีส่วนร่วมได้อย่างรวดเร็ว ความรู้เกี่ยวกับระบบนิเวศของ Shopify และ API จะมาพร้อมทีละขั้นตอน