категория: , Полезности
✎ Опубликовано: 22.06.2018 ☕ Просмотров: 2855 ✉ Комментарии: 0
Пример создания скрипта который может генерировать автоматический тип товара исходя из его названия
В некоторых загрузках на маркетплейсы необходимо указывать поле "Тип товара". Что это такое, зачем оно нужно и как его прописать? И нужно ли, если можно сделать скрипт который автоматически будет генерировать тип товара исходя из его названия.
Тип товара - это основная характеристика что это за товар. Например Кровать, Велосипед, Ноутбук. Некоторые выгрузки, на тот же Яндекс маркет требуют указать не только название но и его тип. Как правило на это свойство задействуют стандартное поле в 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 и в любом удобном месте вставляем кнопку что бы запускать обновления типов товара при добавлении новых позиций на сайт:
<a href="#" id="type_prefix_go" title="Прописать все товарам тип для YML выгрузки"><i class="fa fa-refresh" aria-hidden="true"></i></a>
<script>
$('#type_prefix_go').on('click', function(e){
e.preventDefault();
$.ajax({
url: 'index.php?route=catalog/product/prefix&token=<?php echo $token; ?>',
type: 'post',
dataType: 'json',
success: function(json) {
alert("Обновлено товаров: " + json);
}
});
});
</script>
И не забывайте что в admin/controller/common/header.php надо добавить значение для token - ведь мы в коде шаблона обращаемся в админку - где нужен в GET параметре токен.
Таким образом у нас есть кнопка которая будет генерировать тип товаров для выгрузки.
На примере использовался код для Opencart 2.x который можно адаптировать под свой магазин
Обзор всех модулей (платных и бесплатных) для импорта, экспорта и обновления товаров в Opencart из файлов xls и csv
Как мне "посчастливилось" пощупать UMI CMS особенно со стороны переноса данных и почему меня до сих пор тошнит при слове UMI
Читая информацию о рекламе в facebook я нашел кое что интересное
Чистый и валидный HTML и CSS код, Хорошие показатели Google Page Speed, Более 20 модулей в комплекте, Профессиональная техническая поддержка - это только часть того что есть в шаблоне
Исправляем странный баг в Opencart в удаляется товар при копировании. Этот баг присутствует в google chrome
Также в статье хочу выразить благодарность не только Виталию а и другим крутым авторам дополнений с кем приходилось иметь дело
Чтобы принимать Биткоин и Лайткоин в OpenCart, вам не нужно заполнять утомительные документы, проходить проверку и ждать несколько дней. Установите бесплатный модуль и просто введите адрес своего Биткоин и/или Лайткоин кошелька. Тогда все входящие платежи
Монобанк - прогрессивный банк без отделений в котором дают кредитные карточки с хорошим грейс периодом а также возможностью заработать открыв в нем депозит. Именно о нем и пойдет речь
Мы знаем что поисковые роботы любят текст на страницах. Однако публикуя тексты помните предназначена ли эта страница для такого текста
Небольшой пример как можно сделать автоматически содержание описания со скролом при клике на заголовок
Обзор платежного шлюза fondy который позволяет сделать онлайн оплату на сайте за любые товары или услуги
Как оптимизировать сайт для google page speed - обзор основного функционала сервиса от гугл для проверки скорости загрузки страницы
Для того что бы вывести кастомную информацию не надо много кода. Достаточно применить правильный подход и пару строк кода. Читаем в статье.
Как мне "посчастливилось" пощупать UMI CMS особенно со стороны переноса данных и почему меня до сих пор тошнит при слове UMI
В этом обзоре будут выявлены все плюсы и минусы каждого фильтра. Всего в обзоре будет 7 фильтров который продаются и развиваются. По завершению будет дана рекомендация какой же выбрать
Коллеги, давайте предоставлять хороший сервис и поднимать планку качества. Небольшая история как я обращался к разным разработчикам