פיתוח מערכת קאשבק מותאמת אישית על 1C-Bitrix

פיתוח מערכת קאשבק מותאמת אישית על 1C-Bitrix פיתוח מערכת קאשבק מותאמת אישית על 1C-Bitrix הופך להכרחי כאשר נקודות בונוס סטנדרטיות אינן עונות על צרכי העסק. תרחיש טיפוסי: חנות מקוונת עם 50,000 מוצרים שבה הלקוחות מצפים לקאשבק לא רק כאחוז קבוע על ה-
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
פיתוח מערכת קאשבק מותאמת אישית על 1C-Bitrix
בינוני
~1-2 שבועות

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

שאלות נפוצות

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

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    880
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1163

פיתוח מערכת קאשבק מותאמת אישית על 1C-Bitrix

פיתוח מערכת קאשבק מותאמת אישית על 1C-Bitrix הופך להכרחי כאשר נקודות בונוס סטנדרטיות אינן עונות על צרכי העסק. תרחיש טיפוסי: חנות מקוונת עם 50,000 מוצרים שבה לקוחות מצפים לקאשבק לא רק כאחוז קבוע על כל הקבלה, אלא לפי קטגוריות—5% על סמארטפונים, 3% על אביזרים, ו-1% על השאר. המודול המובנה sale אינו יכול להתמודד עם אחוזים שונים, פקיעת נקודות, או היסטוריית עסקאות מפורטת. בנינו פתרון שמכסה את כל הפערים הללו. מתחת למכסה המנוע: טבלאות מותאמות אישית, אירועים וסוכנים. נסביר איך זה עובד ואילו מלכודות נתקלנו בהן בפועל. הניסיון שלנו: מעל 50 הטמעות, עלייה ממוצעת של 25% ברכישות חוזרות. עבור חנות טיפוסית, זה מתורגם להכנסה נוספת משמעותית לכל הזמנה חוזרת. אם אתה צריך מערכת קאשבק שבאמת עובדת, התחל בניתוח כללי הנאמנות שלך. בקש פיתוח מערכת קאשבק מותאמת אישית לצרכים שלך.

למה המודול הסטנדרטי של Bitrix אינו מתאים למערכת קאשבק

המודול המובנה sale צובר נקודות כאחוז קבוע מסכום ההזמנה הכולל. אין היסטוריית צבירה, תקופות פקיעה, או כללים מבוססי קטגוריה. עבור נאמנות מלאה עם קאשבק, נדרשת תוכנית מותאמת אישית. אנו משתמשים בטבלאות מותאמות אישית (ראה להלן) ובמטפלי אירועים. נקודות בונוס של 1C-Bitrix אינן מכסות כללים מותאמים אישית. מערכת מותאמת אישית היא פי 4 גמישה יותר מהמערכת הסטנדרטית: ניתן להגדיר כל אחוז לקטגוריה, מותג, או מוצר בודד.

איך מערכת קאשבק מותאמת אישית עובדת על 1C-Bitrix

ארכיטקטורת אחסון נתונים — פיתוח קאשבק מותאם אישית

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

CREATE TABLE b_cashback_account ( ID INT AUTO_INCREMENT PRIMARY KEY, USER_ID INT NOT NULL UNIQUE, BALANCE DECIMAL(10,2) NOT NULL DEFAULT 0.00, TOTAL_EARNED DECIMAL(10,2) NOT NULL DEFAULT 0.00, TOTAL_SPENT DECIMAL(10,2) NOT NULL DEFAULT 0.00, UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_user (USER_ID) ); CREATE TABLE b_cashback_transaction ( ID INT AUTO_INCREMENT PRIMARY KEY, USER_ID INT NOT NULL, ORDER_ID INT NULL, TYPE ENUM('earn', 'spend', 'expire', 'adjust') NOT NULL, AMOUNT DECIMAL(10,2) NOT NULL, BALANCE_AFTER DECIMAL(10,2) NOT NULL, DESCRIPTION VARCHAR(500) NOT NULL DEFAULT '', STATUS ENUM('pending', 'confirmed', 'cancelled') NOT NULL DEFAULT 'pending', EXPIRES_AT DATE NULL, CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_user_type (USER_ID, TYPE), INDEX idx_order (ORDER_ID), INDEX idx_expires (EXPIRES_AT, STATUS) ); CREATE TABLE b_cashback_rule ( ID INT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(255) NOT NULL, CONDITION_TYPE ENUM('category', 'brand', 'product', 'order_total', 'all') NOT NULL, CONDITION_VALUE VARCHAR(1000) NULL, CASHBACK_PERCENT DECIMAL(5,2) NOT NULL, MIN_ORDER_AMOUNT DECIMAL(10,2) NOT NULL DEFAULT 0.00, ACTIVE CHAR(1) NOT NULL DEFAULT 'Y', SORT INT NOT NULL DEFAULT 100, DATE_FROM DATE NULL, DATE_TO DATE NULL, INDEX idx_active_sort (ACTIVE, SORT) ); 

