Розетка - самый крупный интернет магазин на территории Украины. Это уже и маркетплейс куда можно выгружать свои товары и там их продавать.
Чтобы настроить фид для 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]);
}
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();
}
}
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>';
}