אינטגרציה של Headless Commerce עם חזית חנות ב-Vue/Nuxt.js

חזית חנות ב-Vue נשברת במקומות שבהם הקטלוג, המלאי וההזמנות חיים במערכות שונות. אנו מתכננים ומטמיעים Headless Commerce מקצה לקצה: מחברים את חזית החנות למערכת הרישום, לתשלום ולמשלוח, כך שהקטלוג והמלאי תואמים. אנו מפעילים חזית נפרדת ללא פגיעה בהזמנות: המעבר מתבצע במקביל לאתר פעיל.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
אינטגרציה של Headless Commerce עם חזית חנות ב-Vue/Nuxt.js
מורכב
~2-4 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

למה מסחר headless עם Vue נתקע באינטגרציות

מסחר headless מסיר את התלות של החזית בפלטפורמה, אבל יחד איתה נעלמות גם ההבטחות המובנות לעקביות נתונים. חזית ב-Vue קוראת קטלוג, מחירים ומלאי דרך API — כלומר ממעגל שני, שיש לו זמן עדכון משלו. ברגע שהמעגלים נפרדים, הפער נראה ללקוח, לא למפתח.

אינטגרציית הקטלוג נראית פשוטה כל עוד מדובר בשדות סטטיים. מה ששובר אותה הוא הדינמיקה: מלאי משתנה בזמן אמת, מחירים מגיעים ממערכת מבצעים, וחלק מהמאפיינים נערכים ידנית במערכת ה-ERP.

חוסר סנכרון בין מחירים למלאי מביא למכירת מוצר שאינו במלאי ולסירוב בשלב התשלום — סוג הכשל היקר ביותר במשפך.

בעיה נפרדת היא קליטת הזמנות. רענון עמוד או לחיצה כפולה על כפתור השליחה שולחים למערכת ה-ERP שני מסמכים זהים, ואת ההזמנות הכפולות אחר כך מפרקים ידנית: מאמתים תשלומים, מבטלים, ומסבירים ללקוח.

מבחוץ זה נראה כמו "האתר לפעמים נתקע", אבל בפועל זה היעדר אידמפוטנטיות במפגש בין החזית לבקאנד.

שני מקורות כשל נוספים — מטמון והנחות. עמוד קטגוריה מהמטמון נטען מהר יותר, אבל מציג מוצר שהוסר מהמכירה או מחיר של אתמול, וכללי ההנחות מחושבים בשני מקומות במקביל, ובמקרה של סתירה מנצח הצד שטעה אחרון. נסביר איך סוגרים את זה — לפי כל סוג כשל בנפרד.

מה נותן הפיצול בין הפרונטאנד לבקאנד של החזית

הפרדה בין החזית למעגל ה-ERP אומרת ששכבת הממשק חיה בנפרד מהלוגיקה של קטלוג, מחירים והזמנות. חזית ב-Vue מקבלת נתונים דרך ממשק תכנות ובונה עמודים בעצמה, בעוד ליבת המסחר אחראית על מלאי, הנחות וביצוע תשלומים. להלן ארבעה אפקטים שנראים במדדים כבר בחודשים הראשונים אחרי המעבר.

מהירות שחרור עמודים ובלוקים חדשים

עמוד נחיתה חדש, מבחר או אזור מבצעים מורכבים מרכיבים ונתונים קיימים, בלי שינויים בליבת החנות. שחרור עמוד נכנס בשעות במקום בשבועות, והשיווק לא ממתין לתור לריליס משותף. חלקם של העמודים שמורכבים מרכיבים לשימוש חוזר גדל — כל עמוד חדש נעשה מהר יותר מקודמו.

ריליסים בלתי תלויים של החזית ושל מעגל ה-ERP — מה משתנה בלוחות הזמנים ובשיעור הכשלים בקופה

עדכון הממשק כבר לא דורש עצירה של מעגל ה-ERP, ולהפך: שינויים במחירים ובמלאי יוצאים במחזור משל עצמם, בלי לבנות מחדש את החזית. לוחות הזמנים לשחרור מתקצרים משבועות לימים, וחזרה לאחור של חלק אחד לא גוררת אחריה את השני.