חישוב אחוז הקאשבק עבור פריטי עגלה

הכללים מוחלים לפי עדיפות (SORT). עבור כל פריט בעגלה, אנו מחפשים כלל תואם. הנה אלגוריתם PHP מפושט:

class RuleCalculator { public static function calculateForOrder(\Bitrix\Sale\Order $order): array { $result = []; $basket = $order->getBasket(); $activeRules = self::getActiveRules(); foreach ($basket as $basketItem) { $productId = $basketItem->getProductId(); $price = $basketItem->getFinalPrice(); $qty = $basketItem->getQuantity(); $productMeta = self::getProductMeta($productId); $matchedRule = self::findRule($productMeta, $order->getPrice(), $activeRules); if ($matchedRule) { $cashbackAmount = round($price * $qty * $matchedRule['CASHBACK_PERCENT'] / 100, 2); $result[] = [ 'PRODUCT_ID' => $productId, 'PRODUCT_NAME' => $basketItem->getField('NAME'), 'RULE_ID' => $matchedRule['ID'], 'RULE_NAME' => $matchedRule['NAME'], 'PERCENT' => $matchedRule['CASHBACK_PERCENT'], 'CASHBACK_AMOUNT' => $cashbackAmount, ]; } } return $result; } } 

איך צבירת קאשבק ופקיעה עובדות

קאשבק נצבר בסטטוס CREATE TABLE b_cashback_account ( ID INT AUTO_INCREMENT PRIMARY KEY, USER_ID INT NOT NULL UNIQUE, BALANCE DECIMAL(10,2) NOT NULL DEFAULT 0.00, TOTAL_EARNED DECIMAL(10,2) NOT NULL DEFAULT 0.00, TOTAL_SPENT DECIMAL(10,2) NOT NULL DEFAULT 0.00, UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_user (USER_ID) ); CREATE TABLE b_cashback_transaction ( ID INT AUTO_INCREMENT PRIMARY KEY, USER_ID INT NOT NULL, ORDER_ID INT NULL, TYPE ENUM('earn', 'spend', 'expire', 'adjust') NOT NULL, AMOUNT DECIMAL(10,2) NOT NULL, BALANCE_AFTER DECIMAL(10,2) NOT NULL, DESCRIPTION VARCHAR(500) NOT NULL DEFAULT '', STATUS ENUM('pending', 'confirmed', 'cancelled') NOT NULL DEFAULT 'pending', EXPIRES_AT DATE NULL, CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_user_type (USER_ID, TYPE), INDEX idx_order (ORDER_ID), INDEX idx_expires (EXPIRES_AT, STATUS) ); CREATE TABLE b_cashback_rule ( ID INT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(255) NOT NULL, CONDITION_TYPE ENUM('category', 'brand', 'product', 'order_total', 'all') NOT NULL, CONDITION_VALUE VARCHAR(1000) NULL, CASHBACK_PERCENT DECIMAL(5,2) NOT NULL, MIN_ORDER_AMOUNT DECIMAL(10,2) NOT NULL DEFAULT 0.00, ACTIVE CHAR(1) NOT NULL DEFAULT 'Y', SORT INT NOT NULL DEFAULT 100, DATE_FROM DATE NULL, DATE_TO DATE NULL, INDEX idx_active_sort (ACTIVE, SORT) ); מיד לאחר ביצוע ההזמנה, ומאושר לאחר המימוש (סטטוס class RuleCalculator { public static function calculateForOrder(\Bitrix\Sale\Order $order): array { $result = []; $basket = $order->getBasket(); $activeRules = self::getActiveRules(); foreach ($basket as $basketItem) { $productId = $basketItem->getProductId(); $price = $basketItem->getFinalPrice(); $qty = $basketItem->getQuantity(); $productMeta = self::getProductMeta($productId); $matchedRule = self::findRule($productMeta, $order->getPrice(), $activeRules); if ($matchedRule) { $cashbackAmount = round($price * $qty * $matchedRule['CASHBACK_PERCENT'] / 100, 2); $result[] = [ 'PRODUCT_ID' => $productId, 'PRODUCT_NAME' => $basketItem->getField('NAME'), 'RULE_ID' => $matchedRule['ID'], 'RULE_NAME' => $matchedRule['NAME'], 'PERCENT' => $matchedRule['CASHBACK_PERCENT'], 'CASHBACK_AMOUNT' => $cashbackAmount, ]; } } return $result; } } ). זה מגן מפני החזרות: אם ההזמנה מבוטלת, העסקה מתבטלת והיתרה נשארת ללא שינוי. סוכן רץ מדי יום כדי להפוג נקודות:

