דוחות מותאמים אישית למסחר אלקטרוני ב-1C-Bitrix
הדוחות הסטנדרטיים במודול sale מספקים סט קבוע של מדדים: הכנסות, מספר הזמנות, המרה. כאשר אתה צריך פילוח לקוחות לפי מנהלים כולל החזרות, או פילוח רווחיות לפי קטגוריות, אתה מוצא את עצמך מייצא נתונים ידנית ל-Excel. כמעט בכל פרויקט, הלקוח מבלה תחילה שבועות בניתוח ידני ואז מבקש אוטומציה.
אנו מפתחים דוחות מותאמים אישית באמצעות D7 ORM המעניקים לך שליטה מלאה על הנתונים: קיבוץ שרירותי, טבלאות צולבות, ייצוא אוטומטי. לאחר יישום דוח כזה, לקוח אחד צמצם את זמן הדיווח החודשי מיומיים לשעה אחת—חיסכון של כ-2,500 אירו לחודש בעלויות עבודה—והפסיק לעשות שגיאות במספרים.
אילו בעיות פותרים דוחות מותאמים אישית?
דוחות סטנדרטיים ממודול המכירות אינם תומכים בטבלאות צולבות. עבור חנויות עם מחזור של כמה אלפי הזמנות בחודש, הם אינם מספיקים. דוחות מותאמים אישית על D7 ORM מספקים גמישות שאינה זמינה בפונקציונליות המוכנה.
דוחות סטנדרטיים: מה קיים ומה חסר
המודול sale מציע מספר דוחות מובנים דרך הרכיב bitrix:sale.report.construct. המגבלות שלהם:
- סט קבוע של קיבוצים—לא ניתן להוסיף שדות מותאמים אישית
- אין טבלאות צולבות (pivot)—לא ניתן לבנות מטריצת "מוצר × אזור"
- אין ניתוח קבוצות (cohort) או ניתוח RFM
- ייצוא רק ל-CSV עם עיצוב מוגבל
- אין מדדים מורכבים (LTV, ערך הזמנה ממוצע כולל החזרות)
שאילתות ORM דרך OrderTable וישויות קשורות
הבסיס לניתוח מותאם אישית הוא Bitrix D7 ORM. טבלאות מפתח:
| מחלקת ORM | מטרה | שדות מפתח |
|---|---|---|
\\Bitrix\\Sale\\Internals\\OrderTable |
הזמנות | ID, DATE_INSERT, USER_ID, PRICE, STATUS_ID, RESPONSIBLE_ID |
\\Bitrix\\Sale\\Internals\\BasketTable |
פריטי סל | ORDER_ID, PRODUCT_ID, QUANTITY, PRICE, DISCOUNT_PRICE |
\\Bitrix\\Sale\\Internals\\ShipmentTable |
משלוחים | ORDER_ID, DELIVERY_ID, STATUS_ID, DATE_DEDUCTED |
\\Bitrix\\Sale\\Internals\\PaymentTable |
תשלומים | ORDER_ID, PAY_SYSTEM_ID, SUM, PAID, DATE_PAID |
\\Bitrix\\Sale\\Internals\\OrderPropsValueTable |
מאפייני הזמנה | ORDER_ID, ORDER_PROPS_ID, VALUE |
ORM מאפשר בניית שאילתות עם JOINs, קיבוץ ופונקציות אגרגציה ללא SQL גולמי. דוח מותאם אישית על D7 ORM מעבד סיכום של 100,000 הזמנות פי 3 מהר יותר מדוח מקביל המשתמש בסוכנים.
דוגמה לשאילתת ORM עם קיבוץ
$result = OrderTable::getList([
'select' => [
'MONTH' => new ExpressionField('MONTH', "DATE_TRUNC('month', %s)", ['DATE_INSERT']),
'RESPONSIBLE_ID',
'TOTAL' => new ExpressionField('TOTAL', 'SUM(%s)', ['PRICE']),
'CNT' => new ExpressionField('CNT', 'COUNT(%s)', ['ID']),
],
'filter' => [
'>=DATE_INSERT' => DateTime::createFromPhp(new \DateTime('last year')),
'!STATUS_ID' => 'F',
],
'group' => ['MONTH', 'RESPONSIBLE_ID'],
'order' => ['MONTH' => 'ASC'],
]); מדוע ORM יעיל יותר מדוחות סטנדרטיים?
שאילתות ORM מספקות קיבוץ שרירותי: לפי תקופות, מוצרים, מנהלים, אזורים. עבור שאילתות מורכבות עם תת-שאילתות, אנו משתמשים ב-$result = OrderTable::getList([ 'select' => [ 'MONTH' => new ExpressionField('MONTH', "DATE_TRUNC('month', %s)", ['DATE_INSERT']), 'RESPONSIBLE_ID', 'TOTAL' => new ExpressionField('TOTAL', 'SUM(%s)', ['PRICE']), 'CNT' => new ExpressionField('CNT', 'COUNT(%s)', ['ID']), ], 'filter' => [ '>=DATE_INSERT' => DateTime::createFromPhp(new \DateTime('last year')), '!STATUS_ID' => 'F', ], 'group' => ['MONTH', 'RESPONSIBLE_ID'], 'order' => ['MONTH' => 'ASC'], ]); ישירות.
ויזואליזציה וייצוא
סט ויזואליזציה טיפוסי: תרשים קו למגמות, תרשים עמודות להשוואה, תרשים דונאט לחלקים, מפת חום לפעילות. ייצוא ל-Excel דרך PhpSpreadsheet:
cd /home/bitrix/www/local composer require phpoffice/phpspreadsheet PhpSpreadsheet מייצר קבצים עם עיצוב, נוסחאות וגיליונות מרובים—מחלקות הנהלת חשבונות משתמשות בהם ללא שינויים.
צלילה עמוקה: דוח ניתוח RFM
ניתוח RFM מקטע לקוחות לפי שלושה פרמטרים: Recency, Frequency, Monetary. כל פרמטר מקבל ציון מ-1 עד 5 (קווינטילים). 125 פלחים מקובצים לקטגוריות: "נאמנים", "רדומים", "אבודים", "לקוחות פוטנציאליים חדשים".
אלגוריתם:
- בחירת לקוחות עם הזמנות שהושלמו ב-12 החודשים האחרונים.
- לכל אחד, חישוב תאריך ההזמנה האחרון, מספר הזמנות, סכום כולל.
- חלוקה לקווינטילים דרך
$DB->Query(). - הקצאת פלח לפי שילוב R-F-M.
שאילתת SQL למדדים:
SELECT o.USER_ID,
MAX(o.DATE_INSERT) AS last_order_date,
EXTRACT(DAY FROM NOW() - MAX(o.DATE_INSERT)) AS recency_days,
COUNT(o.ID) AS frequency,
SUM(o.PRICE) AS monetary
FROM b_sale_order o
WHERE o.STATUS_ID NOT IN ('F', 'CA')
AND o.DATE_INSERT >= NOW() - INTERVAL '12 months'
AND o.PAYED = 'Y'
GROUP BY o.USER_IDמיפוי פלחים:
| פלח | R | F | M | פעולה |
|---|---|---|---|---|
| אלופים | 5 | 5 | 5 | תוכנית נאמנות |
| נאמנים | 3-5 | 3-5 | 3-5 | מכירה נוספת, הפניות |
| מבטיחים חדשים | 5 | 1 | 1-3 | הטמעה |
| רדומים | 2-3 | 2-3 | 2-3 | הפעלה מחדש |
| בסיכון | 1-2 | 3-5 | 3-5 | הפעלה מחדש דחופה |
| אבודים | 1 | 1-2 | 1-2 | החזרת לקוחות |
דוח ה-RFM מוצג כטבלה עם סינון וויזואליזציית treemap. הנתונים נשמרים במטמון—חישוב מחדש עבור 50,000 לקוחות לוקח 10-15 שניות.
מה כלול בעבודה
לאחר הסכמה על העיצוב והמדדים, אנו:
- מתכננים שאילתות ומבצעים אופטימיזציה של אינדקסים.
- מיישמים לוח מחוונים עם מסננים וויזואליזציה.
- מגדירים ייצוא ל-Excel/CSV.
- מכינים תיעוד על מבנה הנתונים והאלגוריתמים.
- מבצעים הדרכת עובדים על שימוש בדוחות.
- מספקים 30 ימי תמיכה חינם לאחר ההשקה.
בנוסף, אתה מקבל גישה מלאה לפאנל הניהול, מאגר פיתוח (אם תרצה), והבטחת ביצועים: דוחות נטענים תוך פחות מ-3 שניות עבור עד 100,000 הזמנות.
שלבי פיתוח
| שלב | תוכן | משך |
|---|---|---|
| אנליטיקה | הגדרת מדדים, חיתוכים, עיצוב לוח מחוונים | 2-3 ימים |
| עיצוב שאילתות | שאילתות ORM, אופטימיזציית אינדקסים | 3-5 ימים |
| ויזואליזציה | עיצוב לוח מחוונים, גרפי Chart.js, מסננים | 3-4 ימים |
| ייצוא | PhpSpreadsheet, עיצוב | 1-2 ימים |
| בדיקות | אימות על נפחים גדולים, בדיקות עומס | 2-3 ימים |
לוחות זמנים ועלות
לוחות הזמנים מתחילים מ-5 ימי עסקים לדוח פשוט (החל מ-1,200 אירו), מ-15 ימים ללוח מחוונים מקיף עם RFM וקבוצות (החל מ-3,500 אירו). העלות מחושבת באופן אישי לאחר ניתוח מסד הנתונים והדרישות שלך. הזמן שנחסך בהכנת דוחות מחזיר את ההשקעה בפיתוח תוך כמה חודשים. לדוגמה, לקוח אחד חוסך 2,500 אירו לחודש לאחר השקעה של 3,500 אירו. יש לנו ניסיון של 7+ שנים בפיתוח 1C-Bitrix והשלמנו מעל 50 פרויקטים של דוחות מותאמים אישית. צור קשר—אנו נעצב דוח המותאם למשימה שלך.
הבטחות ואמון
- 30 ימי תמיכה חינם לאחר ההשקה
- הבטחת ביצועים: לוחות מחוונים נטענים בפחות מ-3 שניות עבור עד 100 אלף הזמנות
- מפתחי Bitrix מוסמכים עם מומחיות מוכחת
- אנו מספקים תוכנית פרויקט מפורטת ולוח זמנים מראש

