категория: , Полезности
✎ Опубликовано: 31.08.2017 ☕ Просмотров: 6778 ✉ Комментарии: 1
В этой статье я приведу пример скрипта - выгрузки из xls (csv) в Opencart. Этот скрипт может понадобится в таких случаях:
Итак. Для выгрузки нам надо будет то что импортируем. Это как правило прайс лист в формате Microsoft Office Excel (xls,xlsx), либо другие форматы, это не столь важно. Главное что бы открыв этот файл в программе Excel его можно было сохранить в формат CSV с каким-то разделителем.
Пусть для примера у нас будет такой вот прайс в xls формате, сохраним с разделителем - ;
Продукт1 | model-23 | 385 | Описание |
Продукт2 | model-24 | 520 | Описание для второго товара |
Продукт3 | model-25 | 113 | Описание для третьего |
где 1) Название товара, 2)Модель, 3) Цена, 4) Описание
Важная информация. Разделитель - это какой-то символ, который отделяет ячейки друг от друга, например: Ячейка1;Ячейка2;Ячейка3 или Ячейка1,Ячейка2,Ячейка3. Как видим в первом примере это точка с запятой, во втором - запятая. Понятно, что если в тексте есть этот символ - такой разделитель нельзя использовать т.к. он нарушит порядок ячеек. Важно помнить - разделитель должен быть в тексте только на месте соприкосновения ячеек, в тексте он не должен быть.
Итак, мы сохранили наш прайс в формат CSV. Далее будет приведен максимально простой пример реализации выгрузки, а именно весь документ мы откроем в текстовом редакторе и запихнем его в файл в котором будет код импорта.
Для начала открываем файл в котором будет нам скрипт. Например можно разместить все в файле admin/controller/catalog/product.php в функции index. После строки
public function index() {
Вставим содержимое нашего прайса, с примера выше, после сохранения в CSV оно будет таким:
Продукт1;model-23;385;Описание Продукт2;model-24;520;Описание для второго товара Продукт3;model-25;113;Описание для третьего
Мы его копируем и создаем переменную:
$document = "Продукт1;model-23;385;Описание
Продукт2;model-24;520;Описание для второго товара
Продукт3;model-25;113;Описание для третьего"; //наш файл уже как переменная
После этой переменной можно создавать код выгрузки
$upload_data = array(); // объявляем массив товаров для выгрузки
$document_data = explode(PHP_EOL, $document); //разбиваем наш прайс по строкам (explode - разбор, PHP_EOL - каждая новая строка как новый элемент)
foreach($document_data as $row){ //перебираем циклом массив строк
$row_data = explode(";", $row); //разбиваем строку на ячейки (";" - наш разделитель ячеек)
$upload_data[] = array( //записываем данные ячеек в массив продуктов для импорта
"name" => $row_data[0], // данные из 1 ячейки - Название товара
"model" => $row_data[1], // данные из 2 ячейки - Модель товара
"price" => $row_data[2], // данные из 3 ячейки - Цена товара
"description" => $row_data[3] // данные из 4 ячейки - Описание товара
);
}
После такой доработки можно уже данные либо куда-то отправить, либо запросом записать в базу.
Это самый простой пример, и запускаться он будет всякий раз при заходе в товары. Это сделано для пример, для упрощения понимания.
Надеюсь статья будет полезная для создания выгрузок в ваши магазины. Если будут вопросы - спрашивайте в комментариях.
Обзор всех модулей (платных и бесплатных) для импорта, экспорта и обновления товаров в 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 фильтров который продаются и развиваются. По завершению будет дана рекомендация какой же выбрать
Коллеги, давайте предоставлять хороший сервис и поднимать планку качества. Небольшая история как я обращался к разным разработчикам