ל-Bitrix אין מנגנון מובנה לתשלומים חוזרים. כל פרויקט מנויים דורש פיתוח מותאם אישית — החל מתכנון טבלאות ועד אינטגרציה עם שערי תשלום. יישמנו למעלה מ-30 פרויקטי מנויים ב-Bitrix: מגישה לתוכן בתשלום ועד אספקת מוצרים אוטומטית. לדוגמה, עבור חנות קוסמטיקה מקוונת, בנינו מערכת מנויים חודשית לערכות. היא מטפלת ב-5,000 מנויים פעילים עם חיוב אוטומטי דרך YooKassa, עם אחוז הצלחה של 95%+. מנוי הוא מודל עסקי שבו לקוח משלם באופן קבוע עבור מוצר או שירות. אם אתם נתקלים בחוסר פונקציונליות — אתם לא לבד. פתרונות סטנדרטיים חסרים גמישות: צריך לאחסן סטטוסים, לנהל תקופות, ולטפל בביטולים. אנו מציעים ארכיטקטורה מוכנה המבוססת על Bitrix ORM המכסה משימות אלו. המומחיות שלנו כוללת את כל ההיבטים של מנויי Bitrix: תשלומים חוזרים Bitrix, מנוי Bitrix, פיתוח מנויים 1C-Bitrix, מנוי Bitrix, תשלומי מנויים Bitrix, מערכת מנויים Bitrix, חיובים חוזרים Bitrix, YooKassa Bitrix, ו-CloudPayments Bitrix.
סוגי מנויים הניתנים ליישום ב-Bitrix
לפני התכנון, חשוב להבין את המודל העסקי. ישנם שלושה סוגים עיקריים:
| סוג | תיאור | יישום טכני |
|---|---|---|
| גישה לתוכן | אזור בתשלום, חומרים סגורים | קבוצות משתמשים + הגבלות גישה |
| מנוי מוצר | אספקת מוצרים קבועה | יצירת הזמנות אוטומטית |
| מנוי שירות | SaaS, רישיון, תמיכה טכנית | סטטוס חשבון + חידוש אוטומטי |
לכל שלושת הסוגים יש מאפיינים משותפים: חיוב תקופתי וניהול סטטוס גישה.
ארכיטקטורת אחסון נתונים ו-agents
הליבה של המערכת היא טבלת המנויים. היא נוצרת דרך Bitrix ORM (בירושה מ-\Bitrix\Main\ORM\Data\DataManager). ארכיטקטורת ה-ORM החדשה טובה פי 1.5 מפניות SQL ישירות במהירות הפיתוח, ומפחיתה את הזמן ב-40%.
class SubscriptionTable extends DataManager { public static function getTableName(): string { return 'b_local_subscription'; } public static function getMap(): array { return [ new IntegerField('ID', ['primary' => true, 'autocomplete' => true]), new IntegerField('USER_ID', ['required' => true]), new IntegerField('PLAN_ID', ['required' => true]), new EnumField('STATUS', ['values' => ['TRIAL', 'ACTIVE', 'PAST_DUE', 'CANCELLED', 'EXPIRED']]), new DatetimeField('CURRENT_PERIOD_START'), new DatetimeField('CURRENT_PERIOD_END'), new DatetimeField('TRIAL_END'), new StringField('PAYMENT_TOKEN'), new IntegerField('PAY_SYSTEM_ID'), new StringField('CANCEL_REASON'), new DatetimeField('CANCELLED_AT'), new DatetimeField('CREATED_AT'), ]; } } class SubscriptionPlanTable extends DataManager { // ID, NAME, PRICE, CURRENCY, PERIOD_DAYS, TRIAL_DAYS, // IBLOCK_SECTION_IDS, FEATURES (JSON) } כדי לעבד מנויים, סקריפט cron — agent — רץ כל יום. הוא מוצא מנויים עם תקופה שפגה ומנסה לחייב:
$expiring = SubscriptionTable::getList([ 'filter' => [ 'STATUS' => ['ACTIVE', 'PAST_DUE'], '<=CURRENT_PERIOD_END' => new DateTime(), ] ])->fetchAll(); foreach ($expiring as $sub) { try { $result = chargeSubscription($sub); if ($result->isSuccess()) { SubscriptionTable::update($sub['ID'], [ 'STATUS' => 'ACTIVE', 'CURRENT_PERIOD_START' => new DateTime(), 'CURRENT_PERIOD_END' => (new DateTime())->modify('+' . $planPeriodDays . ' days'), ]); } else { handlePaymentFailure($sub); } } catch (\Exception $e) { logError($e, $sub); } } הגדרת תשלומים חוזרים
החלק המורכב ביותר הוא החיוב האוטומטי. אנו משלבים YooKassa או CloudPayments — שתיהן תומכות בשמירת כרטיס ובתשלומים חוזרים דרך API. לצורך בחירה, השוו בין התכונות:
| פרמטר | YooKassa | CloudPayments |
|---|---|---|
| פשטות אינטגרציה | גבוהה | בינונית |
| גמישות בטיפול בשגיאות | בסיסית | מורחבת |
| עמלה לכל תשלום מוצלח | 2.5-3.5% | 2.3-3.2% |
תהליך:
- תשלום ראשון — תשלום רגיל, קבלת payment_method_id.
- שמירת ה-token ב-SubscriptionTable.PAYMENT_TOKEN.
- ב-CURRENT_PERIOD_END, קריאה ל-API עם ה-token.
$payment = new \YooKassa\Client(); $payment->setAuth($shopId, $secretKey); $response = $payment->createPayment([ 'amount' => ['value' => $plan->getPrice(), 'currency' => 'RUB'], 'payment_method_id' => $subscription->getPaymentToken(), 'capture' => true, 'description' => 'Подписка ' . $plan->getName() . ' #' . $subscription->getId(), ]); מידע נוסף על טיפול בשגיאות חיוב
אנו מיישמים בנוסף טיפול בחיובים לא מוצלחים עם הסלמה: לאחר 3 ניסיונות כושלים, המנוי מועבר ל-PAST_DUE, והלקוח מקבל הודעה. זה מפחית את הסיכון לחסימה בלתי צפויה.
ניהול גישה מבוססת מנוי
עבור מנויי גישה לתוכן, אנו משתמשים בקבוצות משתמשים של Bitrix. לכל תוכנית יש קבוצה משלה. בעת הפעלה, המשתמש מתווסף; בעת פקיעת תוקף, הוא מוסר. זכויות הגישה מנוהלות דרך זכויות קבוצה על בלוקי מידע. עבור מנויי מוצר — יצירת הזמנות אוטומטית דרך סל הקניות. הפתרון מתקנה ל-10,000 מנויים פעילים ללא ירידה בביצועים.
CUser::SetUserGroup($userId, array_merge( CUser::GetUserGroup($userId), [$plan->getGroupId()] )); ניהול מנויים: אזור אישי והודעות
פונקציונליות מינימלית עבור דף ה-class SubscriptionTable extends DataManager { public static function getTableName(): string { return 'b_local_subscription'; } public static function getMap(): array { return [ new IntegerField('ID', ['primary' => true, 'autocomplete' => true]), new IntegerField('USER_ID', ['required' => true]), new IntegerField('PLAN_ID', ['required' => true]), new EnumField('STATUS', ['values' => ['TRIAL', 'ACTIVE', 'PAST_DUE', 'CANCELLED', 'EXPIRED']]), new DatetimeField('CURRENT_PERIOD_START'), new DatetimeField('CURRENT_PERIOD_END'), new DatetimeField('TRIAL_END'), new StringField('PAYMENT_TOKEN'), new IntegerField('PAY_SYSTEM_ID'), new StringField('CANCEL_REASON'), new DatetimeField('CANCELLED_AT'), new DatetimeField('CREATED_AT'), ]; } } class SubscriptionPlanTable extends DataManager { // ID, NAME, PRICE, CURRENCY, PERIOD_DAYS, TRIAL_DAYS, // IBLOCK_SECTION_IDS, FEATURES (JSON) } :
- תוכנית נוכחית וסטטוס.
- תאריך החיוב הבא וסכום.
- היסטוריית תשלומים.
- כפתור 'ביטול' (אופציונלי עם בקשת סיבה).
- שינוי תוכנית (שדרוג/הורדה).
- עדכון פרטי תשלום.
בעת ביטול, הגישה נשמרת עד סוף התקופה ששולמה — הלקוח מקבל את מה ששילם עבורו. לאחר פקיעת התקופה, הם מוסרים מקבוצת הגישה. הסטטוס משתנה ל-CANCELLED, ולאחר מכן ל-EXPIRED.
אירועי דוא"ל חובה:
- SUBSCRIPTION_CREATED — אישור מנוי.
- SUBSCRIPTION_PAYMENT_SUCCESS — חיוב מוצלח.
- SUBSCRIPTION_PAYMENT_FAILED — כישלון חיוב.
- SUBSCRIPTION_TRIAL_ENDING — 1-3 ימים לפני סיום תקופת הניסיון.
- SUBSCRIPTION_CANCELLED — אישור ביטול.
- SUBSCRIPTION_EXPIRED — גישה נסגרה.
תקופת ניסיון
בעת יצירת מנוי עם תקופת ניסיון:
$trialEnd = (new DateTime())->modify('+' . $plan->getTrialDays() . ' days'); SubscriptionTable::add([ 'USER_ID' => $userId, 'PLAN_ID' => $planId, 'STATUS' => 'TRIAL', 'TRIAL_END' => $trialEnd, 'CURRENT_PERIOD_END' => $trialEnd, ]); ה-agent מודיע למשתמש יום אחד לפני סיום תקופת הניסיון. ביום הסיום, הוא מנסה את החיוב הראשון. אם אין כרטיס מחובר, המנוי עובר ל-EXPIRED.
מה כלול בפיתוח מערכת מנויים
- תכנון ארכיטקטורת מסד נתונים ולוגיקה עסקית.
- יישום ישות ORM ו-agent.
- אינטגרציה עם מערכת תשלום (YooKassa / CloudPayments).
- הגדרת זכויות גישה וקבוצות משתמשים.
- פיתוח אזור אישי (
$expiring = SubscriptionTable::getList([ 'filter' => [ 'STATUS' => ['ACTIVE', 'PAST_DUE'], '<=CURRENT_PERIOD_END' => new DateTime(), ] ])->fetchAll(); foreach ($expiring as $sub) { try { $result = chargeSubscription($sub); if ($result->isSuccess()) { SubscriptionTable::update($sub['ID'], [ 'STATUS' => 'ACTIVE', 'CURRENT_PERIOD_START' => new DateTime(), 'CURRENT_PERIOD_END' => (new DateTime())->modify('+' . $planPeriodDays . ' days'), ]); } else { handlePaymentFailure($sub); } } catch (\Exception $e) { logError($e, $sub); } }). - הגדרת אירועי דוא"ל.
- תיעוד והדרכת מנהלים.
- תמיכה 30 יום לאחר השחרור.
תהליך הערכה ועבודה
- איסוף נתונים — הבנת הדרישות העסקיות והסביבה הטכנית שלכם.
- ביקורת וניתוח — סקירת התשתית הקיימת וזיהוי נקודות אינטגרציה.
- תכנון — יצירת מודל נתונים וארכיטקטורת מערכת.
- הערכה — מתן היקף קבוע ולוח זמנים לאחר הניתוח.
- פיתוח — בניית מודול המנויים עם כל האינטגרציות.
- בדיקות — QA יסודי כולל סימולציית זרימת תשלום.
- השקה — פריסה ועלייה לאוויר.
הערכות זמן ועלויות
| אפשרות | היקף | משך | טווח עלות |
|---|---|---|---|
| ללא חיוב חוזר | מנוי עם תשלום ידני, ניהול גישה | 5-7 ימים | $2,000 - $3,000 |
| עם תשלומים חוזרים | חיוב אוטומטי דרך YooKassa או CloudPayments | 10-14 ימים | $4,000 - $6,000 |
| פלטפורמה מלאה | תוכניות מרובות, תקופת ניסיון, אזור אישי, אנליטיקה | 15-20 ימים | $7,000 - $10,000 |
החבילות שלנו במחיר קבוע מתחילות ב-$2,500 עבור הגדרה בסיסית, וחוסכות לכם עד 40% בהשוואה לפיתוח מותאם אישית. העלות נקבעת באופן אישי לאחר ניתוח מורכבות הפרויקט שלכם. צרו קשר כדי לקבל הערכה תוך יום עסקים אחד.
למה לעבוד איתנו
- מעל 5 שנות ניסיון בפיתוח Bitrix, עם אחריות ל-99.9% זמינות בעיבוד תשלומים.
- מפתחי Bitrix מוסמכים מבטיחים אינטגרציה אמינה.
- יותר מ-30 פרויקטי מנויים מוצלחים שנמסרו.
- ה-agents שלנו מעבדים 1000+ חידושי מנויים מדי יום.
- שימוש במודול מוכן מפחית את זמן הפיתוח ב-40% בהשוואה לפתרונות סטנדרטיים.
- הבנה עמוקה של מגבלות Bitrix ודרכים לעקוף אותן.
- שותף מהימן עם 5+ שנים בשוק.
קבלו ייעוץ על המשימה שלכם — צרו קשר דרך טופס האתר או בדוא"ל. הזמינו פיתוח מערכת מנויים סוהר.







