משלוח לאיסוף עצמי מותאם אישית ל-1C-Bitrix: נקודות מרובות

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

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

שאלות נפוצות

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

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1460
  • 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 לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    882
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1164

מטפל משלוחים מותאם אישית לאיסוף עצמי עבור 1C-Bitrix: נקודות מרובות

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

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

איך ליישם נקודות איסוף מרובות?

עבור נקודות מרובות, צרו בלוק מידע 'נקודות איסוף'. כל רכיב הוא נקודה אחת:

  • שדות: שם, כתובת, שעות פעילות, טלפון, קואורדינטות (lat/lon)
  • מאפיינים: ACTIVE (סטטוס פעיל), METRO (תחנת מטרו קרובה), CITY_CODE (לסינון לפי עיר)
class MultiPickupDelivery extends \Bitrix\Sale\Delivery\Services\Base { public static function getClassTitle(): string { return 'Самовывоз'; } protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0.0); $result->setPeriodDescription('Готово через 1–2 часа после оплаты'); return $result; } // Получить список активных точек для выбранного города public static function getPickupPoints(string $city = ''): array { $filter = [ 'IBLOCK_ID' => PICKUP_POINTS_IBLOCK_ID, 'ACTIVE' => 'Y', ]; if ($city) { $filter['PROPERTY_CITY'] = $city; } $res = \CIBlockElement::GetList([], $filter, false, false, [ 'ID', 'NAME', 'PROPERTY_ADDRESS', 'PROPERTY_SCHEDULE', 'PROPERTY_LAT', 'PROPERTY_LON', 'PROPERTY_METRO', ]); $points = []; while ($row = $res->Fetch()) { $points[] = [ 'id' => $row['ID'], 'name' => $row['NAME'], 'address' => $row['PROPERTY_ADDRESS_VALUE'], 'schedule' => $row['PROPERTY_SCHEDULE_VALUE'], 'lat' => (float)$row['PROPERTY_LAT_VALUE'], 'lon' => (float)$row['PROPERTY_LON_VALUE'], 'metro' => $row['PROPERTY_METRO_VALUE'], ]; } return $points; } } 

בואו נשווה גישות: המטפל המותאם אישית גמיש פי 10 מהמובנה — הוא תומך במספר בלתי מוגבל של נקודות וניתן להרחבה בקלות.

פרמטר מטפל מובנה מותאם אישית על בלוק מידע
מספר נקודות 1 בלתי מוגבל (1000+ נבדקו)
מפה לא כן, דרך API של מפה
סינון לפי עיר לא כן, עם ביצועים של 0.1 שניות על 1000 נקודות
גמישות מינימלית מלאה

מפת נקודות איסוף בתבנית

בתבנית רכיב התשלום, כאשר נבחרת שיטת 'איסוף עצמי', הציגו מפה. היא מאותחלת דרך JavaScript, וסמנים מתווספים דינמית:

// Инициализация карты Яндекс с точками самовывоза window.initPickupMap = function(points) { ymaps.ready(function() { var map = new ymaps.Map('pickup-map', { center: [55.76, 37.64], zoom: 10, }); points.forEach(function(point) { var placemark = new ymaps.Placemark( [point.lat, point.lon], { balloonContentHeader: point.name, balloonContentBody: point.address + '<br>' + point.schedule, }, { preset: 'islands#blueDotIcon' } ); placemark.events.add('click', function() { document.getElementById('pickup_point_id').value = point.id; document.getElementById('pickup_point_name').innerText = point.name; }); map.geoObjects.add(placemark); }); }); }; 

