תארו לעצמכם: סיטונאי מבקש מחירון עם מק"טים, מלאי מחסן ותמונות בפורמט XLSX, בעוד שייצוא Bitrix הסטנדרטי מפיק רק CSV עם מזהה, שם ומחיר. עליכם לערוך אותו ידנית — אתם מאבדים שעות, והשגיאות מתרבות.
כתיבת ייצוא מאפס אורכת זמן רב, וכלים סטנדרטיים אינם מכסים את הספציפיקה של B2B: סוגי מחירים שונים לסיטונאים ולקמעונאים, עיצוב מותנה, יצירה יומית אוטומטית.
הגדרה סופית של ייצוא מוצרים למחירונים ב-1C-Bitrix מאפשרת לפתור משימה זו ללא תכנות. חיסכון בזמן — עד 20 שעות בחודש, ועלויות התחזוקה יורדות ב-30% בזכות האוטומציה.
במשך למעלה מ-5 שנים הגדרנו ייצוא עבור יותר מ-50 פרויקטים — מ-CSV פשוט ועד XLSX מורכב עם מאקרו. אסביר כיצד אנו עושים זאת באופן סופי ואילו פתרונות באמת חוסכים זמן.
מצב טיפוסי: מנהל מבלה כל יום שישי ביצירת מחירון ידנית מייצוא Excel. התוצאה היא מחירים מיושנים ומלאי שגוי.
ייצוא אוטומטי בצד Bitrix פותר את הבעיה: אתם קובעים את לוח הזמנים, הפורמטים והגישה — והלקוחות מקבלים קבצים מעודכנים ללא מעורבותכם. ההגדרה אורכת מיומיים, והחיסכון בזמן מגיע לעד 20 שעות בחודש.
פרופילי ייצוא סטנדרטיים: מה מספקת הגרסה המובנית
המודול catalog מציע באופן מובנה מספר פרופילים: חנות → הגדרות → ייצוא קטלוג. כל פרופיל הוא קובץ PHP ב-/bitrix/modules/catalog/load/.
- CSV (
cat_o_csv.php) — ייצוא עם מפריד, שדות וקידוד הניתנים להגדרה. מתאים ל-Excel, Google Sheets, 1C. - Yandex.Market (YML) (
yandex_run.php) — XML בפורמט YML. רשמית עבור Yandex.Market, אך מהווה פיד מוצרים אוניברסלי. - CommerceML — XML להחלפה עם 1C, פורמט כבד, לא למחירונים. ויקיפדיה.
הגדרת פרופיל: בוחרים את בלוק המידע, סוג המחיר, המאפיינים ומסנן המדורים. התוצאה היא קובץ בכתובת URL או על הדיסק.
למה CSV סטנדרטי לא מספיק?
CSV סטנדרטי מספק סט בסיסי: ID, שם, מחיר, מדור. מחירון אמיתי צריך SKU, מותג, מלאי מחסן וקישורי תמונות. כל שדה דורש התאמה אישית נפרדת. קריטי ל-B2B: קבוצות לקוחות שונות רואות מחירים שונים. פרופיל אחד = סוג מחיר אחד.
לשלוש קבוצות — שלושה פרופילים. אנחנו בוחרים קידוד בהתאם למערכת של הלקוח: Windows-1251 עבור 1C, UTF-8 עבור השאר.
ייצוא סטנדרטי לא מוציא מלאי מחסן — צריך מטפל מותאם אישית עם קריאה ל-CCatalogStoreProduct::GetList(). זה מגדיל את נפח הנתונים, אבל בלעדיו המחירון לא משקף זמינות בפועל.
כיצד אנו מגדירים ייצוא מותאם אישית למשימות שלך
לדרישות לא סטנדרטיות, אנו יוצרים קובץ PHP ב-/bitrix/php_interface/include/catalog_export/ עם שתי פונקציות: הגדרות פרופיל וייצוא. התאמות אופייניות:
- פורמט Excel (XLSX). ייצוא סטנדרטי אינו מייצר XLSX. אנו מחברים את PhpSpreadsheet דרך Composer. אנו בונים קובץ עם עיצוב: כותרת עם לוגו, שורה קפואה, עמודות ברוחב אוטומטי. XLSX טוב יותר מ-CSV לדוחות, אך נוצר פי 5 לאט יותר.
- סינון לפי מאפיינים: רק מוצרים עם מלאי > 0, של מותג ספציפי, עם הנחה.
- מספר סוגי מחירים בקובץ אחד — עמודות "קמעונאי", "סיטונאי מ-10 יח'.", "סוחר". כל אחת נמשכת מסוג המחיר שלה.
- הצעות מסחריות בשורות: אם למוצר יש מק"טים (מידה, צבע), כל הצעה היא שורה נפרדת עם ציון הווריאנט.
דוגמה מהפרקטיקה: לאחרונה הגדרנו ייצוא עבור מפיץ סיטונאי עם 15,000 מוצרים, חמישה סוגי מחירים, ודרישה ל-XLSX עם עיצוב מותנה (מילוי ירוק למוצרים במלאי, אדום להזמנה מוקדמת).
פתרנו זאת עם מטפל מותאם אישית המבוסס על PhpSpreadsheet. יצירת מחירון אחד אורכת כ-30 שניות עם מרווח cron של 30 דקות.
דוגמה לחתימת מטפל מותאם אישית
function CustomExportProfile(array $arProfile, array $arParams): bool { // your export code }
כיצד להגדיר יצירה אוטומטית באמצעות cron?
יש לעדכן את המחירון באופן אוטומטי. הגדרה:
- בפרופיל הייצוא, יש להפעיל "ייצוא קובץ" — יש לציין את הנתיב, לדוגמה
/upload/pricelist/price_opt.csv. - יש להוסיף משימת cron:
*/30 * * * * php /var/www/bitrix/modules/catalog/load/cat_o_csv.php PROFILE_ID— עדכון כל 30 דקות. - חלופה — סוכן Bitrix:
CCatalog::PreGenerateXML(PROFILE_ID). פועל באמצעותcron_events.php.
עבור קטלוגים כבדים (50,000+ מוצרים), יצירת CSV אורכת שניות, Excel — עשרות שניות. YML — דקות. יש לקחת זאת בחשבון בעת בחירת המרווח.
| פורמט | 1,000 מוצרים | 10,000 מוצרים | 50,000 מוצרים |
|---|---|---|---|
| CSV | < 1 שנ' | 2–5 שנ' | 10–20 שנ' |
| XLSX | 2–5 שנ' | 15–30 שנ' | 1–3 דק' |
| YML | 1–3 שנ' | 10–30 שנ' | 1–5 דק' |
כיצד לבחור את פורמט מחירון?
CSV מהיר וקליל, מתאים ל-Excel ול-1C. ל-XLSX יש עיצוב אך הוא איטי יותר. YML מיועד לשווקים מקוונים. אם יש צורך בתאימות עם 1C, יש לבחור ב-CSV עם קידוד Windows-1251.
כיצד לארגן גישה למחירון?
הקובץ נמצא ב-/upload/pricelist/ — ספרייה ציבורית. אפשרויות הגבלה:
- קישור ישיר — עבור שותפים באופן ידני.
- הרשאה באמצעות
.htaccess(Basic Auth) או סקריפט PHP עם בדיקת הרשאות משתמש Bitrix. - טוקן בכתובת URL —
/upload/pricelist/price_opt.csv?token=abc123. מעטפת PHP בודקת את הטוקן המקושר לצד הנגדי.
טעויות נפוצות בעת הגדרת ייצוא
- קידוד שגוי: הלקוח פותח CSV ב-Excel ורואה תווים משובשים. פתרון — לציין במפורש קידוד Windows-1251 עבור 1C ו-UTF-8 עבור מערכות מודרניות.
- אי-התאמה במלאי: אם ייצוא המלאי אינו מוגדר, מחירון יראה 0 למרות שהמוצר נמצא במחסן. יש להקפיד להציג מלאי בפועל באמצעות
CCatalogStoreProduct::GetList(). - שוכחים מהצעות מסחר: אם למוצר יש SKUs, יש לייצא אותם כשורות נפרדות או לאחד לשורה אחת עם וריאנטים.
מה כלול בהגדרה כוללת
אנו משלימים את הפרויקט תוך 2–5 ימים בהתאם למורכבות. כלול:
- ניתוח דרישות (סוגי מחירים, פורמטים, גישה).
- יצירת פרופילי ייצוא (CSV/YML) או מטפל מותאם אישית (XLSX).
- הגדרת יצירה אוטומטית (cron/agent).
- ארגון גישה (טוקנים, הרשאה).
- תיעוד וייעוץ בנוגע לעדכונים.
אנו מבטיחים פעולת ייצוא יציבה. קבלו מחירון מעודכן ללא עדכונים ידניים. צרו קשר כדי לדון בפרויקט שלכם. הזמינו הגדרת מחירון — ואנו נפתור את המשימה בהגדרה כוללת.

