От автора: если у вас есть интернет-магазин или какой-либо другой веб-бизнес, и вы не знаете, насколько полезным может быть CSV OpenCart, пришло время обновить ваши знания о работе с данными. Чтобы понять важность этого аспекта, давайте рассмотрим сценарий для интернет-магазина на OpenCart и создадим инструмент экспорта товаров в CSV-файл.
Предположим, в вашем интернет-магазине существуют тысячи позиций номенклатуры, и вам нужно изменить все цены товаров для специального события. Есть два возможных решения:
Перейти в панель управления (панель администрирования) товарами и вручную изменить цены одна за другой.
Предоставить соответствующему лицу прямой доступ к базе данных и позволить ему или ей поработать с вашими данными.
В первом случае, когда вы меняете цены на товар одна за другой через пользовательский интерфейс панели администрирования магазина, это безопасный способ. Но изменение тысяч цен на товары может занять много времени — вероятно, несколько недель для больших объемов данных.
Во втором случае, когда вы предоставляете прямой доступ к базе данных магазина, это может быть небезопасно. Иногда возникают серьезные проблемы, которые могут привести к сбою всей системы.
Каково решение?
Таким образом, должен существовать механизм, с помощью которого элементы можно отформатировать определенным образом, а затем напрямую импортировать / экспортировать их в систему пакетно. CSV (Comma-Separated-Value) — это лучшее решение для таких целей. И это именно то, о чем мы расскажем в этом руководстве.
Что такое CSV?
CSV — это сокращение от «Comma Separated Value» (разделенные через запятую значения). Это способ форматирования информации, которая извлекается из базы данных, чтобы ее можно было читать и редактировать в обычной программе для работы с электронными таблицами. Затем вы можете добавить эту информацию в базу данных всей партией.
Экспорт продуктов в OpenCart
Учитывая описанный выше сценарий, иногда сложно добавлять и редактировать товары пакетно, поэтому мы собираемся создать в системе Инструмент экспорта в CSV. Таким образом мы можем получить список всех товаров в определенном формате, чтобы можно было легко читать, добавлять и редактировать информацию. Давайте приступим к созданию инструмента экспорта.
1. Кнопка экспорта на странице товаров
1.1 Контроллер
Откройте файл (директория вашего магазина на opencart)/admin/controller/catalog/product.php. Найдите функцию getList(). Добавьте следующую строку после этой строки кода:
1 2 |
$this->data['products'] = array(); $this->data['export_csv'] = $this->url->link('catalog/product/exportCSV', 'token=' . $this->session->data['token'] . $url, 'SSL'); |
Контроллер просто анализирует URL-адрес экспорта, чтобы его можно было связать с кнопкой.
1.2. Представление
Откройте файл (директория вашего магазина на opencart)/admin/view/template/catalog/product_list.tpl. Найдите HTML-код:
1 |
<div class="buttons"> |
Добавьте в разметку кнопку экспорта:
1 |
<a onclick="location = '<?php echo $export_csv; ?>'" class="button">Export CSV</a> |
Перейдите в панель администрирования магазина и откройте раздел «Каталог»> «Товары», вы увидите в этом разделе кнопку «Экспорт», как показано на следующем скриншоте.
Экспорт товаров
2.1 Контроллер
Откройте файл ((директория вашего магазина на opencart)/admin/controller/catalog/product.php. Создайте новую публичную функцию public function exportCSV(){ }. Внутри функции просто добавьте следующие строки кода.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
$this->load->model('catalog/product'); // Загрузка Модели Товаров $temp_data = $this->model_catalog_product->getProducts(array('filter_status'=>1)); // Захват всех товаров, для которых задан статус Доступен /* Начало заголовка CSV */ header("Content-Type: text/csv"); header("Content-Disposition: attachment; filename=ProductsCSV-".date('d-m-Y').".csv"); // Отключаем кэширование header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1 header("Pragma: no-cache"); // HTTP 1.0 header("Expires: 0"); // Прокси /* Конец заголовка CSV */ $output = fopen("php://output", "w"); //Открывает и очищает содержимое файла; или создает новый файл, если он еще не существует $data = array(); // Нам не нужно экспортировать всю доступную информацию, поэтому создаем разделенный массив для этой информации foreach($temp_data as $data) { $data[] = array( 'product_id' =>$data['product_id'], 'model' =>$data['model'], 'name' =>$data['name'], 'quantity' =>$data['quantity'], ); } // Экспорт CSV foreach($data as $row) { fputcsv($output, $row); // здесь вы можете изменить разделитель / символ закрытия } fclose($output); // Закрываем файл |
Вот и все! Мы создали инструмент экспорта отваров из панели OpenCart. Просто нажмите кнопку экспорта, и CSV-файл будет загружен на ваш компьютер. Вы можете добавить столько столбцов, сколько вам нужно.
Заключение
«Время — золото.» Как предприниматель или бизнесмен, вы не хотите тратить свое драгоценное время. Что касается программного обеспечения, предприниматели всегда ищут лучший и наиболее эффективный подход к выполнению работы.
Таким образом, в этом руководстве мы создали бизнес-инструмент, который поможет быстрее экспортировать информацию о товарах из OpenCart с использованием формата данных CSV. Я также собираюсь написать руководство «Импорт CSV», чтобы вы могли легко добавлять и обновлять информацию в соответствии с вашими потребностями.
Надеюсь, вы нашли эту статью полезной для своего бизнеса. Благодарю за внимание!
Автор: Zaman Riaz
Источник: //code.tutsplus.com/
Редакция: Команда webformyself.
Комментарии (2)