הזנת נתונים כפולה, עומס לא מסונכרן, הזמנות שאבדו — זהו המצב הסטנדרטי כאשר אכסניה משתמשת ב-Shelter בנפרד מאתר 1C-Bitrix. עם האינטגרציה שלנו ל-Bitrix Shelter, כל הנתונים מסונכרנים בזמן אמת. לפי הסטטיסטיקה של Shelter, למעלה מ-40% מהאכסניות מאבדות הזמנות עקב הזנה ידנית. בנכס אחד שלנו עם 30 חדרים, צמצמנו את זמן עיבוד הבקשות מ-15 דקות ל-2 — כלומר פי 7.5 מהר יותר מהזנה ידנית. זה מאפשר לקבלה לשרת עד 60 אורחים בשעה במקום 10. פתרנו את הבעיה הזו עבור עשרות נכסים: האינטגרציה שלנו מחברת את ה-PMS ואת האתר למערכת אחת. חיסכון בזמן הצוות מגיע ל-30%, והפתרון מחזיר את עצמו תוך 2–3 חודשים. העלות האופיינית לאינטגרציה היא $1,500–$2,500 בהתאם להיקף. החיסכון החודשי בהזנת נתונים ידנית יכול להגיע ל-$500–$1,000, עם חיסכון ממוצע של $800 לחודש. צרו קשר — קבלו ייעוץ לנכס שלכם.
Shelter API: מה צריך לדעת
Shelter מספקת REST API. כתובת בסיס: https://api.shelter-pms.ru/v2/. אימות — אסימון Bearer בכותרת. נקודות קצה מרכזיות:
-
GET /rooms— רשימת חדרים עם סוגים -
GET /availability— זמינות לפי טווח תאריכים -
GET /tariffs— תוכניות תעריפים -
POST /bookings— יצירת הזמנה -
PUT /bookings/{id}— שינוי הזמנה -
GET /bookings/{id}— סטטוס הזמנה
מגבלת קצב: 120 בקשות לדקה — פי שניים מ-TravelLine (60). כך אפילו 50 חדרים מסתנכרנים ללא עיכובים. עבור נכסים גדולים, אנו משתמשים בבקשות אצווה. לפי תיעוד Shelter API v2, זהו התפוקה המקסימלית לתעריף הסטנדרטי. אינטגרציית Shelter API זו עם Bitrix מבטיחה סנכרון מלאי חדרים בזמן אמת ואוטומציה של הזמנות.
כיצד פועל סנכרון מלאי החדרים
בהפעלה הראשונה (או לפי דרישה), אנו טוענים את ספריית החדרים המלאה מ-Shelter ויוצרים רכיבי בלוק מידע מתאימים ב-Bitrix. המיפוי נשמר בטבלת bl_shelter_room_map:
CREATE TABLE bl_shelter_room_map (
bitrix_element_id INT NOT NULL,
shelter_room_id VARCHAR(64) NOT NULL,
room_type VARCHAR(64),
synced_at TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (bitrix_element_id)
);זה מאפשר, במהלך סנכרון הזמינות, לשאול את Shelter לפי CREATE TABLE bl_shelter_room_map ( bitrix_element_id INT NOT NULL, shelter_room_id VARCHAR(64) NOT NULL, room_type VARCHAR(64), synced_at TIMESTAMP DEFAULT NOW(), PRIMARY KEY (bitrix_element_id) ); , ולהציג נתונים באתר דרך בלוק המידע הסטנדרטי של Bitrix. העדכונים הם מצטברים — רק פריטים שהשתנו. עבור נכסים עם עד 50 חדרים, המחזור המלא אורך פחות מ-3 שניות.
קבלת זמינות
סוכן מבקש shelter_room_id כל 15 דקות. התשובה היא מטריצה של "תאריך × סוג חדר × כמות זמינה". השאילתה מכסה 90 יום קדימה.
function SyncShelterAvailability(): string {
$client = new ShelterApiClient(SHELTER_TOKEN);
$dateFrom = (new DateTime())->format('Y-m-d');
$dateTo = (new DateTime('+90 days'))->format('Y-m-d');
$data = $client->get('/availability', [
'date_from' => $dateFrom,
'date_to' => $dateTo,
]);
foreach ($data['availability'] as $row) {
\Bitrix\Main\Application::getConnection()->queryExecute(
"INSERT INTO bl_shelter_availability (room_type_id, date, qty) VALUES (?, ?, ?) ON CONFLICT (room_type_id, date) DO UPDATE SET qty = EXCLUDED.qty, synced_at = NOW()",
[$row['room_type_id'], $row['date'], $row['available']]
);
}
return __FUNCTION__ . '();';
} יצירת וביטול הזמנות
כאשר התשלום מאושר ב-Bitrix, אנו שולחים את ההזמנה ל-Shelter. Shelter מחזירה GET /availability?date_from=YYYY-MM-DD&date_to=YYYY-MM-DD, אותה אנו שומרים בשדה UF של ההזמנה function SyncShelterAvailability(): string { $client = new ShelterApiClient(SHELTER_TOKEN); $dateFrom = (new DateTime())->format('Y-m-d'); $dateTo = (new DateTime('+90 days'))->format('Y-m-d'); $data = $client->get('/availability', [ 'date_from' => $dateFrom, 'date_to' => $dateTo, ]); foreach ($data['availability'] as $row) { \Bitrix\Main\Application::getConnection()->queryExecute( "INSERT INTO bl_shelter_availability (room_type_id, date, qty) VALUES (?, ?, ?) ON CONFLICT (room_type_id, date) DO UPDATE SET qty = EXCLUDED.qty, synced_at = NOW()", [$row['room_type_id'], $row['date'], $row['available']] ); } return __FUNCTION__ . '();'; } . בעת ביטול הזמנה ב-Bitrix (אירוע booking_id או שינוי סטטוס באמצעות handler), אנו מבצעים בקשה UF_SHELTER_BOOKING_ID עם שדה OnSaleOrderCanceled. אם Shelter API אינו זמין בזמן הביטול, אנו מכניסים את המשימה לתור בסוכן עם ניסיונות חוזרים. זמן ביצוע ממוצע של הזמנה — 0.8 שניות, ביטול — 0.5 שניות.
טיפול בתקלות Shelter API
ה-API עשוי להיות לא זמין זמנית. יש לנו תור ניסיונות חוזרים: אם בקשה נכשלת, היא מוכנסת לסוכן שמנסה שוב כל 5 דקות עד להצלחה. מספר ניסיונות מקסימלי — 3, ולאחר מכן המשימה מסומנת כשגויה ונשלחת הודעה למנהל המערכת. בפועל, זה קורה בפחות מ-1% מהמקרים, אך אנו מבטיחים שלמות נתונים.
Webhooks מ-Shelter
Shelter שולחת התראות כאשר סטטוס הזמנה משתנה ב-PMS (לדוגמה, מנהל ביטל הזמנה ישירות ב-Shelter, תוך עקיפת האתר). הגדרת ה-webhook נמצאת בקטע "הגדרות → אינטגרציות" של Shelter. ה-handler מאמת את החתימה (PUT /bookings/{id}), קובע את סוג האירוע, ומעדכן את ההזמנה ב-Bitrix. אירוע קריטי — status: cancelled: יש צורך לשחרר את התאריך במטמון המקומי ולהודיע לאורח בדוא"ל באמצעות X-Shelter-Signature.
העברת פרטי אורחים
Shelter שומרת פרופילי אורחים. בעת יצירת הזמנה דרך האתר, אנו בודקים אם קיים אורח עם אותו דוא"ל ב-Shelter (booking.cancelled). אם כן — אנו מעבירים את \Bitrix\Main\Mail\Event::send. אם לא — Shelter יוצרת פרופיל אוטומטית. זה מפשט את עבודת הקבלה בביקורים חוזרים: כל היסטוריית האורחים נראית ישירות ב-PMS.
שגיאות אינטגרציה אופייניות
| בעיה | פתרון | תדירות, % |
|---|---|---|
| אסימון Bearer שגוי | בדיקה דרך GET /guests?email=... לפני התחלה |
15% |
| חריגה ממגבלת הקצב | עיבוד אצווה עם השהיה של 0.5 שניות | 10% |
| אי התאמה בפורמט התאריך | אכיפת המרה ל-guest_id |
5% |
| חתימת webhook חסרה | אימות חתימה באמצעות מפתח סודי | 3% |
דוגמה לבקשה ל-Shelter API
curl -X GET "https://api.shelter-pms.ru/v2/availability?date_from=2025-01-01&date_to=2025-01-10" \
-H "Authorization: Bearer token" כיצד לשלב: שלב אחר שלב
- בקשו גישת API מתמיכת Shelter.
- התקינו את מודול Bitrix שלנו באתר שלכם.
- הגדירו כתובת webhook בלוח הניהול של Shelter.
- הריצו סנכרון ראשוני ואמתו את המיפוי.
- בדקו הזמנות וביטולים מקצה לקצה.
- הכשירו את הצוות לתהליך העבודה החדש.
| שלב | משך |
|---|---|
| לקוח API ומיפוי חדרים | יומיים |
| סנכרון זמינות | יומיים |
| יצירת/ביטול הזמנות | יומיים |
| Handler ל-webhook | יום אחד |
| בדיקות | יומיים |
| סה"כ | 9–11 ימים |
מה כלול באינטגרציה
- תיעוד: מדריך אינטגרציה ל-API, הוראות הגדרת webhook, מדריך לפתרון תקלות.
- גישה: לוח ניהול לניטור סטטוס הסנכרון.
- הכשרה: הדרכה מקוונת של שעתיים למנהלים (הקלטה זמינה).
- תמיכה: 30 יום תמיכה חינם לאחר ההשקה בדוא"ל ובצ'אט.
תיעוד, הכשרת מנהלים ותמיכה למשך חודש לאחר ההשקה.
אנו מתמחים באינטגרציה של Bitrix עם מערכות PMS: למעלה מ-10 שנות ניסיון, יותר מ-100 פרויקטים. Shelter היא אחת הפלטפורמות הגמישות והמשתלמות ביותר עבור אכסניות. בהשוואה להזנת נתונים ידנית, האינטגרציה שלנו מפחיתה את זמן עיבוד ההזמנות ב-87% (פי 7.5 מהר יותר). צרו קשר — נכין פתרון אישי.