החזית מוגשת מהמטמון ומחזיקה עומס שיא בעמודים סטטיים, ולכן הקופה לא נופלת יחד עם הקטלוג. בזמן אמת לבקאנד מגיעים רק הסל והתשלום — אזור צר במקום כל האתר. בזכות זה שיעור הכשלים בשלב הקופה יורד: העמוד לא מאבד תגובתיות תחת עומס, ושגיאות תשלום ממוקדות ונראות בלוגים.

מצבי אינטגרציה: מונוליט, היברידי, חזית נפרדת

מצב האינטגרציה נבחר לא לפי הטעם של הצוות, אלא לפי מי ששולט ברינדור ובקטלוג. להלן שלוש חלופות אמיתיות, שביניהן בוחרים בדרך כלל במעבר למסחר headless עם חזית ב-Vue.

אפשרות מתי מתאים מגבלות
תבנית מונוליטית קטלוג של עד כמה אלפי פריטים, ערוץ מכירה אחד, ריליסים נדירים רינדור ונתונים קשורים: שינוי בלוק גורר בנייה מחדש, פרסונליזציה נתקעת במנוע התבניות
סכימה היברידית יש בקאנד ופאנל ניהול עובדים, אבל Vue דרוש בחלק מהמסלולים שני סטאקים של רינדור, את הניתוב והמטמון מתאמים ידנית
חזית נפרדת עם שכבת מתווך כמה ערוצים, ריליסים תכופים, דרושים SSR ומטמון בפריפריה נוסף שירות נפרד להרכבת נתונים — צריך לתפעל את הזמינות שלו ואת גרסאות הסכימה

היברידי: חזית מעל בקאנד קיים

חלק מהמסלולים מוגשים על ידי התבנית המונוליטית הישנה, והשאר — על ידי Nuxt עם רינדור בצד השרת ומטמון בפריפריה. הקטלוג והסל נשארים בפאנל הניהול הנוכחי, ולכן המעבר מתבצע עמוד אחר עמוד: תחילה הקטלוג וכרטיס המוצר, אחר כך הקופה. המחיר לכך — שתי מערכות רינדור ומטמון משותף, שיש לבטל את תוקפו לפי אותם אירועים.

הוצאה מלאה של הפרונטאנד עם שכבת מתווך להרכבת נתונים

שכבת המתווך מרכיבה תשובה לחזית מתוך קטלוג, מחירים, מלאי ותוכן. הפרונטאנד ב-Vue פונה לחוזה אחד ולא יודע כמה שירותים עומדים מאחוריו — קל יותר למטמון לפי ישויות ולשחרר ריליסים בלי שינויים בבקאנד. המחיר של הגישה — שירות חדש בתפעול, ניהול גרסאות של סכמת התשובה וכללי נסיגה כשאחד המקורות אינו זמין.

שלבי הטמעה: מניתוח הקטלוג ועד להשקת החזית

את סדר העבודות בונים כך שהקטלוג והלוגיקה של ההזמנה יעברו לחזית headless בלי השבתה: תחילה נתונים, אחר כך החלפה, ורק לאחר מכן חזית ללקוחות. להלן מסלול הפרויקט ונקודות הקבלה.

סדר העבודות ונקודות תיאום

  1. מלאי קטלוג — אוספים כרטיסים, קטגוריות, וריאציות, מלאי, כללי מבצעים וקשרים עם מערכת ה-ERP, ומתאמים מקור אמת למחיר ולזמינות.
  2. סכמת החלפת נתונים — מתארים אילו ישויות ובאיזו תדירות מגיעות לחזית, מה שומרים במטמון, מה מבקשים בזמן אמת ואיך החזית מתנהגת כשמקור נופל.
  3. חזית ומטמון — מפרידים בין סטטי לדינמי: עמודי הקטלוג נבנים מראש, הסל והזמינות מחושבים לפי בקשה, והמטמון מתאפס לפי אירועי החלפה.
  4. בדיקת תרחישי הזמנה — מריצים חיפוש, בחירת וריאציה, סל, מבצע, קופה והחזרה: במצב רגיל וכששירותים חיצוניים אינם זמינים.
  5. בדיקת עומסים — מדמים גלי שיא בקטלוג ובקופה, בודקים זמן תגובה והתנהגות המטמון תחת חימום.
  6. מסירה והשקה — מפעילים את החזית בדומיין הפרודקשן, בימים הראשונים עוקבים עם בקרת מדדים מוגברת ותוכנית חזרה לאחור.

תיאום — בשתי נקודות: אחרי מלאי הקטלוג ולפני חיבור החלפה לחזית הפרודקשן.

