Информация как настроить фид rozetka в модуле UniXML

Розетка - самый крупный интернет магазин на территории Украины. Это уже и маркетплейс куда можно выгружать свои товары и там их продавать.

Чтобы настроить фид для rozetka.com.ua достаточно перейти в модуль UniXML (В каналах продвижения) - нажать на вкладку Выгрузка из магазина, в списке найти Розетка маркетплейс и справа нажать на синий карандаш - переходим в настройки фида для розетки.

В этом маркетплейсе очень много требований к контенту сайта. Практически никто с первого раза туда не заходит. Но не так все страшно - не пугайтесь :) Все требования и документация находятся по ссылке https://sellerhelp.rozetka.com.ua/p185-pricelist-requirements.html ну а мы посмотрим самые частые вопросы

Категории магазина - категории розетки

Частая проблема - в товаре задана неправильная категория. Это исправить очень легко. В пункте настроек 3.7 можно задать соответствие категория магазина - категория маркетплейса. Если у вас на сайте категория называется чайники то в фид можно отдавать электрочайники, как на розетке. Также у розетки есть такой параметр как rz_id - то есть можно задать не только название категории а и ее id на розетке. Чтобы это сделать достаточно перейти в нужную категорию, например https://bt.rozetka.com.ua/electric_kettles/c80160/ (это категория электрочайники) и вычленить идентификатор категории, а именно цифры после c. В этом примере это 80160. Что бы отправить вашу категорию чайники в категорию розетке Электрочайники достаточно в пункте 3.7 добавить строку, слева выбрать категорию Чайники, правее прописать 80160. Этого будет достаточно что бы отправить в нужную категорию. Ну чтобы еще и по названию то можете прописать вот так 80160 - Электрочайники.

Правильные названия товаров

Наверное самая частая причина замечаний от розетки. Названия товаров должны быть по определенному шаблону: Тип товара Бренд Модель Размер Цвет (Артикул - если есть). Например "Куртка Abc clothes Scoperandom-HH XL Черная (1323280942900)" - это правильно, а вот так "Abc clothes Scoperandom-HH XL BLK 1323280942900" - неправильно.

Есть два варианта.

1) В любом поле товара прописать название товара для розетки. Например если это будет в поле location то в пункте 3.3 можете поставить ((p.location)) и название товара будет забираться с поля location. Это более трудоемкий вариант который в 80% случаях не очень то и нужный. 

2) Генерировать название товара из составляющих. Для этого в пункте 3.3 можно прописать примерно так {{Тип товара}} {manufacturer} {model} [[optionset1]] [[optionset2]] ({sku}). Подробнее как и с чего можно генерировать названия смотрите в пункте пункте 3.3.

Фото, Описания, Цены, Характеристики для фильтров

Все фото должны быть на белом фоне, без водяных знаков, хорошего качества. Описание должно присутствовать, хотя бы минимальное. Конечно, должна быть цена. Часто бывает что в товарах вашего магазина нет атрибутов. Их необходимо добавить т.к. розетка скажет что им нужны параметры для фильтрации в категории.

Также розетка может ругаться что у вас атрибуты не сходятся с ихними. В таком случае надо в пункте 3.8 - Соответствие атрибутов прописать соответствия.

Мультиязычность

На розетку можно выгружать данные не только на русской языке а и на украинском. Если выгружать только на русском розетка автоматически сделает перевод. Но когда у вас есть свой перевод конечно его и надо отдавать в фиде.

Что бы это сделать надо в настройках выгрузки надо поставить русский язык. Также в пункте 4.2 надо поставить идентификатор украинского языка и какие нам нужны поля для выгрузки на двух языках в формате:

$data['lang_data'] = array('lang_id' => 2, 'fields' => 'name,description');

где 1 - это id украинского языка в вашем магазине. Если не поставите выгрузка будет работать только для русского языка.

Рекомендации для настройки

1) Вы можете добавить еще promo_price - это цена по промо коду. Как правило она высчитывается по какой-то формуле, либо она где-то прописывается в каком-то поле товара.

Если промо цена прописана в поле товара то в пункте 3.12 можете слева прописать <promo_price> справа ((p.isbn)) - это если цена находится в поле isbn. Если в другом смотрите в пункте настроек подсказки и сделайте по аналогии.

Если промо цену нужно высчитывать можете сделать это через кастомный код в пункте настроек 4.3. Для этого можете поставить такой код:

$promo_price = $product['price'] * 0.87;
$product['attributes_full'][] = array(
'name' => 'promo_price',
'text' => $promo_price,
'end' => 'promo_price'
);

