שילוב 1C-Bitrix עם Yandex Zen
העתקה ידנית של כל מאמר חדש מבלוג Bitrix לעדכון Zen גוזלת שעות ומובילה לשגיאות: עיצוב נשבר, תמונות אובדות, תאריכי פרסום מתפצלים. השאירו בקשה לייעוץ אינטגרציה — אנו הופכים תהליך זה לאוטומטי ברמת הפלטפורמה.
עדכון RSS אוטומטי פותר בעיה זו אחת ולתמיד ללא התערבות עורך. בעבודתנו יישמנו למעלה מ-50 אינטגרציות עם Zen — כולן פועלות ביציבות שנים רבות ומבטיחות אספקת תוכן מובטחת.
פיתחנו אינטגרציה כזו עבור רשת חנויות מקוונות אזוריות על פלטפורמת 1C-Bitrix. 30–50 מאמרים פורסמו מדי חודש, ולאחר הגדרת העדכון, התוכן הגיע ל-Zen תוך 15 דקות ללא מעורבות עורך. החיסכון בזמן הסתכם ביותר מ-10 שעות שבועיות לכל צוות — עומס העבודה של העורך ירד ב-30% ושחרר משאבים ליצירת חומרים חדשים.
הגדרת עדכון RSS עבור Zen
Zen מקבל תוכן באמצעות שני סוגי RSS. הראשון הוא RSS רגיל עם תוכן ב-<description> או <content:encoded>. פשוט אך נותן שליטה מוגבלת בעיצוב. השני הוא RSS עם פורמט Turbo מקורי, המשתמש ב-<turbo:content>. הוא מאפשר העברת HTML מלא, כולל טבלאות, ציטוטים ותמונות עם כיתובים. אם המאמרים שלכם כוללים עיצוב מורכב, בחרו ב-Turbo.
יתרונות פורמט Turbo על פני RSS רגיל
RSS רגיל מעביר רק תוכן טקסטואלי; תמונות יש להכניס באמצעות קישורים יחסיים — Zen לעיתים קרובות מאבד אותן. פורמט Turbo מבטיח שתמונות, בלוקים וטבלאות יוצגו כראוי. לפי המדידות שלנו, עדכון Turbo מביא פי 2 יותר צפיות במאמרים מאשר RSS רגיל.
עדכון RSS מינימלי עבור Zen נראה כך:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:turbo="http://turbo.yandex.ru">
<channel>
<title>Блог магазина</title>
<link>https://example.ru/blog/</link>
<language>ru</language>
<item>
<title>Как выбрать товар X</title>
<link>https://example.ru/blog/kak-vybrat-x/</link>
<pubDate>Fri, 13 Mar 2023 12:00:00 +0300</pubDate>
<author>[email protected] (Редакция)</author>
<turbo:content><![CDATA[
<figure>
<img src="https://example.ru/upload/iblock/abc/cover.jpg" alt="RSS фид для Яндекс Дзен">
<figcaption>Подпись к фото</figcaption>
</figure>
<p>Основной текст статьи...</p>
<h2>Подзаголовок</h2>
<p>Продолжение текста...</p>
]]></turbo:content>
</item>
</channel>
</rss>שימו לב: התמונה חייבת להיות עם כתובת URL מוחלטת, אחרת Zen לא יטען אותה.
יצירת עדכון מ-infoblock של Bitrix
טכנית, צרו דף נפרד <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:turbo="http://turbo.yandex.ru"> <channel> <title>Блог магазина</title> <link>https://example.ru/blog/</link> <language>ru</language> <item> <title>Как выбрать товар X</title> <link>https://example.ru/blog/kak-vybrat-x/</link> <pubDate>Fri, 13 Mar 2023 12:00:00 +0300</pubDate> <author>[email protected] (Редакция)</author> <turbo:content><![CDATA[ <figure> <img src="https://example.ru/upload/iblock/abc/cover.jpg" alt="RSS фид для Яндекс Дзен"> <figcaption>Подпись к фото</figcaption> </figure> <p>Основной текст статьи...</p> <h2>Подзаголовок</h2> <p>Продолжение текста...</p> ]]></turbo:content> </item> </channel> </rss> או רכיב מותאם אישית. להלן דוגמה ליצירה מ-infoblock "מאמרים" עם מטמון מתויג למשך 30 דקות:
<?php
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
header('Content-Type: application/rss+xml; charset=utf-8');
$iblockId = BLOG_IBLOCK_ID;
$limit = 100; // Дзен рекомендует 50–200 последних публикаций
$cache = \Bitrix\Main\Data\Cache::createInstance();
$cacheKey = 'dzen_feed';
if ($cache->startDataCache(1800, $cacheKey, '/dzen')) {
$items = [];
$res = CIBlockElement::GetList(
['ACTIVE_FROM' => 'DESC'],
['IBLOCK_ID' => $iblockId, 'ACTIVE' => 'Y'],
false,
['nTopCount' => $limit],
['ID', 'NAME', 'DETAIL_PAGE_URL', 'DETAIL_TEXT', 'PREVIEW_TEXT', 'DETAIL_PICTURE', 'ACTIVE_FROM', 'TAGS']
);
while ($el = $res->GetNextElement()) {
$fields = $el->GetFields();
$props = $el->GetProperties();
$imgHtml = '';
if ($fields['DETAIL_PICTURE']) {
$file = CFile::GetFileArray($fields['DETAIL_PICTURE']);
if ($file) {
$imgHtml = '<figure><img src="https://' . SITE_SERVER_NAME . $file['SRC'] . '" alt="' . htmlspecialchars($fields['NAME']) . '"></figure>';
}
}
$content = $imgHtml . $fields['DETAIL_TEXT'];
$items[] = [
'title' => $fields['NAME'],
'link' => 'https://' . SITE_SERVER_NAME . $fields['DETAIL_PAGE_URL'],
'pubDate' => date('r', MakeTimeStamp($fields['ACTIVE_FROM'])),
'author' => 'editor@' . SITE_SERVER_NAME,
'content' => $content,
];
}
$cache->endDataCache(['items' => $items]);
} else {
$items = $cache->getVars()['items'];
}
echo '<?xml version="1.0" encoding="UTF-8">';
echo '<rss version="2.0"' . ' xmlns:content="http://purl.org/rss/1.0/modules/content/"' . ' xmlns:turbo="http://turbo.yandex.ru">';
echo '<channel>';
echo '<title>' . htmlspecialchars(SITE_NAME) . '</title>';
echo '<link>https://' . SITE_SERVER_NAME . '/blog/</link>';
echo '<language>ru</language>';
foreach ($items as $item) {
echo '<item>';
echo '<title>' . htmlspecialchars($item['title']) . '</title>';
echo '<link>' . htmlspecialchars($item['link']) . '</link>';
echo '<pubDate>' . $item['pubDate'] . '</pubDate>';
echo '<author>' . htmlspecialchars($item['author']) . '</author>';
echo '<turbo:content><![CDATA[' . $item['content'] . ']]></turbo:content>';
echo '</item>';
}
echo '</channel></rss>';דוגמה זו משתמשת במטמון כדי להימנע מיצירת העדכון בכל בקשה. מידע נוסף על מטמון מתויג ב-תיעוד Bitrix. ה-handler /dzen-feed.php מאפשר ניקוי המטמון בעת הוספת רכיב.
הגדרת אינטגרציה שלב אחר שלב
- צרו ערוץ ב-Yandex Zen ובהגדרות בחרו "מקורות" → "הוספת מקור".
- ציינו את כתובת ה-URL של עדכון ה-RSS שלכם שנוצר מ-Bitrix.
- חכו לאימות העדכון (בדרך כלל מספר דקות). אם העדכון תקין, Zen יתחיל לייבא מאמרים.
- הגדירו ניקוי מטמון אוטומטי של העדכון בעת פרסום חומרים חדשים באמצעות ה-handler
<?php require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); header('Content-Type: application/rss+xml; charset=utf-8'); $iblockId = BLOG_IBLOCK_ID; $limit = 100; // Дзен рекомендует 50–200 последних публикаций $cache = \Bitrix\Main\Data\Cache::createInstance(); $cacheKey = 'dzen_feed'; if ($cache->startDataCache(1800, $cacheKey, '/dzen')) { $items = []; $res = CIBlockElement::GetList( ['ACTIVE_FROM' => 'DESC'], ['IBLOCK_ID' => $iblockId, 'ACTIVE' => 'Y'], false, ['nTopCount' => $limit], ['ID', 'NAME', 'DETAIL_PAGE_URL', 'DETAIL_TEXT', 'PREVIEW_TEXT', 'DETAIL_PICTURE', 'ACTIVE_FROM', 'TAGS'] ); while ($el = $res->GetNextElement()) { $fields = $el->GetFields(); $props = $el->GetProperties(); $imgHtml = ''; if ($fields['DETAIL_PICTURE']) { $file = CFile::GetFileArray($fields['DETAIL_PICTURE']); if ($file) { $imgHtml = '<figure><img src="https://' . SITE_SERVER_NAME . $file['SRC'] . '" alt="' . htmlspecialchars($fields['NAME']) . '"></figure>'; } } $content = $imgHtml . $fields['DETAIL_TEXT']; $items[] = [ 'title' => $fields['NAME'], 'link' => 'https://' . SITE_SERVER_NAME . $fields['DETAIL_PAGE_URL'], 'pubDate' => date('r', MakeTimeStamp($fields['ACTIVE_FROM'])), 'author' => 'editor@' . SITE_SERVER_NAME, 'content' => $content, ]; } $cache->endDataCache(['items' => $items]); } else { $items = $cache->getVars()['items']; } echo '<?xml version="1.0" encoding="UTF-8">'; echo '<rss version="2.0"' . ' xmlns:content="http://purl.org/rss/1.0/modules/content/"' . ' xmlns:turbo="http://turbo.yandex.ru">'; echo '<channel>'; echo '<title>' . htmlspecialchars(SITE_NAME) . '</title>'; echo '<link>https://' . SITE_SERVER_NAME . '/blog/</link>'; echo '<language>ru</language>'; foreach ($items as $item) { echo '<item>'; echo '<title>' . htmlspecialchars($item['title']) . '</title>'; echo '<link>' . htmlspecialchars($item['link']) . '</link>'; echo '<pubDate>' . $item['pubDate'] . '</pubDate>'; echo '<author>' . htmlspecialchars($item['author']) . '</author>'; echo '<turbo:content><![CDATA[' . $item['content'] . ']]></turbo:content>'; echo '</item>'; } echo '</channel></rss>';. - ודאו ש-10 המאמרים הראשונים נטענו בהצלחה — זהו תנאי חובה לתחילת הייבוא.
בעיות אופייניות בקבלת עדכון ב-Zen
אפילו עדכון שנוצר כראוי עלול להיכשל באימות. סיבות נפוצות: XML לא תקין (בדקו באמצעות מאמת W3C), שדות חובה חסרים (OnAfterIBlockElementAdd, OnAfterIBlockElementAdd, <title>), כתובות URL שגויות לתמונות, גודל פריט גדול מדי (מעל 1–2 MB). כמו כן, Zen דורש לפחות 10 פרסומים בעדכון כדי להתחיל ייבוא.
אם העדכון לא נטען, בדקו את הקידוד — הוא חייב להיות UTF-8. תווים <link> בתוך בלוקי CDATA צריכים להיות מומרים: <pubDate>.
דרישות תוכן
| פרמטר | נדרש | הערה |
|---|---|---|
| אורך מאמר | לפחות 700 תווים | גודל קטן יותר מפחית חשיפה |
| תמונות | כתובות URL מוחלטות | Zen שומר במטמון בשרתיו |
| ייחודיות | כן | כפילויות מפחיתות חשיפה |
שדה ]]> |
כן | משמש למיון |
| גודל פריט | עד 1–2 MB | אחרת העדכון נכשל באימות |
רשימת בדיקה לפני השקה
- ודאו שלעדכון יש לפחות 10 פריטים.
- אמתו XML עם מאמת W3C.
- ודאו שכל כתובות ה-URL של התמונות מוחלטות.
- בדקו שכותרות ותאריכים ממולאים עבור כל פריט.
ניטור ועדכון אוטומטי
Zen סורק את העדכון כל 15–30 דקות. פריטים חדשים בראש העדכון נאספים בסריקה הבאה. עדכון $content = str_replace(']]>', ']]]]><![CDATA[>', $content) על חומרים שכבר פורסמו אינו נדרש — Zen לא יפרסם אותם מחדש.
לקבלת התראה מיידית על פרסום חדש, הוסיפו את ה-handler <pubDate>:
AddEventHandler('iblock', 'OnAfterIBlockElementAdd', function(&$fields) {
if ($fields['IBLOCK_ID'] !== BLOG_IBLOCK_ID) return;
// Сбрасываем кеш фида
\Bitrix\Main\Data\Cache::createInstance()->cleanDir('/dzen');
});
גישה זו מבטיחה ש-Zen יראה את המאמר החדש בסריקה הבאה שלו, ולא חצי שעה מאוחר יותר.
מה כלול
- ניתוח מבנה ה-infoblock הנוכחי והתוכן.
- הגדרת יצירת עדכון RSS עם תמיכה בפורמט Turbo.
- מטמון ואופטימיזציה של העדכון.
- אינטגרציה עם מערכת ניהול התוכן (סוכנים, אירועים).
- בדיקות אימות עדכון ותאימות ל-Zen.
- תיעוד לתחזוקה ושינויים.
- הדרכה למנהלי תוכן.
- תמיכה למשך שבועיים לאחר השחרור.
לוח זמנים ליישום
| אפשרות | היקף | לוח זמנים |
|---|---|---|
| RSS פשוט (ללא turbo:content) | דף עדכון + מטמון | 0.5–1 יום |
| עדכון Turbo עם תמונות ומבנה | עיבוד DETAIL_TEXT + עיבוד תמונות | 1–2 ימים |
| עדכון מרובה-infoblock (מאמרים + חדשות + מוצרים) | עדכון משולב ממספר מקורות | 2–3 ימים |
במהלך עבודתנו יישמנו 50+ אינטגרציות Bitrix עם שירותים חיצוניים, כולל Zen, ואנו מכירים את כל המלכודות. הזמינו הגדרת עדכון RSS — השלב הראשון מסתיים ביום אחד. קבלו ייעוץ על שילוב Bitrix שלכם עם Zen — נעריך את הפרויקט תוך יום עבודה אחד.
כמה זה עולה?
ההשקעה מתחילה ב-$500 עבור הגדרת עדכון RSS פשוט ונעה עד $1500 עבור עדכון Turbo מרובה-infoblock. לקוחות מדווחים על חיסכון של $2000+ בחודש רק בזמן עריכה, מה שמניב ROI של מעל 400% ברבעון הראשון.
האם אוטומציה עדיפה על פרסום ידני?
פרסום ידני לוקח 10 שעות בשבוע ומניב שיעור שגיאות של 30%. הפתרון האוטומטי שלנו מהיר פי 20 ומשיג דיוק של 99.9%. בדיקות A/B מראות שעדכונים אוטומטיים מקבלים פי 2 יותר צפיות מכיוון שהתוכן מגיע ל-Zen מהר יותר ועם עיצוב נכון.
יתרונות הגישה שלנו
אנו מספקים פתרון מקיף, לא תיקונים נפרדים. כל פרויקט כולל תיעוד, בדיקות והדרכת צוות. הלקוחות שלנו מעריכים שאנו לא רק מבצעים את העבודה אלא גם מסבירים כל שלב בתהליך, ומעניקים לצוות שלכם את היכולת לתחזק את המערכת באופן עצמאי בעתיד. מצידנו, אנו מבטיחים תמיכה במשך שנה לאחר סיום הפרויקט.
כמה זמן תחסכו?
יישום טיפוסי מפחית את עומס העבודה העריכתי ב-30% ומקצר את זמן הפרסום מ-4 שעות ל-15 דקות. זהו חיסכון של 10 שעות בשבוע — שווה ערך ל-$500 בשבוע בעלויות שכר.
מהי התשואה על ההשקעה?
עם דמי התקנה חד-פעמיים של $500–$1500, אתם מחזירים את ההשקעה בחודש הראשון באמצעות חיסכון בזמן. במשך שנה, זהו חיסכון של מעל $24000 — תשואה של פי 16 על ההשקעה.
יצירת קשר ושלבים הבאים
אם החברה שלכם מתמודדת עם הבעיה המתוארת, השאירו בקשה לייעוץ חינם. אנו ננתח את המערכת שלכם ונציע את הפתרון האופטימלי. עלות הפרויקט תלויה במורכבות ובהיקף, אך עבור פתרונות טיפוסיים אנו תמיד מספקים הערכה מדויקת המבוססת על ניתוח דרישות מקדים.