מה עושים כשהחזית כבר פעילה

חזית פעילה לא מאתחלים מחדש: מתחילים מניתוח החלפת הנתונים ומוצאים היכן הנתונים הולכים לאיבוד והמהירות נתקעת. אחר כך מעבירים צומת אחר צומת — קטלוג, מטמון, קופה — ומשאירים את הממשק הנוכחי בפרודקשן עד להחלפה.

מה נשאר בפרויקט אחרי המסירה: קונפיגורציות ותקנונים

פרויקט נחשב למסור לא כשהחזית נפתחת, אלא כשלצוות שלכם יש אפשרות לשנות אותה ולשחזר אותה בלעדינו. לכן הקבלה כוללת סט קבוע של ארטיפקטים: בפרויקטים של מסחר headless עם חזית ב-Vue/Nuxt הקונפיגורציה חיה במאגר, ולא בהגדרות ידניות על השרת.

  • קונפיגורציות החזית: סביבות, רינדור בצד השרת ויצירה סטטית, כללי מטמון, מסלולים והפניות.
  • קונפיגורציה של שכבת המתווך בין החזית לליבת המסחר: מסלולי החלפה, המרת תשובות, התנהגות בעת כשלים, מגבלות עומס.
  • סכמת זרימות נתונים: המסלול של מוצר, מלאי, מחירים, סל והזמנה עם נקודות מטמון ומקומות שבהם הנתונים חייבים להיות טריים.
  • מדיניות גישה ומפתחות אינטגרציות: תפקידים, היקפי הרשאה של טוקנים, סדר רוטציה, כללי אחסון סודות.
  • תיאורי שדות הקטלוג: טיפוסים, חובה, לוקליזציה, קשרים בין ישויות — מאפיינים חדשים נוצרים בלי שינוי בקוד.
  • תקנון עדכון: סדר הוצאה, בדיקות חובה לפני ריליס, עבודה עם שינויים בסכמת הנתונים.
  • תקנון חזרה לאחור: איך מחזירים גרסה קודמת של החזית ושל שכבת המתווך, אילו נתונים זה לא פוגע בהם, מי מקבל את ההחלטה.

תיעוד לצוות שלכם

החומרים נכתבים עבור אנשים שלא השתתפו בפיתוח: היכן נמצאות הקונפיגורציות, מה בטוח לשנות, ומה שובר את החוזה עם ליבת המסחר. בנפרד מנוהל יומן החלטות שהתקבלו — למה נבחר דווקא אופן ההחלפה הזה ואילו מגבלות הוא מטיל.

מה אנחנו לוקחים איתנו ומה נשאר אצלכם

אצלכם נשאר כל מה שקשור למוצר: קוד, קונפיגורציות, סכמות, תקנונים והזכויות עליהם. אצלנו — תבניות פנימיות ותוצרים כלליים, הם לא נכללים באספקה. הגישות למערכות שלכם מבוטלות לפי אקט, וזה מתועד במסירה.

מקרה בוחן: מעבר לחזית נפרדת בלי ירידה בהזמנות

אלינו הגיע חנות עם קטלוג של כמה עשרות אלפי פריטים: החזית וליבת המוצרים חיו במונוליט אחד, ולכן שינוי בתבנית הקטלוג נגע בלוגיקה של המלאי והמחירים. עמוד קטלוג נבנה בממוצע ב-4.2 שניות, ובשיאי מבצעים — זמן ארוך בהרבה, ושיעור הסלים הנטושים עמד על 68%.

פניות לתמיכה בנושא מלאי זרמו ללא הפסקה: הלקוח ראה מוצר במלאי, ביצע הזמנה וקיבל סירוב בפועל. אי אפשר היה להעלות מבצע חדש בלי ריליס של הליבה — השיווק חיכה לפיתוח יומיים-שלושה.

מה התברר כצוואר הבקבוק ואיך סגרו אותו

צוואר הבקבוק לא היה מהירות הרינדור, אלא הקישוריות בין השכבות. את החזית הוציאו לפי סכמת מסחר headless: אפליקציה נפרדת ב-Vue, שלד Nuxt סגר את הרינדור בצד השרת ואת הניתוב; הקטלוג, המלאי, המחירים והקופה נשארו בליבת המוצרים ומוגשים לחזית דרך שכבת נתונים דקה.