В этом примере промо цена высчитывается как -13% от основной цены.

2) В фид можете добавить также информацию о заметках к продажи. Сделать можно через пункт настроек 3.12.  Для этого достаточно слева добавить Доставка/Оплата а справа любой краткий текст о доставке и оплате. Например: Доставка день в день, необходима предоплата 30%.

3) Если используете опции размер/цвет обязательно поставьте Умножать товар на опции в пункте настроек 3.2. Добавьте по шаблону генерации размер и цвет в название а также размер и цвет в Дополнительные статические параметры в пункте 3.12.

4) Если надо выгрузить на двух языках атрибуты в пункте 4.3 поставьте код

foreach($product['attributes'] as $attribute_id => $attribute){
  $attr_query = $this->db->query("SELECT text FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product['product_original_id'] . "' AND attribute_id = '" . (int)$attribute_id . "' AND language_id = 2");
  $product['attributes_full'][] = array(
    'name' => 'param name="' . $attribute['name'] . '"',
    'text' => '<value lang="uk"><![CDATA[' . $attr_query->row['text'] . ']]></value><value lang="ru"><![CDATA[' . $attribute['text'] . ']]></value>',
    'end' => 'param',
    'decode' => true,
  );
  unset($product['attributes'][$attribute_id]);
}
Где language_id = 2 - это id украинского языка

Либо еще такой вариант
if($product['attributes']){
  $at_ids = implode(',', array_keys($product['attributes']));
  if($at_ids){
    $pa_sql = "SELECT attribute_id, text 
               FROM " . DB_PREFIX . "product_attribute 
               WHERE product_id = '" . $product['product_original_id'] . "' 
               AND attribute_id IN(" . $at_ids . ") 
               AND language_id = '" . (int)$data['lang_data']['lang_id'] . "'";
    $attrs1_query = $this->db->query($pa_sql);
  }
  if($attrs1_query->num_rows){
    foreach($attrs1_query->rows as $attribute1){
      $product['attributes_full'][] = array(
        'name' => 'param name="' . $product['attributes'][$attribute1['attribute_id']]['name'] . '"',
        'text' => '<value lang="uk">' . $attribute1['text'] . '</value><value lang="ru">' . $product['attributes'][$attribute1['attribute_id']]['text'] . '</value>',
        'end' => 'param',
        'decode' => true
      );
    }
    $product['attributes'] = array();
  }
}

И в структуре (кнопка справа </> Структура файла XML) после строки
foreach($product['attributes_full'] as $attribute){
добавьте
if(isset($attribute['decode']) && $attribute['decode']){
  $attribute['text'] = html_entity_decode($attribute['text'], ENT_QUOTES, 'UTF-8');
}
Важное замечание по розетке. К сожалению идентификаторы товаров нельзя поменять. Если настраиваете первый раз выгрузку серьезно отнеситесь к выбору откуда брать идентификатор, пункт 5.2.

Если розетка прислала вам список правок внимательно посмотрите что можете сделать самостоятельно, что по контенту, а что по технической части, и только после этого пишите автору.

Если для некоторых товаров нужны свои категории в розетке можно сделать так. 

В пункте 4.2 добавляем кастомные категории

$data['custom_categories'] = array( // 'id' => 'категория'
  '111111112' => 'Название категории для розетки',
  '111111113' => 'Название категории для розетки 2',
  '111111114' => 'Название категории для розетки 3',
);


В пункте 4.3 назначаем товарам нужные кастомные категории

if($product['model'] == 'модель товара'){ //или же по названию так $product['name'] == 'название товара'
  $product['category_id'] = 111111113; //то есть id кастомной категории
}
if($product['model'] == 'модель товара 2'){
  $product['category_id'] = 111111114;
}


И в структуре (белая кнопка справа </>)

перед строкой

foreach($startup['categories_xml'] as $category) {

добавляем

foreach($startup['custom_categories'] as $cat_id => $cat_name) {
  $xml .= '<category id="' . $cat_id .'">' . $cat_name .'</category>';
}
×
Информация только для UniXML 7.x
Модуль не работает в рф и работать не будет

Разработчик модуля - Прут Николай.

Работаю с opencart c 2010 года.

Создал успешные модули UniXML Pro, MicrodataPro, Easyphoto, Редиректор 301 и другие.

Авторское право на модуль UniXML и информацию на этом сайте принадлежит Прут Николаю.

Копирование материала или использования нелицензионного модуля запрещено.