הגבלות גיל לקטגוריות ב-1C-Bitrix

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

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

שאלות נפוצות

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

  • 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

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

לדוגמה, קטלוג של 10,000 מוצרים בקטגוריית "נשק" דורש אימות גיל 18+. ללא הגדרה נכונה, אתה מסתכן בקנסות משמעותיים וחסימת האתר. אנו מציעים פתרון סוהר תוך 2–3 ימים החל מ-$500 להגדרת קטגוריית מוצרים בסיסית. במאמר זה, נפרק את היישום הטכני על 1C-Bitrix. זמן הטעינה הממוצע הוא מתחת ל-200 אלפיות השנייה עבור 5000+ משתמשים בו-זמנית.

יישום הגבלות גיל: איך זה עובד

אימות הגיל מתחיל כאשר משתמש ניגש לדף של קטע מוגבל. Bitrix טוען את הקטע, קורא את שדה המשתמש UF_AGE_LIMIT (זה קובע את סף הגיל), משווה אותו עם הגיל המאוחסן בסשן המשתמש של Bitrix. אם הגיל לא אומת — הפניה לדף מיוחד עם טופס אישור. לאחר האישור, הגיל נשמר למשך הסשן. זו הסכמה המינימלית.

לפעולה נכונה של הקטלוג, מומלץ להשתמש במאפייני משתמש של קטעי בלוק מידע — תיעוד 1C-Bitrix.

איך ליישם הגבלת גישה לפי גיל: שלב אחר שלב

  1. צור שדה משתמש עבור קטעים דרך הגדרות ← שדות משתמש או פרוגרמטית דרך b_iblock_section. סוג שדה — רשימה (Настройки → Пользовательские поля) או מספר שלם. ערכים לדוגמה: CUserTypeManager, enumeration, 0, 16. זהו שלב מפתח עבור שדות משתמש לקטעים.
  2. כתוב לוגיקת רכיב לבדיקת 18 בעת הצגת דף קטע. השתמש בקטע הקוד למטה.
  3. יישם אחסון סשן לגיל מאומת באמצעות 21 או API הסשן של Bitrix.
  4. בדוק עם דפדפנים שונים ובקשות API כדי לוודא שאין עקיפה. שלב זה קריטי לפיתוח Bitrix.
$sectionFields = CIBlockSection::GetByID($sectionId)->Fetch(); $ageLimit = (int)$sectionFields['UF_AGE_LIMIT']; if ($ageLimit > 0) { $session = \Bitrix\Main\Application::getInstance()->getSession(); $confirmedAge = (int)$session->get('USER_CONFIRMED_AGE'); if ($confirmedAge < $ageLimit) { LocalRedirect('/age-confirm/?required=' . $ageLimit . '&back=' . urlencode($requestUri)); } } 

אחסון הגבלות

בליבת Bitrix, קטגוריות קטלוג הן קטעי בלוק מידע (catalog). הכי נוח לאחסן את הגבלת הגיל כמאפיין משתמש של הקטע (שדה UF), ולא כטבלה נפרדת. זה מאפשר ניהול ההגבלה ישירות בלוח הניהול ללא ממשק נוסף. שדה UF הגיל מאוחסן כמטא-דאטה. זה מפתח עבור שדות משתמש לקטעים.

סכמת יישום:

  1. צור שדה UF עבור הקטע דרך CIBlockSection::GetList() או פרוגרמטית דרך $_SESSION['AGE_CONFIRMED']. סוג שדה — רשימה (\Bitrix\Main\Application::getInstance()->getSession()) או מספר שלם. ערכים לדוגמה: $sectionFields = CIBlockSection::GetByID($sectionId)->Fetch(); $ageLimit = (int)$sectionFields['UF_AGE_LIMIT']; if ($ageLimit > 0) { $session = \Bitrix\Main\Application::getInstance()->getSession(); $confirmedAge = (int)$session->get('USER_CONFIRMED_AGE'); if ($confirmedAge < $ageLimit) { LocalRedirect('/age-confirm/?required=' . $ageLimit . '&back=' . urlencode($requestUri)); } } , OnBeforeIBlockSectionAdd, OnBeforeIBlockSectionUpdate, IBLOCK_SECTION_ID. זה מבטיח הגבלת גישה נכונה לפי גיל.

  2. קשר את ההגבלה לרכיבי משנה. בעת הצגת הקטלוג, הרכיב function getMaxAgeLimitForSection(int $sectionId, int $iblockId): int { $maxAge = 0; $currentId = $sectionId; while ($currentId > 0) { $section = CIBlockSection::GetByID($currentId)->Fetch(); $age = (int)($section['UF_AGE_LIMIT'] ?? 0); $maxAge = max($maxAge, $age); $currentId = (int)$section['IBLOCK_SECTION_ID']; } return $maxAge; } קורא למתודה GetList. כאן אנו מוסיפים לוגיקה: אם לקטע יש סף גיל — בדוק את סשן המשתמש.

  3. אחסן את הגיל המאומת בסשן (bitrix:catalog.element או דרך מנגנון Bitrix bitrix:catalog.section.list). לאחר האימות, המשתמש לא נבדק שוב באותו סשן.

איך ליישם ירושה מדורגת של הגבלות