המטמון סומן לפי תגים עם ביטול תוקף ממוקד בעת שינוי מוצר, הסל הועבר לצד החזית — ושינויי תבניות הפסיקו לדרוש ריליס של הליבה.

מדדים אחרי המעבר: בניית עמוד קטלוג — 0.8 שניות במקום 4.2, שיעור הסלים הנטושים — 51% לעומת 68%, מספר הפניות בנושא מלאי קטן פי ארבעה: החזית קוראת מלאי מליבת המוצרים, ולא מהעותק של עצמה. מבצע השיווק מעלה בעצמו תוך 40 דקות. את המעבר הובילו לפי חלק מהתעבורה, עם אפשרות להחזיר את החזית הקודמת.

הרווח לא בא מהחלפת המנוע כשלעצמה, אלא מהפרדת האחריות: החזית אחראית על המהירות והקופה, והליבה — על המוצר, המחירים והמלאי.

מתי חזית Vue משתלמת יותר מתבנית קלאסית על CMS

כדאי להפריד את החזית ממערכת ניהול התוכן במקום שבו הקטלוג גדול, יש כמה ערוצי מכירה, ומבנה העמודים משתנה לעתים קרובות. אם החנות חיה בערוץ אחד, מגוון המוצרים יציב, והשיפורים נדירים וממוקדים — זול ומהיר יותר לשפר תבנית קלאסית.

העומס על הקטלוג הוא הקריטריון הראשון. תבנית קלאסית בונה עמוד בצד השרת בכל בקשה ופונה בכל פעם למסד הנתונים בשביל מחיר, זמינות ופילטרים. חזית ב-Vue מחזיקה מטמון בנפרד מפאנל הניהול: העמוד מוגש ממצב מוכן, והקטלוג מפסיק להיות צוואר בקבוק כשהתעבורה גדלה.

מהירות השינויים תלויה בקישוריות של הקוד. בתבנית קלאסית, התצוגה, הלוגיקה והעיצוב נמצאים בתוך הליבה, ולכן שינוי בלוק נוגע בתבניות ודורש בדיקה של כל מה שתלוי בהן. החזית מתפתחת במהדורות נפרדות: בלוק חדש מועלה בלי תלות בפאנל הניהול ובנתונים, וחזרה לאחור מחזירה גרסה קודמת תוך דקות.

עלות התחזוקה בנויה אחרת. תבנית קלאסית מנצחת בהתחלה, אבל כל בקשה הבאה לשינוי יקרה יותר: השינויים נכנסים לקוד משותף ודורשים בדיקת רגרסיה. החזית יקרה יותר בכניסה — צריך לתאר חוזי נתונים, להגדיר בנייה ופריסה — אבל בהמשך השינויים יושבים באופן צפוי ולא תלויים בעדכוני מערכת הניהול.

קריטריון מעשי: חזית נפרדת מוצדקת כשיש תוכניות לערוצים חדשים, שינויים תכופים בעמודים וצמיחה של הקטלוג. תבנית קלאסית נשארת בחירה סבירה אם צריך להאיץ נקודתית אתר קיים ולא להוסיף חלקים נעים.

אינטגרציות, מטמון ומלאי: ספקות טכניים לפני ההתחלה

לפני תחילת האינטגרציות עם חזית headless על Nuxt עולים אותם שאלות: איך לשמור על קטלוג ומלאי מעודכנים, מה לעשות עם הנחות במטמון, ומי אחראי על החיבורים אחרי המסירה. להלן תשובות קצרות לכל אחד, בלי מילים כלליות.

את כל התרחישים לפני ריליס מריצים על מעגל בדיקה של מערכת ה-ERP: אי-התאמה, זינוק בעומס, אי-זמינות של שירות חיצוני.

איך לא לקבל חוסר סנכרון בין קטלוג, מחירים ומלאי?

החזית קוראת לא את מערכת ה-ERP ישירות, אלא עותק משלה של הנתונים. השינויים מגיעים כזרם אירועים, האפליקציה מיישמת אותם באופן אידמפוטנטי — חזרה על אירוע לא שוברת את המצב. פעם ביום משווים חתך מלא ומשלימים בפערים את מה שאבד בזרם.

מה עם המטמון אם מבצעים והנחות משתנים כל יום?