כאשר לוחצים על נקודה, השדה הנסתר class MultiPickupDelivery extends \Bitrix\Sale\Delivery\Services\Base { public static function getClassTitle(): string { return 'Самовывоз'; } protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0.0); $result->setPeriodDescription('Готово через 1–2 часа после оплаты'); return $result; } // Получить список активных точек для выбранного города public static function getPickupPoints(string $city = ''): array { $filter = [ 'IBLOCK_ID' => PICKUP_POINTS_IBLOCK_ID, 'ACTIVE' => 'Y', ]; if ($city) { $filter['PROPERTY_CITY'] = $city; } $res = \CIBlockElement::GetList([], $filter, false, false, [ 'ID', 'NAME', 'PROPERTY_ADDRESS', 'PROPERTY_SCHEDULE', 'PROPERTY_LAT', 'PROPERTY_LON', 'PROPERTY_METRO', ]); $points = []; while ($row = $res->Fetch()) { $points[] = [ 'id' => $row['ID'], 'name' => $row['NAME'], 'address' => $row['PROPERTY_ADDRESS_VALUE'], 'schedule' => $row['PROPERTY_SCHEDULE_VALUE'], 'lat' => (float)$row['PROPERTY_LAT_VALUE'], 'lon' => (float)$row['PROPERTY_LON_VALUE'], 'metro' => $row['PROPERTY_METRO_VALUE'], ]; } return $points; } } מתמלא, ונשמר במאפייני ההזמנה. בלוח הניהול, המנהל רואה את נקודת האיסוף שנבחרה עם כתובת, שעות ופרטי קשר.

מה אם צריך לשלב נקודות איסוף של שירות שליחים עם נקודות משלכם?

אם אתם צריכים לשלב נקודות איסוף משלכם ונקודות של שירותי צד שלישי (SDEK, Boxberry) בממשק אחיד אחד — צרו רכיב בחירת נקודות מאוחד. השתמשו בטאבים: 'החנויות שלנו', 'נקודות איסוף SDEK', 'ארוניות חבילות'. נתונים עבור כל טאב נטענים דרך AJAX בעת מעבר. כך, הלקוח רואה את כל האפשרויות במקום אחד ויכול לבחור בנוחות. כל טאב נטען תוך פחות מ-0.5 שניות גם עם 500 נקודות. אנחנו גם מיישמים מטמון בצד השרת כדי למנוע בקשות כפולות.

אופטימיזציית ביצועים

עם מספר גדול של נקודות — 500 ומעלה — חשוב לארגן מטמון נכון. אנחנו משתמשים במטמון מתויג של Bitrix: תג לכל עיר, שנפסל כאשר נקודות משתנות. זה מאפשר לעשרות אלפי מבקרים לבחור איסוף בו-זמנית ללא עומס על השרת. בבדיקות עם 2000 נקודות, זמן התגובה של ה-API לא עלה על 0.2 שניות.

טעויות נפוצות

טעויות אופייניות: מטמון שגוי של רשימת הנקודות — הלקוח רואה נתונים מיושנים; חוסר סינון לפי עיר — מציעים נקודות מאזור אחר; קואורדינטות שגויות — הסמן נופל לאוקיינוס. אנחנו מתחשבים בכל התרחישים הללו ומיישמים ולידציה ברמת ה-API.

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

  • ניתוח דרישות ומפרט טכני
  • עיצוב מבנה בלוק המידע והמטפל
  • פיתוח מטפל המשלוחים המותאם אישית
  • שילוב מפה (Yandex.Maps או Google Maps)
  • בניית ממשק אחיד בעת שילוב עם נקודות איסוף
  • בדיקות וניפוי שגיאות
  • תיעוד והעברת קוד מקור
  • הדרכת מנהלים על עבודה עם נקודות
  • אחריות לשנה

לוח זמנים

היקף עבודה לוח זמנים
מטפל איסוף עצמי + בלוק מידע של נקודות 2–3 ימים
+ מפה עם נקודות בתשלום +1–2 ימים
+ ממשק אחיד עם נקודות שירות שליחים +3 ימים

צרו קשר לייעוץ — נעריך את הפרויקט שלכם תוך יום אחד. הזמינו פיתוח וקבלו אחריות לשנה. אנחנו עובדים עם כל היקף: מחנות אחת ועד רשת פדרלית.