Корзина0 позиций
на сумму 0 руб.

Блог разработчика 1С-Битрикс

8 (495) 194 60 75

Время работы: ПН - ВС 10-18

  • Архив

    «   Май 2020   »
    Пн Вт Ср Чт Пт Сб Вс
            1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
                 

Комлексный компонент 1С-Битрикс catalog работа с YML выгрузкой для Яндекс.Маркет

При выгрузке товаров с sku на яндекс маркет, яндекс требует чтобы каждому торговому предложению соответствовала уникальная ссылка и страница сайта.
Комплексный компонент catalog с последней стабильной версией тогового модуля Интернет-магазин (sale) ver.14.11.9 данное требование не обеспечивает.
Производим кастомизацию скрипта отвечающего за показ страницы с выводом элемента каталога.

Для изменения компонента catalog скопируем файлы шаблона в папку .default и найдем в составе файлов скопированного шаблона шаблон компонента catalog.element.
В папке шаблона, в script.js найдем и немножко изменим функцию window.JCCatalogElement.prototype.SetCurrent(), которая отвечает за начальный вывод SKU:

window.JCCatalogElement.prototype.SetCurrent = function()
{
   var i = 0,
   j = 0,
   strName = '',
   arShowValues = false,
   arCanBuyValues = [],
   arFilter = {},
   tmpFilter = [],
   current = this.offers[this.offerNum].TREE,
   //CUSTOM START
   paramsUrl = window.location.search,
   pidRegExp = new RegExp(/[?&]pid=(\d+)/),
   pid = pidRegExp.exec(paramsUrl);
   

   if (pid && pid[1]) {
   for (i = 0; i < this.offers.length; i++)
   {
      if (this.offers[i].ID == pid[1]) {
      current = this.offers[i].TREE;
      }
   }  
   }
   //CUSTOM END

     ...
 
Теперь при наличии в GET запросе параметра pid с значением равным ID элемента будет активна нужная страница.
Осталось немножко откастомить скрипт формирования YML файла, чтобы получить в Маркете ссылку на предложение SKU вида

http://www.youdomain.ru/catalogsection/catalogelement/?pid=elementID

Для YML выгрузки изменим обработку yandex_simple_run.php в разделе формирования ноды <url />добавим параметр pid, при выполнении кастомизации необходимо следовать всем правилам из курсов http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43в
$strTmpOff.= "<url>http://".$arAcc['SERVER_NAME'].htmlspecialcharsbx($arAcc["~DETAIL_PAGE_URL"]).(strstr($arAcc['DETAIL_PAGE_URL'], '?') === false ? '?' : '&')."r1=<?echo \$strReferer1; ?>&r2=<?echo \$strReferer2; ?>&pid=".$arOfferItem["ID"]."</url>\n";

 
Дополняем выбороку флагом отбора в свойствах элементов инфоблока, чтобы можно было выгружать только нужные элементы.
Все готово, выгружаем товары в Маркет и ждем покупателей!

Bitrix Framework

Это созданная на основе PHP платформа для разработки веб-приложений. На этой платформе компанией «1C-Битрикс» созданы два популярных продукта: «1C-Битрикс: Управление сайтом» и «1С-Битрикс: Корпоративный портал».


Что нового?

13.04.2015 Новый «Битрикс24»
Новый «Битрикс24» – бизнес-про...

12.03.2015 Возрастной ценз
Денис Митрофанов, QSOFT, Ксения...

11.03.2015 Выставка CE&PE
С 9 апреля по 12 апреля 2015 г....

Мы в соцсетях