הגדרת ביקורות וידאו בכרטיס מוצר ב-1C-Bitrix

לעתים קרובות אנו נתקלים בתרחיש שבו כרטיס מוצר טוען iframe של YouTube, ומשתמשים רואים רק בלוק ריק עד שהנגן מאותחל. זה מגדיל את LCP במכשירים ניידים עד 4 שניות, וההמרה יורדת. פתרנו זאת עם טעינה עצלה של תצוגות מקדימות. תצוגות מקדימות בטעינה עצלה הן פי 10 יותר
השירותים שאנו מציעים
מציג 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

לעתים קרובות אנו נתקלים בתרחיש שבו כרטיס מוצר טוען iframe של YouTube, ומשתמשים רואים רק בלוק ריק עד שהנגן מאותחל. זה מגדיל את LCP במכשירים ניידים עד 4 שניות, וההמרה יורדת. פתרנו זאת עם טעינה עצלה של תצוגות מקדימות. תצוגות מקדימות בטעינה עצלה יעילות פי 10 מאשר iframe ישיר: משקל העמוד יורד מ-800 KB ל-10 KB, ומספר בקשות ה-HTTP יורד פי 4. הניסיון שלנו — למעלה מ-7 שנים עם Bitrix, למעלה מ-120 פרויקטים עם אינטגרציות וידאו. לפי מחקר של Google Web Vitals, כל שנייה של עיכוב בטעינה מפחיתה את ההמרה ב-20%. לפי ההערכות שלנו, תצוגות מקדימות בטעינה עצלה מפחיתות את עלויות האחסון בעד 30% בשל הפחתת התעבורה.

היכן לאחסן וידאו ב-infoblock?

ל-Bitrix אין סוג שדה 'וידאו' מקורי בסוגי המאפיינים הסטנדרטיים. לרוב, סקירת וידאו מאוחסנת באחד משלושה מקומות:

  • מאפיין מסוג S (מחרוזת) עם כתובת URL ל-YouTube/Vimeo — האפשרות הנפוצה ביותר
  • מאפיין מסוג F (קובץ) — העלאת mp4 ישירה לשרת, טבלה b_iblock_element_property
  • שדה תיאור מפורט (HTML/TinyMCE) — וידאו קבור בתוך b_iblock_element.DETAIL_TEXT

לחנות מקוונת על bitrix.catalog, הדרך הנכונה היא מאפיין נפרד עם קוד סמלי, לדוגמה, VIDEO_URL, המקושר ל-infoblock של הקטלוג. שאל אותו דרך CIBlockElement::GetProperty() או דרך \Bitrix\Iblock\ElementPropertyTable (D7):

$props = \Bitrix\Iblock\ElementPropertyTable::getList([ 'filter' => ['IBLOCK_ELEMENT_ID' => $elementId, 'CODE' => 'VIDEO_URL'], 'select' => ['VALUE'], ])->fetch(); 

השווה בין שיטות האחסון:

שיטה זמינות נוחות שמירה במטמון
מאפיין URL גבוהה פשוטה קלה
מאפיין קובץ בינונית מורכבת בינונית
DETAIL_TEXT נמוכה מבלבלת ירודה

מדוע iframe מאט את הטעינה?

הבעיה העיקרית — $props = \Bitrix\Iblock\ElementPropertyTable::getList([ 'filter' => ['IBLOCK_ELEMENT_ID' => $elementId, 'CODE' => 'VIDEO_URL'], 'select' => ['VALUE'], ])->fetch(); חוסם את ה-thread הראשי: הדפדפן טוען את כל חבילת ה-JS של YouTube (500–800 KB) עוד לפני שהמשתמש לוחץ על Play. זה קריטי עבור LCP במובייל ושיעור הנטישה.

פתרון: הצג תצוגה מקדימה מותאמת אישית באמצעות API של תמונות ממוזערות של YouTube (<iframe src="https://www.youtube.com/embed/..." title="YouTube video">) והחלף אותה ב-iframe רק בלחיצה.

בתבנית הרכיב https://img.youtube.com/vi/{VIDEO_ID}/hqdefault.jpg (catalog.element), ההיגיון הוא:

<?php if (!empty($arResult['PROPERTIES']['VIDEO_URL']['VALUE'])): ?> <?php $videoUrl = $arResult['PROPERTIES']['VIDEO_URL']['VALUE']; preg_match('/(?:v=|youtu\.be\/)([a-zA-Z0-9_-]{11})/', $videoUrl, $matches); $videoId = $matches[1] ?? ''; ?> <div class="product-video" data-video-id="<?= htmlspecialchars($videoId) ?>"> <img src="https://img.youtube.com/vi/<?= $videoId ?>/hqdefault.jpg" loading="lazy" alt="Видеообзор товара" class="video-preview"> <button class="video-play-btn" aria-label="Воспроизвести видео">▶</button> </div> <?php endif; ?> 

JavaScript בלחיצה מחליף את ה-div ב-iframe עם template.php. זה מסיר בקשה נוספת ל-YouTube בטעינת העמוד ומפחית את משקל העמוד ב-500–800 KB.

