מחיר מוצר בחנות מקוונת יורד — לקוחות שדחו רכישה או נרשמו למעקב מצפים להודעה. 40% מאלה שמקבלים אימייל כזה מבצעים רכישה תוך 24 שעות. ללא אוטומציה, אתה מסתכן באובדן המכירות האלה: לקוחות יעברו למתחרים שמודיעים ראשונים על ההנחה. אנו מתקינים את מנגנון המעקב והשליחה על 1C-Bitrix במפתח מלא: מניתוח פתרונות קיימים ועד אינטגרציה ובדיקות. אנו מעריכים את הפרויקט שלך תוך יום עסקים אחד ומציעים ארכיטקטורה אופטימלית. המהנדסים שלנו יישמו למעלה מ-50 תרחישים דומים עבור חנויות עם קטלוגים הנעים בין 5,000 ל-200,000 מוצרים. זמן יישום ממוצע הוא 3 ימים. אנו מבטיחים פעולה יציבה ואספקת אימיילים ב-99%.
עבור קטלוג אלקטרוניקה של 50,000 מוצרים, הודעה אוטומטית הגדילה את המרת האימייל ב-35% והעלתה ביקורים חוזרים ב-20%. התראות בזמן משפיעות ישירות על מכירות וחוסכות עלויות משמעותיות על מעקב ידני.
מדוע הודעת ירידת מחיר מגדילה המרה?
הודעת ירידת מחיר היא ערוץ ישיר להחזיר לקוחות. ללא אוטומציה, אתה צריך לעקוב ידנית אחר שינויים ולשלוח הודעות — זה עשרות שעות בחודש. הפתרון שלנו ממכן את התהליך לחלוטין. לדוגמה, עבור קטלוג של 10,000 פריטים, בדיקה ידנית לוקחת 8 שעות בשבוע, בעוד ששליחה אוטומטית מעבדת את כל השינויים בדקות. חיסכון בזמן — עד 30 שעות בחודש, מה שמאפשר למנהלים להתמקד במשימות אחרות.
כיצד פועל מנגנון ההודעה?
המערכת מורכבת משלושה רכיבים: לכידת שינוי מחיר, אחסון הרשמות משתמשים, ושליחת הודעה על ידי סוכן. בואו נסתכל על כל שלב עם דוגמאות קוד.
כיצד נלכד שינוי המחיר?
מחירי הקטלוג מאוחסנים ב-b_catalog_price. כאשר מחיר משתנה דרך ה-API (CCatalogProduct::SetPrice() או \Bitrix\Catalog\PriceTable::update()), האירוע OnCatalogPriceUpdate מופעל. אנו נרשמים אליו:
AddEventHandler('catalog', 'OnCatalogPriceUpdate', function($fields) { $productId = $fields['PRODUCT_ID']; $newPrice = $fields['PRICE']; $typeId = $fields['CATALOG_GROUP_ID']; // тип цены // Получаем старую цену из нашей таблицы снапшотов $oldPrice = PriceSnapshotTable::getLastPrice($productId, $typeId); if ($oldPrice && $newPrice < $oldPrice) { // Ставим задачу на рассылку уведомлений PriceDropQueue::add($productId, $newPrice, $oldPrice); } // Сохраняем новый снапшот PriceSnapshotTable::save($productId, $typeId, $newPrice); }); טבלת התמונת מצב AddEventHandler('catalog', 'OnCatalogPriceUpdate', function($fields) { $productId = $fields['PRODUCT_ID']; $newPrice = $fields['PRICE']; $typeId = $fields['CATALOG_GROUP_ID']; // тип цены // Получаем старую цену из нашей таблицы снапшотов $oldPrice = PriceSnapshotTable::getLastPrice($productId, $typeId); if ($oldPrice && $newPrice < $oldPrice) { // Ставим задачу на рассылку уведомлений PriceDropQueue::add($productId, $newPrice, $oldPrice); } // Сохраняем новый снапшот PriceSnapshotTable::save($productId, $typeId, $newPrice); }); : שדות bl_price_snapshot, product_id, catalog_group_id, price, currency. אינדקסים על recorded_at ו-product_id לחיפוש מהיר. הגירות נעשות דרך catalog_group_id. מקור: תיעוד API של 1C-Bitrix
כיצד מאוחסנות הרשמות משתמשים?
צור טבלה \Bitrix\Main\Entity\Base עם שדות:
-
bl_price_watch— מזהה מ-user_id(NULL לאנונימיים) -
b_user— אימייל להודעה -
email— מזהה מוצר -
product_id— מחיר רצוי (אופציונלי, NULL = כל ירידה) -
target_price -
created_at— תאריך ההודעה האחרונה
כפתור "צפה במחיר" בעמוד המוצר שולח בקשת AJAX שמכניסה שורה ל-notified_at. עבור משתמשים מחוברים, האימייל נלקח אוטומטית מ-bl_price_watch.
כיצד נשלחות הודעות?
סוכן רץ כל 30 דקות, קורא את התור b_user, ועבור כל מוצר מוצא מנויים ב-bl_price_drop_queue כאשר bl_price_watch. ההודעה נשלחת דרך target_price IS NULL OR target_price >= new_price עם סוג האירוע \Bitrix\Main\Mail\Event::send():
\Bitrix\Main\Mail\Event::send([ 'EVENT_NAME' => 'CATALOG_PRICE_DROP', 'LID' => SITE_ID, 'C_FIELDS' => [ 'USER_EMAIL' => $subscriber['email'], 'PRODUCT_NAME' => $productName, 'OLD_PRICE' => number_format($oldPrice, 0, '.', ' '), 'NEW_PRICE' => number_format($newPrice, 0, '.', ' '), 'PRODUCT_URL' => $productUrl, 'DISCOUNT_PCT' => round((1 - $newPrice / $oldPrice) * 100), ], ]); לאחר השליחה, הגדר CATALOG_PRICE_DROP. לוגיקה נוספת: אין לשלוח הודעה שוב עבור אותו מוצר יותר מפעם אחת בכל 7 ימים.
כיצד להימנע מהודעות כפולות עבור אותו מוצר?
כדי למנוע ספאם, אנו משתמשים בסילוק כפילויות: הסוכן בודק את השדה \Bitrix\Main\Mail\Event::send([ 'EVENT_NAME' => 'CATALOG_PRICE_DROP', 'LID' => SITE_ID, 'C_FIELDS' => [ 'USER_EMAIL' => $subscriber['email'], 'PRODUCT_NAME' => $productName, 'OLD_PRICE' => number_format($oldPrice, 0, '.', ' '), 'NEW_PRICE' => number_format($newPrice, 0, '.', ' '), 'PRODUCT_URL' => $productUrl, 'DISCOUNT_PCT' => round((1 - $newPrice / $oldPrice) * 100), ], ]); ואינו שולח הודעה נוספת אם פחות מ-7 ימים חלפו מאז השליחה האחרונה. בנוסף, אנו יכולים להוסיף בדיקה על שינוי מחיר: אם המחיר החדש שונה מהמחיר בזמן ההודעה האחרונה בפחות מ-5%, ההודעה גם לא נשלחת. זה מפחית עומס על מערכת הדואר ומגביר את אמון המשתמשים.
| רכיב | מטרה | מורכבות משוערת |
|---|---|---|
| מטפל OnCatalogPriceUpdate | לכידת שינויי מחיר | בינונית |
| טבלאות bl_price_snapshot ו-bl_price_watch | אחסון היסטוריה והרשמות | נמוכה |
| כפתור UI ב-catalog.element | ממשק הרשמה | בינונית |
| תבנית דואר CATALOG_PRICE_DROP | תבנית אימייל | נמוכה |
| סוכן שליחה | שליחת הודעות (סילוק כפילויות) | גבוהה |
השוואה בין גישה ידנית לאוטומטית
| פרמטר | שיטה ידנית | שיטה אוטומטית |
|---|---|---|
| זמן מעקב | 8 שעות בשבוע | 0 שעות |
| דיוק | עד 5% שגיאות | 100% |
| מהירות תגובה | עד 24 שעות | עד 30 דקות |
| המרת אימייל | 20% | 40% |
שליחה אוטומטית עובדת פי 4 מהר יותר משיטה ידנית ומכפילה את ההמרה.
מה כלול בהתקנה?
- פיתוח המטפל
notified_at = NOW()עם רישום תמונת מצב ויצירת משימת תור. - יצירת טבלאות
notified_atו-OnCatalogPriceUpdateעם אינדקסים והגירות נדרשים. - פיתוח רכיב "צפה במחיר" לעמוד המוצר (מותאם לתבנית שלך).
- יצירת אירוע הדואר
bl_price_snapshotותבנית אימייל HTML. - כתיבת סוכן השליחה עם סילוק כפילויות ובקרת תדירות.
- הגדרת מטמון מתויג להפחתת עומס.
- בדיקות על קטלוג חי: אימות כל התרחישים (ירידת מחיר, עלייה, מחיר יעד).
- מסירת תיעוד והדרכה למפתחים שלך.
בעבודתנו, אנו משתמשים בתבניות מוכחות ו-API רשמיים.
תהליך העבודה
- ניתוח — אנו לומדים את הקטלוג שלך, סוגי מחירים, עומס. אנו מכינים מפרט טכני.
- עיצוב — אנו מגדירים מבנה טבלאות, ארכיטקטורת סוכן.
- פיתוח — אנו מיישמים קוד, תבניות, ממשק.
- בדיקות — אנו מריצים על סביבת staging עם הנתונים שלך, מתקנים באגים.
- פריסה — אנו מעלים לייצור, מגדירים ניטור.
- תמיכה — שירות אחריות ל-30 יום.
לוח זמנים משוער
מ-3 עד 5 ימי עסקים, תלוי במורכבות הקטלוג והתבנית. העלות מחושבת בנפרד לאחר הניתוח.
קבל ייעוץ — אנו נעריך את הפרויקט שלך ונציע את הפתרון הטוב ביותר. צור קשר כדי לדון בפרטים. הזמן ביקורת חינם של מנגנון ההודעה הנוכחי שלך.