// Агент: \Local\Cashback\ExpirationAgent::run() $expired = $connection->query(" SELECT USER_ID, SUM(AMOUNT) as TOTAL_AMOUNT FROM b_cashback_transaction WHERE TYPE = 'earn' AND STATUS = 'confirmed' AND EXPIRES_AT IS NOT NULL AND EXPIRES_AT < CURDATE() GROUP BY USER_ID ")->fetchAll(); foreach ($expired as $row) { AccountManager::createTransaction( $row['USER_ID'], 'expire', $row['TOTAL_AMOUNT'], 'Сгорание кэшбэка по истечении срока', null, 'confirmed' ); } 

איך לשלם עם קאשבק?

ניתן להשתמש בקאשבק לתשלום עד 50% מההזמנה הבאה. המערכת יוצרת הנחה בסכום קבוע דרך pending. זהו מנגנון Bitrix סטנדרטי, כך שהאינטגרציה עם שערי תשלום (YooKassa, Sber) אינה דורשת התאמות נוספות.

מקרה בוחן: חנות מוצרי חשמל ביתיים

לאחרונה יישמנו מערכת כזו עבור לקוח עם קטלוג של 15,000 פריטים. דרישות: 7% קאשבק על מוצרים עם מרווח מעל 30%, 3% על השאר, פקיעה לאחר 60 יום. הגדרנו 5 כללים: שניים לפי קטגוריה, שלושה לפי ספי סכום הזמנה. הפיתוח ארך 10 ימי עבודה. לאחר ההשקה, שיעור ההמרה של רכישות חוזרות עלה ב-20%.

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

טעויות נפוצות ביישום קאשבק

  1. סטטוס ממתין חסר. אם קאשבק נצבר מיד, נדרש ביטול ידני עבור החזרות.
  2. עיגול שגוי. אחסן סכומים ב-DECIMAL(10,2) כדי למנוע שגיאות מצטברות.
  3. אינדקסים חסרים. בלעדיהם, שאילתות היסטוריה יאטו ככל שהטבלה גדלה.
  4. קונפליקט עם הנחות אחרות. הנחת הקאשבק צריכה להיות מיושמת אחרי כל השאר.

רשימת בדיקה לפני השקה

  • [ ] כל כללי הצבירה הוגדרו.
  • [ ] סוכנים לפקיעה וניקוי הוגדרו.
  • [ ] ביטול הזמנה נבדק — קאשבק מתהפך.
  • [ ] אינטגרציה עם מערכות תשלום אומתה.
  • [ ] הודעת משתמש לצבירה/פקיעה הוגדרה.

מה כלול בעבודה

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

לוחות זמנים לפיתוח

שלב תוכן לוח זמנים
סכמת נתונים טבלאות, אינדקסים, Account Manager 1–2 ימים
כללי צבירה ממשק CRUD + מחשבון 2–3 ימים
צבירה ואישור מטפלי אירועי הזמנה 1–2 ימים
הוצאת תשלום אינטגרציה עם הנחות Bitrix 2–3 ימים
פקיעה וסוכן סוכן + לוגיקת פקיעה יום אחד
חשבון אישי היסטוריה, יתרה, ממשק תשלום 2–3 ימים

לוחות הזמנים הם אינדיקטיביים; הערכות מדויקות ניתנות לאחר ניתוח. העלות מחושבת באופן פרטני לפי מורכבות הכללים והאינטגרציות. המהנדסים שלנו הם מומחי 1C-Bitrix מוסמכים עם ניסיון של מעל 10 שנים. יישמנו מעל 50 מערכות קאשבק. נבחן את הפרויקט שלך תוך יום. קבל ייעוץ למשימה שלך. צור קשר להערכת פרויקט.

השוואה מודול סטנדרטי מערכת מותאמת אישית
גמישות כללים רק % מהסכום הכולל לפי קטגוריה, מותג, מוצר, ספים
תקופת פקיעה אין ניתנת להגדרה
היסטוריית עסקאות מוגבלת מלאה, עם סוג וסטטוס
אינטגרציית 1C אין דרך CommerceML ו-REST