השוואה: iframe לעומת טעינה עצלה

פרמטר iframe תצוגה מקדימה בטעינה עצלה
משקל עמוד +500–800 KB +5–10 KB
השפעה על LCP מחמיר ב-2–4 שניות ללא השפעה
מספר בקשות 3–5 1 (תצוגה מקדימה)
זמן עד אינטראקציה 2–3 שניות 0.1 שניות

כיצד להגדיר שמירה במטמון של וידאו?

התבנית <?php if (!empty($arResult['PROPERTIES']['VIDEO_URL']['VALUE'])): ?> <?php $videoUrl = $arResult['PROPERTIES']['VIDEO_URL']['VALUE']; preg_match('/(?:v=|youtu\.be\/)([a-zA-Z0-9_-]{11})/', $videoUrl, $matches); $videoId = $matches[1] ?? ''; ?> <div class="product-video" data-video-id="<?= htmlspecialchars($videoId) ?>"> <img src="https://img.youtube.com/vi/<?= $videoId ?>/hqdefault.jpg" loading="lazy" alt="Видеообзор товара" class="video-preview"> <button class="video-play-btn" aria-label="Воспроизвести видео">▶</button> </div> <?php endif; ?> נשמרת במטמון דרך autoplay=1. אם הווידאו משתנה בלוח הניהול, המטמון לא מתאפס אוטומטית — יש צורך לקרוא ל-catalog.element כאשר CBitrixComponent::StartResultCache() ריק, או להוסיף תג מטמון:

$GLOBALS['CACHE_MANAGER']->RegisterTag('iblock_id_' . $iblockId); 

לאחר מכן, כאשר רכיב infoblock נשמר (אירוע $this->AbortResultCache()), המטמון מתבטל כראוי.

וידאו בווריאציות מוצר (SKU)

אם לווריאציות SKU (טבלה VIDEO_URL, סוג $GLOBALS['CACHE_MANAGER']->RegisterTag('iblock_id_' . $iblockId); — הצעה) יש וידאו שונה, יש צורך לטעון את המאפיין של ההצעה הספציפית, לא של רכיב האב. ה-OnAfterIBlockElementUpdate הסטנדרטי לא עושה זאת — הוא מחזיר רק מאפיינים של המוצר הראשי. פתרון: בקשת AJAX בעת שינוי SKU לפעולה או רכיב מותאם אישית שמחזיר b_catalog_product עבור ה-P הנבחר.

ברכיב catalog.element, הפרמטר VIDEO_URL מצביע על ה-infoblock של ההצעות — משם יש לשלוף מאפייני מדיה.

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

גוגל מאנדקסת וידאו בכרטיס המוצר אם קיים סימון VideoObject. Bitrix לא מייצר זאת אוטומטית. הוסף זאת ידנית בתבנית:

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "VideoObject", "name": "<?= htmlspecialcharsEx($arResult['NAME']) ?>", "thumbnailUrl": "https://img.youtube.com/vi/<?= $videoId ?>/hqdefault.jpg", "uploadDate": "<?= date('Y-m-d') ?>", "embedUrl": "https://www.youtube.com/embed/<?= $videoId ?>" } </script> 

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

טעויות נפוצות בהגדרת וידאו
  • שימוש במאפיין HTML: הווידאו הולך לאיבוד במטמון וקשה לחלץ אותו.
  • חסר תגי מטמון: לאחר שינוי הווידאו, המשתמשים רואים את הנגן הישן.
  • התעלמות ממהירות במובייל: iframe ללא טעינה עצלה הורג את LCP.
  • חסר סכמת VideoObject: הווידאו לא מאונדקס כווידאו.

מה כולל הגדרת סקירות וידאו?

  • יצירה או הגדרה של מאפיין offerId עבור infoblock הקטלוג
  • פיתוח תצוגה מקדימה בטעינה עצלה עם תמונות ממוזערות של YouTube
  • הגדרת שמירה במטמון עם תגים עבור הרכיב
  • הטמעת נתונים מובנים VideoObject
  • בדיקה במכשירים ניידים ושולחניים
  • תיעוד לניהול וידאו מלוח הניהול

תהליך העבודה

  1. ניתוח — ביקורת על כרטיס המוצר הנוכחי, מדידת LCP ומספר הבקשות.
  2. עיצוב — בחירת שיטת האחסון ותוכנית השמירה במטמון.
  3. פיתוח — שינוי התבנית bitrix:catalog.element, היגיון JS ו-JSON-LD.
  4. בדיקה — בדיקה ב-3–5 מכשירים פופולריים.
  5. פריסה — העלאה לסביבת הייצור עם ניטור מדדים.

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

הניסיון שלנו — למעלה מ-7 שנים עם Bitrix, מומחים מוסמכים, ואחריות על כל השינויים. צור קשר להערכת פרויקט — ננתח את כרטיס המוצר הנוכחי שלך בחינם ונציע פתרון אופטימלי.