В некоторых загрузках на маркетплейсы необходимо указывать поле 'Тип товара'. Что это такое, зачем оно нужно и как его прописать? И нужно ли, если можно сделать скрипт который автоматически будет генерировать тип товара исходя из его названия.

Тип товара - это основная характеристика что это за товар. Например Кровать, Велосипед, Ноутбук. Некоторые выгрузки, на тот же Яндекс маркет требуют указать не только название но и его тип. Как правило на это свойство задействуют стандартное поле в Opencart, например MPN.

Можно тип товара для каждого прописать вручную, но если у вас 20 000 товаров как быть? Месяц тратить времени? Нет конечно. Гораздо проще сделать это автоматически. Но подождите, подумаете вы, а как понять где слова типа в названии? Например: 'Велосипед Prime range 23' как скрипт поймет что надо из названия брать слово 'Велосипед' а не Prime или range. Конечно же без нашей помощи никак.



Для того что бы в названия товара брался его тип нам надо создать настройку в магазине config_replace_mpn (текстовое поле) где можно прописать все доступные типы в магазине. Это будет: Велосипед, Кровать, Подставка и т.п. - все зависит от того что вы продаете. Так вот скрипт берет эту настройку и смотрит если в названии товара есть слова которые прописаны в этой настройке - значит это и есть тип.

Пример реализации

В стандартное поле mpn будем сохранять тип товара. Для начала разместим рабочий код в контроллере. Для этого открываем файл admin/catalog/product.php где в удобное место вставляем функцию:

public function prefix() {
$all_product_query = $this->db->query('SELECT pd.name, p.mpn, p.product_id FROM ' . DB_PREFIX . 'product_description pd LEFT JOIN ' . DB_PREFIX . 'product p ON(p.product_id = pd.product_id)');
$count = 0;
foreach($all_product_query->rows as $product){
if(!$product['mpn']){
$mpn_plus = explode(',', $this->config->get('config_replace_mpn'));
foreach ($mpn_plus as $mpn) {
$mpn = trim($mpn);
$pos = stripos($product['name'], $mpn);
if($pos !== false) {
$all_product_query = $this->db->query('UPDATE ' . DB_PREFIX . 'product SET mpn = '' . $mpn . '' WHERE product_id = '' . $product['product_id'] .''');
$count++;
}
}
}
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($count));
}
После чего идем в файл admin/view/template/common/header.tpl и в любом удобном месте вставляем кнопку что бы запускать обновления типов товара при добавлении новых позиций на сайт:
































И не забывайте что в admin/controller/common/header.php надо добавить значение для token - ведь мы в коде шаблона обращаемся в админку - где нужен в GET параметре токен.

Таким образом у нас есть кнопка которая будет генерировать тип товаров для выгрузки.

На примере использовался код для Opencart 2.x который можно адаптировать под свой магазин

22.06.2018 2692
Новости из этой категории
08.09.2019 3538
Приятно иметь дело с хорошими людьми. Небольшая история с автором фильтра filter vier Виталием
Небольшая предыстория. Я уже не занимаюсь заказами и работой по техническим заданиям, правками и т.п. Я сейчас полностью перешел на разработку своих модулей.Посмотреть мо..
14.04.2019 11377
Депозит монобанк- обзор и отзывы
Уважаемые посетители, это статья создана для жителей Украины, для гостей с других стран эта статья не будет актуальная. Банк работает только на территории УкраиныДля нача..
19.03.2019 5037
Google против добавления лишнего текста на страницы категорий интернет-магазинов
Сотрудник Google Джон Мюллер (John Mueller) предостерег владельцев сайтов электронной коммерции от добавления ненужного текста на страницы категорий.По его мнению, добавл..
18.03.2019 5278
Как сделать автоматические якори в тексте
Была одна интересная доработка недавно. Надо было создать автоматическое содержание статьи на основании его h1-h6 заголовков.Зачем это нужно и как выглядитЭто нужно что б..
30.12.2018 7285
Google page speed обновился - обзор обновленного сервиса от google
Добро пожаловать в обзор и небольшие наблюдения о трансформации сервиса от гугл - скорость загрузки страниц 'google page speed'. Для начала небольшое отступление.Еще давн..
Вся информация, представленная на сайте, является демонстрационной и оставляя информацию о своих персональных данных, вы добровольно делаете их общедоступными.
Рекомендуем использовать обезличенные данные. Мы используем файлы cookie для вашего удобства пользования сайтом и повышения качества рекомендаций. Подробнее