מצב טיפוסי: חנות על OpenCart מאטה עם קטלוג של 50,000 מוצרים, והעברה ל-Shopify בלתי אפשרית בגלל מאפיינים מותאמים אישית ספציפיים. Craft CMS היא מערכת ניהול תוכן בקוד פתוח על Yii2, והתוסף המסחרי שלה Craft Commerce מאפשר יצירת קטלוג בכל מורכבות ללא מגבלות תבנית. בניגוד לפלטפורמות מונוליטיות, אנחנו לא כופים ערכת נושא או מבנה: הכל נבנה דרך מערכת גמישה של שדות, סעיפים ותבניות Twig, כולל מצב headless. במשך יותר מחמש שנים, פרסנו יותר מ-30 חנויות על Craft Commerce, ואף אחת לא דרשה שכתוב של הליבה. חיסכון בעלויות תפעול לתחזוקת חנות כזו מסתכם ב-20–30% בהשוואה לפתרונות דומים. קבלו ייעוץ לפרויקט שלכם.
בעיות שאנחנו פותרים
הבעיה הראשונה היא שאילתות N+1 בעת הצגת קטלוג עם וריאנטים. אם יש לכם 1,000 מוצרים, כל אחד עם 5 וריאנטים (מידה, צבע), שאילתה נאיבית מייצרת 5,001 שאילתות SQL. זה מוביל ל-TTFB של יותר מ-3 שניות. אנחנו משתמשים ב-Eager Loading דרך with() ו-withTransforms() לתמונות, ומצמצמים את מספר השאילתות לשתיים. מנגנון זה מובנה בליבה ואינו דורש תוספים נוספים.
הבעיה השנייה היא גמישות מאפיינים. פלטפורמות סטנדרטיות אינן מאפשרות יצירת שדות מותאמים אישית לכל סוג מוצר. ב-Craft Commerce, לכל סוג מוצר (Product Type) יש פריסת שדות משלו (Field Layout), המאפשרת אחסון סטים שונים של מאפיינים לבגדים, אלקטרוניקה ומזון בקטלוג אחד. לדוגמה, נעליים דורשות מידה, רוחב, חומר, בעוד שלפטופים דרושים מעבד, זיכרון RAM, שטח דיסק. זה מיושם ללא פריצות.
הבעיה השלישית היא ביצועי עגלת הקניות. עם מספר גדול של פריטי שורה (Line Items), אחסון הסשן הופך לאיטי. אנחנו מעבירים את עגלת הקניות ל-Redis ומגדירים את ה-Queue למשימות רקע. השוו אפשרויות אחסון:
| שיטת אחסון | ביצועים | מורכבות הגדרה |
|---|---|---|
| PHP Sessions | נמוכים (עד 1,000 פריטי שורה) | מינימלית |
| Redis | גבוהים (עד 100,000 פריטי שורה) | בינונית |
| MySQL | בינוניים | נמוכה |
לפרויקטים עם משתמשים מקבילים רבים, Redis היא הבחירה האופטימלית. הטמעת Redis עולה בערך $50 לחודש עבור מופע קטן ומפחיתה את עומס שרת מסד הנתונים בעד 40%.
למה Craft Commerce עדיף על OpenCart לקטלוגים מורכבים
OpenCart אינו תומך בווריאנטים של מוצרים כאלמנטים עצמאיים—כל וריאנט דורש מוצר נפרד. Craft Commerce משתמש בווריאנטים של מוצרים (Product Variants), שכל אחד מהם הוא אלמנט עם SKU, מחיר ומלאי משלו. זה מפשט ניהול של אלפי שילובי מידות. השוו בטבלה:
| קריטריון | OpenCart | Craft Commerce |
|---|---|---|
| וריאנטים של מוצרים | טבלה שטוחה | אלמנטים מקוננים |
| שדות מותאמים אישית | רק עבור המוצר כולו | לכל סוג מוצר |
| GraphQL API | תוסף צד שלישי | מובנה (Craft Pro) |
| ריבוי מטבעות | מודולים נוספים | מובנה |
| ניהול מבצעים | הנחה בסיסית | מכירות + הנחות |
איך אנחנו עושים את זה: מחסנית וקונפיגורציה
אנחנו משתמשים במחסנית עדכנית: PHP 8.3, MySQL 8, Redis, Nginx. קונפיגורציית .env טיפוסית:
CRAFT_ENVIRONMENT=production
SECURITY_KEY=256-bit-random-key
DB_DRIVER=mysql
DB_SERVER=127.0.0.1
DB_PORT=3306
DB_DATABASE=craftstore
DB_USER=craftuser
DB_PASSWORD=securepasswordלתרחישי headless, אנחנו משלבים Next.js דרך Apollo Client. דוגמת שאילתת מוצר:
query ShopProducts($type: [String], $limit: Int, $offset: Int) {
products(type: $type, limit: $limit, offset: $offset) {
id
title
slug
variants {
id
sku
price
stock
... on clothing_Variant {
size {
label
value
}
color {
label
value
}
}
}
}
} תהליך העבודה
אנחנו מפרקים את ההתקנה לשלבים, כל אחד עם תוצרים ברורים:
- ניתוח — ביקורת על הקטלוג הקיים, זיהוי חוקים עסקיים (מיסים, משלוחים, הנחות).
- עיצוב — פיתוח מבנה סוגי מוצרים, מטריצת וריאנטים, מפת מאפיינים.
- יישום — התקנת Craft Commerce, הגדרת סוגי מוצרים, שילוב שער Stripe, כתיבת מודולים מותאמים אישית (בקרים, ולידציה).
- בדיקות — אימות כל תרחישי הרכישה, בדיקת עומס על עגלת הקניות.
- פריסה ותמיכה — הגדרת מטמון Redis, ניטור דרך New Relic, העברת גישה לפאנל הניהול ותיעוד.
פרטי יישום של מודול מותאם אישית
ללוגיקה עסקית ספציפית (לדוגמה, חישוב הנחה לפי נוסחה), אנחנו יוצרים מודול על Yii2 שמחובר דרך CRAFT_ENVIRONMENT=production SECURITY_KEY=256-bit-random-key DB_DRIVER=mysql DB_SERVER=127.0.0.1 DB_PORT=3306 DB_DATABASE=craftstore DB_USER=craftuser DB_PASSWORD=securepassword . זה מאפשר הרחבת פונקציונליות ללא שינוי ליבת Craft Commerce.
מה כלול בעבודה
אנחנו מספקים:
- תיעוד — תיאור ארכיטקטורה, הוראות למילוי הקטלוג.
- גישה — לפאנל הניהול, לשרת, למאגר הקוד.
- הדרכה — מפגש של שעתיים למנהלי תוכן.
- תמיכה — 30 ימי אחריות לאחר השקה, כולל תיקוני באגים.
הזמינו התקנת Craft Commerce וקבלו חנות מקוונת מוכנה עם ביצועים מותאמים.
איך להגדיר ריבוי מטבעות ללא כאב ראש?
Craft Commerce Pro תומך בריבוי מטבעות ישירות מהקופסה. פשוט הגדירו שערים ב-query ShopProducts($type: [String], $limit: Int, $offset: Int) { products(type: $type, limit: $limit, offset: $offset) { id title slug variants { id sku price stock ... on clothing_Variant { size { label value } color { label value } } } } } :
'paymentCurrencies' => [ 'USD' => ['rate' => 1], 'EUR' => ['rate' => 0.92], 'RUB' => ['rate' => 90.5], ], והוסיפו מתג מטבע בחזית. כל המחירים, ההנחות והמיסים מחושבים מחדש אוטומטית. תכונה זו לבדה יכולה להגדיל מכירות בינלאומיות ב-15–25%.
לוחות זמנים ועלות משוערים
- התקנה בסיסית + סוג מוצר אחד + תהליך רכישה: 1 עד 2 שבועות, החל מ-$3,000.
- חנות מלאה עם 3–5 סוגי מוצרים, הנחות, ריבוי מטבעות: 4 עד 6 שבועות, החל מ-$8,000.
- חנות headless (Craft GraphQL + חזית Next.js): 6 עד 10 שבועות, החל מ-$15,000.
- העברה מפלטפורמה אחרת: 4 עד 8 שבועות, תלוי בגודל הקטלוג, החל מ-$5,000.
פרויקט טיפוסי עולה פי 2–3 פחות מפרויקט דומה על Magento, עם חיסכון ממוצע של $10,000–$20,000. ההשקעה מחזירה את עצמה תוך 6–12 חודשים. כדי להעריך את הפרויקט שלכם, כתבו לנו — ננתח את הארכיטקטורה ונציע פתרון עם אחריות איכות ותמיכה לשנתיים.







