פרסינג קטלוג ל-1C-Bitrix: מילוי אוטומטי

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

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

שאלות נפוצות

הספק לא סיפק פיד או API. יש צורך למלא את הקטלוג באלפי פריטים, ודפי HTML הם המקור היחיד. מצב אופייני: לקוח רוצה להעביר מוצרים מאתר של מתחרה או ספק ל-1C-Bitrix. פרסור אוטומטי הוא הכרחי — הזנה ידנית של 10,000 פריטים תימשך שבועות.

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

פרסור הוא לא רק הורדת HTML. הוא כולל ניתוח מבנה, עיצוב אינפובלוק, עיבוד תמונות וסינון כפילויות. שגיאות בשלב העיצוב מובילות לכפילויות ולאובדן נתונים. הבה נפרק את הרכיבים המרכזיים.

כיצד לעצב אינפובלוק לפרסור מוצרים?

לפני הפעלת הפרסר, קריטי לעצב את האינפובלוק. טעויות נפוצות: אחסון כל המאפיינים בשדה טקסט אחד, אי-קישור מוצרים למדורים, התעלמות מ-XML_ID. הסכמה הנכונה:

  • מדורי אינפובלוק (b_iblock_section) — שכפול מבנה הקטגוריות של המקור
  • מזהה אלמנט XML_ID — מזהה ייחודי מהמקור (URL או מזהה פנימי)
  • מאפיינים — מאפיין נפרד לכל קבוצת מאפיינים או בלוק Highload עבור מאפיינים משתנים
  • הצעות מסחר (CATALOG_TYPE = 3) — אם במקור קיימות וריאציות מוצר

מדוע חשוב לשמר XML_ID?

XML_ID הוא מזהה היסוד הייחודי עבור מערכות חיצוניות. ראה תיעוד 1C-Bitrix לפרטים. ללא XML_ID, כל ניתוח מחדש יוצר כפילויות. הפלטפורמה משתמשת ב-XML_ID כמפתח חיצוני לעדכון יסודות. אם המקור משנה כתובת URL או מזהה, אנו מעדכנים ידנית את המיפוי.

אנו שומרים את ההיסטוריה של כל ה-XML_ID בטבלת parser_progress נפרדת — הדבר מאפשר חזרה לאחור של שינויים ללא אובדן נתונים.

הגדרת ניתוח קטגוריות למילוי הקטלוג

תחילה, אנו עוברים על מבנה הקטגוריות במקור ויוצרים עץ מדורים באמצעות CIBlockSection::Add(). חשוב לשמור על ה-XML_ID וה-DEPTH_LEVEL של המדור — זה מבטיח שבניתוח חוזר לא ניצור כפילויות אלא נעדכן מדורים קיימים.

אלגוריתם:

  1. קבלת רשימת הקטגוריות מהמקור (sitemap.xml או מעבר רקורסיבי על הניווט)
  2. בניית גרף תלויות הורה→בן
  3. יצירת מדורים מהשורש כלפי מטה, תוך רישום מיפוי source_id → bitrix_section_id
  4. שמירת המיפוי בטבלה או בקובץ נפרד עבור הרצות עתידיות

פירסור כרטיסי מוצר עבור 1C-Bitrix

לאחר בניית המבנה, אנו עוברים על דפי המוצרים. כל מוצר נוצר באמצעות CIBlockElement::Add() או מתעדכן באמצעות CIBlockElement::Update() אם ה-XML_ID תואם.

שדות חובה בעת יצירת אלמנט:

IBLOCK_ID, NAME, XML_ID, CODE (SEO-friendly URL), ACTIVE, IBLOCK_SECTION_ID, DETAIL_TEXT, PREVIEW_TEXT, PROPERTY_VALUES (array of properties)

יצירת CODE היא נקודת כשל נפוצה. יש להשתמש ב-CUtil::translit() עם הדגל להחלפת תווים מתנגשים. יש להוסיף סיומת מה-XML_ID אם התעתוק יוצר כפילויות.

כיצד לעקוף הגנה בעת פרסור קטלוג?

רוב הקטלוגים מחולקים לעמודים עם 20–100 מוצרים בעמוד. הפרסר צריך:

  • לקבוע את המספר הכולל של העמודים (מתגית עימוד או כותרת X-Total-Count)
  • לשמור התקדמות לקובץ או למסד נתונים — כך שבמקרה של כשל יוכל להמשיך מהעמוד הנדרש
  • לשמור על השהיות בין בקשות (1–3 שניות)

עבור קטלוגים המרונדרים ב-JS (סינון דרך AJAX) — headless Chrome דרך Puppeteer. לעיתים קל יותר למצוא את בקשת ה-XHR ל-API של הקטלוג ב-Network DevTools ולקרוא לה ישירות. Puppeteer מעבד תוכן דינמי פי 5 מהר יותר מ-Simple HTML DOM עם אמולציית דפדפן.

טעות אופיינית היא אי-התחשבות בהגנת בוטים. אתרים רבים משתמשים ב-Cloudflare או captcha. הפרסר צריך לחקות התנהגות של משתמש אמיתי: השהיות, User-Agent אקראי, מאגר פרוקסי. במקרים קשים במיוחד, אנו משלבים שירותי זיהוי captcha.

מקרה בוחן: מילוי קטלוג חומרי בניין

משימה: להעביר 18,000 מק"טים מאתר של יצרן (HTML סטטי, 2 רמות קטגוריות, טבלאות מוצרים). הלקוח שלנו רצה להימנע מהזנה ידנית.

יישום:

  • PHP + Symfony DomCrawler לפרסור HTML
  • טבלת PostgreSQL בשם parser_progress לשמירת מצב
  • כתיבה באצוות של 50 אלמנטים, השהיה של 500ms בין אצוות
  • תמונות: הורדה דרך \Bitrix\Main\IO\File, צירוף דרך CFile::SaveFile()
  • זמן פרסור כולל עבור 18,000 מוצרים: ~14 שעות ברקע

תוצאה: הקטלוג מולא ב-2 ימי עבודה במקום 3–4 שבועות של עבודה ידנית.

מה כלול

תוצר תיאור
ניתוח מקור קביעת מבנה, הגנה, נפח
עיצוב אינפובלוק יצירת מדורים, מאפיינים, בלוקי HL
פיתוח פרסר סקריפטים ב-PHP עם עימוד וטיפול בהגנות
עיבוד תמונות הורדה, אופטימיזציה, צירוף
הרצת בדיקה אימות על 10% מהנתונים, תיקון שגיאות
תיעוד תיאור ארכיטקטורה, הוראות הפעלה
תמיכה אחריות לחודש אחד לפעולה יציבה

לוח זמנים

שלב משך
ניתוח מבנה מקור, עיצוב אינפובלוק 4–8 שעות
פרסר קטגוריות + סנכרון מדורים יום 1
פרסר כרטיסי מוצר (טקסט, מאפיינים) 2–3 ימים
עיבוד תמונות 4–8 שעות
דיבוג, טיפול בשגיאות, לוגים יום 1
הרצת בדיקה על נפח אמיתי יום 1

סה"כ: 6–10 ימי עבודה בהתאם למורכבות המקור ולנפח הנתונים. קבלו ייעוץ — נעריך את הפרויקט שלכם. צרו קשר כדי לדון במשימה שלכם. הזמינו פיתוח פרסר — חסכו זמן ותקציב.