מדורים סטטיים וכרטיסים מוגשים משכבת המטמון לזמן ארוך, מחירים אישיים, סל וזמינות — לא נשמרים במטמון. עם תחילת המבצע יוצאת ביטול תוקף ממוקד במוצרים ובקטגוריות שנפגעו, ולכן המחיר החדש מופיע בחזית בתוך דקה, ולא אחרי חימום מלא.

אפשר לעלות בשלבים, ולא בבת אחת?

כן, ולרוב כך אנחנו עושים. שלב ראשון — קטלוג וכרטיסי מוצר, אחר כך סל וקופה, לאחר מכן אזור אישי ותוכניות נאמנות. כל שלב מועלה לתעבורת פרודקשן בנפרד, והמעגל הישן נשאר פעיל עד לתוצאה מאושרת.

מי אחראי על האינטגרציות אחרי מסירת הפרויקט?

מוסרים את סכמת הקשרים, חוזי ההחלפה, יומן שינויים והוראות לתקלות אופייניות — צוות הלקוח יכול לתחזק את הקשרים בעצמו. אם נוח יותר להעביר אלינו, אנחנו לוקחים תחזוקה: כוננות, ניטור תורים, עדכון בעת שינוי בממשק התכנות של מערכת ה-ERP.

מה יראה הקונה אם מערכת ה-ERP אינה זמינה?

החזית ממשיכה לעבוד: הקטלוג והמלאי מוגשים מחתך מקומי. ההזמנות נכנסות לתור ועוברות למערכת ה-ERP לאחר חידוש הקשר, וניסיונות כושלים מגיעים לתור נפרד עם התראה לכונן — הזמנות אבודות לא נשארות.

נדון במשימה: מה לשלוח להערכה ולתוכנית עבודה

ככל שהנתונים הראשוניים מדויקים יותר, כך יש פחות הנחות בהערכה. להלן סט מינימלי של חומרים שמאפשר לחשב את היקף העבודה על חזית ב-Vue/Nuxt ולא לעצב מחדש את סכמת הנתונים באמצע הפרויקט.

  • תיאור הקטלוג והדרישות ממנו. כמה מוצרים וקטגוריות, האם יש וריאציות (מידה, צבע, הרכבה), קינון המדורים, האם דרושים פילטרים לפי מאפיינים ואיך מוצרים נכנסים למבחרים. מזה נגזרים מבנה המסלולים, עימוד ותוכן הבקשות שנשלחות למערכת ה-ERP.
  • מערכת ה-ERP והגישה לנתונים. איזו מערכת מנהלת מוצרים, מלאי, מחירים והזמנות, האם יש לה גישה תכנותית או רק ייצוא, באיזו תדירות המלאי מתעדכן. דרוש מעגל בדיקה — על נתוני פרודקשן הערכה וניפוי שגיאות הופכים לסיכון.
  • הסכימה הנוכחית של החזית. היכן האתר מתארח, מי מגיש את העמודים, איך בנוי המטמון, אילו כתובות כבר מאונדקסות ואיך מוגדרות ההפניות. זה קובע את סדר המעבר בלי לאבד מיקומים בחיפוש.
  • רשימת ערוצי מכירה. אתר, מרקטפלייסים, קמעונאות, אפליקציה — חשוב להבין אם הסל אחיד והמלאי משותף. מכאן נובע איך מפרידים מלאי והיכן בודקים זמינות מוצר.
  • כללי מבצעים, קופונים ומשלוחים. סוגי הנחות ותנאי החפיפה ביניהן, חישוב עלות משלוח לפי אזורים, אינטגרציה עם שירותי משלוח ונקודות איסוף. כללים מורכבים הם לרוב מה שקובע את עומס העבודה.
  • מגבלות בלוחות זמנים ובגישות. מתי דרושה השקה, מי בצד שלכם מספק גישות למערכות ומקבל החלטות בנקודות שנויות במחלוקת. אם יש שלבים שאסור לגעת בהם — סמנו אותם מיד.
  • מדדים נוכחיים, אם החזית כבר פעילה. תעבורה, המרה, שיעור כשלים בקופה, שגיאות תכופות בלוגים. זה בסיס לבדיקה שמאפשר להראות שזה השתפר, ולא רק השתנה.

תארו את המשימה בהיקף הזה — נחזור עם הערכה ותוכנית עבודה, מחולקת לפי שלבים, עם ציון מה דרוש מהצוות שלכם בכל אחד מהם.