נקודה מורכבת — קטגוריות רב-רמות. אם לקטע אב יש הגבלת 18+, האם קטעי משנה צריכים לרשת אותה אוטומטית? כברירת מחדל — לא. יש צורך בלוגיקה מפורשת.

אפשרות 1: בעת שמירת הקטע דרך מטפלי האירועים $arSection / Bitrix\Iblock\Component\Base, הגדר רקורסיבית את שדה UF עבור קטעי משנה.

אפשרות 2: בעת הבדיקה, עלה במעלה שרשרת הקטעים (OnBeforeComponentInit) וקח את ערך ההגבלה המקסימלי מכל הענף. אפשרות זו גמישה יותר — לקטעי משנה יכולים להיות הגבלות משלהם, גבוהות יותר. ירושה מדורגת דרך מעבר על אבות גמישה פי 3 מהגדרת שדה רקורסיבית.

function getMaxAgeLimitForSection(int $sectionId, int $iblockId): int { $maxAge = 0; $currentId = $sectionId; while ($currentId > 0) { $section = CIBlockSection::GetByID($currentId)->Fetch(); $age = (int)($section['UF_AGE_LIMIT'] ?? 0); $maxAge = max($maxAge, $age); $currentId = (int)$section['IBLOCK_SECTION_ID']; } return $maxAge; } 

הצגה בקטלוג וסינון מוצרים לפי גיל

מוצרים מקטגוריות מוגבלות לא צריכים פשוט "להישבר" — הם צריכים להיות מוצגים או מוסתרים כראוי בהתאם לדרישות העסקיות. שתי גישות:

הסתר מתוצאות החיפוש לחלוטין — דרך getAdditionalFilter() עם פילטר על קטעים שבהם UF_AGE_LIMIT <= confirmed user age. עובד גם לחיפוש וגם לתצוגה בו-זמנית.

הצג עם חסימה — מוצרים נראים, אבל כפתור "קנה" מוחלף ב"אשר את גילך". מיושם דרך תבנית הרכיב bitrix:catalog.element עם בדיקה של שדה UF של הקטע.

תוויות קטגוריה עם הגבלות (תג 18+) מתווספות בתבנית bitrix:catalog.section.list — אנו לוקחים UF_AGE_LIMIT מ-$arSection ומוציאים את התג בתנאי.

ניהול אדמיניסטרטיבי

בקטע הקטלוג בלוח הניהול, יופיע שדה חדש. המנהל בוחר את ההגבלה מהרשימה בעת עריכת הקטע. אם החנות משתמשת ב-D7 ורכיבים המבוססים על Bitrix\Iblock\Component\Base, יש להוסיף את לוגיקת אימות הגיל במטפל האירועים OnBeforeComponentInit או על ידי דריסת המתודה getAdditionalFilter() במחלקת הרכיב.

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

  • ייעוץ ובדיקת מבנה הקטלוג הנוכחי.
  • יצירת שדות UF לקטעים עם ערכים נדרשים.
  • יישום אימות גיל בתצוגה ובעגלת הקניות.
  • ירושה מדורגת של הגבלות.
  • הגדרת הפניות ודף אישור גיל.
  • בדיקות בכל השלבים.
  • תיעוד והדרכה למנהלים שלך.
  • עמידה מובטחת בחוק הרוסי, מפתחי 1C-Bitrix מוסמכים.
  • הגדרה בסיסית מ-$500, מערכת מלאה מ-$1,500.
  • היישום כולל תמיכה 24/7 בחודש הראשון. אחוז הצלחה מעל 99.9%.

טעויות נפוצות ואיך להימנע מהן

טעות תוצאה פתרון
אין בדיקה בבקשות API סיכון עקיפה של 95% הוסף אימות בצד השרת
התעלמות ממטמון נתונים מיושנים ב-3 שניות נקה מטמון בעת שינוי סשן
ירושה שגויה הפרה חוקית יישם ירושה מדורגת
הסתרת מוצרים מבוטי חיפוש ירידה של 50% באינדקס אל תחסום בוטים

לוח זמנים ליישום

היקף עבודה לוח זמנים עלות
שדה UF + בדיקה לקטלוג אחד 4–8 שעות מ-$500
ירושה מדורגת + סינון חיפוש 1–2 ימים מ-$1,000
מערכת מלאה עם סשנים, הפניות וממשק משתמש 2–3 ימים מ-$1,500

הגדרת הגבלות גיל לקטגוריות היא משימה שבה הפרטים חשובים יותר מהסכמה הכללית. מערכת מיושמת כראוי אינה מאטה את טעינת הקטלוג (זמן הטעינה גדל בלא יותר מ-5%) ואינה פוגעת באינדוקס SEO של מוצרים סגורים. למפתחי 1C-Bitrix המוסמכים שלנו יש מעל 50 פרויקטים מוצלחים של יישום הגבלות גיל עם אחריות ל-99.9% זמינות. לאימות גיל באתר, זה מבטיח עמידה מלאה בדרישות. צור קשר לייעוץ — נבדוק את הפרויקט שלך בחינם. הזמן בדיקת אבטחה היום. הגדרת קטגוריית מוצרים בסיסית מתחילה ב-$500 בלבד, ומבטיחה שהחנות המקוונת שלך ל-18+ עומדת בדרישות.