Статьи

Создание инструмента импорта CSV-продукта в OpenCart — часть 1

Предположим, у вас есть список товаров для вашего магазина, цены на которые необходимо обновить на сайте. Но вы ненавидите ручную работу? Вам нужно решение, в котором вы можете напрямую импортировать этот список, и все ваши продукты и цены будут обновлены всего за несколько кликов. Да! это то, что мы собираемся сделать. По умолчанию OpenCart не предоставляет средства для импорта продуктов из любого внешнего источника, в этом случае нам нужно разработать модуль, который можно использовать для импорта.

В нашей предыдущей статье мы экспортировали некоторые продукты и их информацию (идентификатор продукта, модель, название продукта и цена), поэтому, продолжая нашу предыдущую работу, давайте приступим к созданию инструмента импорта!

Сегодня мы собираемся добавить систему импорта в OpenCart. Как мы знаем, OpenCart — это бесплатное решение для электронной коммерции, которое также позволяет разработчикам настраивать его соответствующим образом. Давайте поговорим о торговых магазинах. В повседневной жизни все меняется очень часто, например, изменение количества, изменение цены, изменение описания и т. Д.

Для развития любого бизнеса очень важно обновить магазин, и владелец должен знать о его конкурентах, чтобы все изменилось …! Теперь вопрос в том, запускает ли он-лайн магазин и хочет ли он менять цены на товары. Что он будет делать? Для этой цели мы предоставляем способ, с помощью которого пользователи могут чередовать вещи в соответствии со своими потребностями бизнеса. Так что, если вы работаете в электронном магазине и хотите внести некоторые изменения, эта система импорта поможет вам наилучшим образом. Итак, в этой первой части мы создадим форму / интерфейс, в который пользователь с правами администратора может загрузить файл CSV. Для справки, пожалуйста, посетите Создание продукта CSV Export Tool — OpenCart .

  1. Перейдите к (store_path)/admin/controller/catalog/product.php

  2. Найдите строку кода: $this->data['products'] = array();

  3. Вставьте данный код после него:

1
$this->data[‘import_csv’] = $this->url->link(‘catalog/product/importCSV’, ‘token=’ . $this->session->data[‘token’] . $url, ‘SSL’);

(Выше код мы проанализировали ссылку, чтобы мы могли назначить это для кнопки)

  1. Перейти к (store_path)/admin/view/template/catalog/product_list.tpl
  2. Вы найдете некоторый HTML-код.
  3. Просто найдите класс под названием «кнопка»
  4. В классе вы увидите дополнительные кнопки, такие как «вставить», «копировать» и т. Д.
  5. Просто вставьте данный код в верхней части всех кнопок
  6. <a onclick="location = '<?php echo $import_csv; ?>'" class="button">Import CSV</a>
Панель инструментов OpenCart

Так как мы создали кнопку выше, теперь мы создадим публичную функцию в том же файле контроллера, т.е. (store_path)/admin/controller/catalog/product.php . Убедитесь, что имя функции совпадает с именем, которое вы упомянули выше в ссылке. Итак, мы написали публичную функцию с именем importCSV()

Внутри функции нужно написать несколько строк кода

1
2
3
$this->document->setTitle(‘Import CSV’);
 // setting the page title
$this->data[‘heading_title’]=»Import CSV»;

Следующая строка загружает модель для последующего использования:

1
$this->load->model(‘catalog/product’);

Сейчас, когда мы создаем форму, мы собираемся проанализировать ссылки «Загрузить» и «Отмена» для пользователя.

1
2
3
4
$this->data[‘cancel’] = $this->url->link(‘catalog/product’, ‘token=’ . $this->session->data[‘token’] . $url, ‘SSL’);
 // cancel url
$this->data[‘action’] = $this->url->link(‘catalog/product/importCSV’, ‘token=’ . $this->session->data[‘token’] . $url, ‘SSL’);
 // current page url
1
2
3
4
5
6
7
8
9
// Breadcrumbs start here
$this->data[‘breadcrumbs’] = array();
$this->data[‘breadcrumbs’][] = array(‘text’ => $this->language->get(‘text_home’),
‘href’ => $this->url->link(‘common/home’, ‘token=’ . $this->session->data[‘token’], ‘SSL’), ‘separator’ => false);
//home page link
$this->data[‘breadcrumbs’][] = array(‘text’ => «Import CSV»,
‘href’ => $this->url->link(‘catalog/product’, ‘token=’ . $this->session->data[‘token’] . $url, ‘SSL’), ‘separator’ => ‘ :: ‘);
//product page link
// breadcrumbs end here

Мы расскажем контроллеру, который отображает import_csv.tpl для представления.

1
2
3
4
5
6
7
8
9
$this->template = ‘catalog/import_csv.tpl’;
   //giving the path of template
   // “import_csv.tpl” is a template name which will created later
   $this->children = array(
   ‘common/header’,
   ‘common/footer’);
   //calling header & footer
   $this->response->setOutput($this->render());
           // rendering the view

Теперь нам нужно создать еще один шаблон, который будет отображаться после нажатия кнопки

  1. Просто следуйте приведенному выше пути (store_path)/admin/view/template/catalog
  2. Создайте имя файла как import_csv.tpl
  3. Откройте шаблон в вашей любимой IDE и вставьте следующий простой HTML-код.
01
02
03
04
05
06
07
08
09
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
40
41
42
43
<div id=»content»>
<div class=»breadcrumb»>
<?php foreach ($breadcrumbs as $breadcrumb) { ?>
<?php echo $breadcrumb[‘separator’];
//display breadcrumb data
<a href=»<?php echo $breadcrumb[‘href’]; ?>»><?php echo $breadcrumb[‘text’];
<?php } ?>
 
</div>
<?php if ($success) { ?>
 <div class=»success»><?php echo $success;
 <?php } ?>
 
  <?php if ($error_warning) { ?>
  <div class=»warning»><?php echo $error_warning;
  <?php } ?>
 
<div class=»box»>
<div class=»heading»>
<h1>
<img src=»view/image/product.png» alt=»» />
 <?php echo $heading_title;
</h1>
 
<div class=»buttons»>
<a onclick=»$(‘#form’).submit();»
<a onclick=»location = ‘<?php echo $cancel; ?>’;»
</div>
<div class=»content»>
<form action=»<?php echo $action; ?>» method=»post» enctype=»multipart/form-data» id=»form»>
<table class=»form»>
<tr>
<td><span class=»required»>*
<td><input type=»file» name=»csv» value=»» />
<?php if ($error_csv) { ?>
<span class=»error»><?php echo $error_csv;
<?php } ?>
</td>
</tr>
</table>
</form>
</div>
</div>
Каталог OpenCart

Вы можете сделать свой собственный шаблон, приведенный выше код является его простой версией.

В этой части учебного пособия мы выполнили несколько шагов для создания «инструмента импорта», в связи с этим мы изменили шаблон, создали форму, чтобы обеспечить лучшую осуществимость для пользователя. В нашей следующей части этой статьи. Цель разделить эту статью на две (2) серии — прояснить вам «макеты» и «бизнес-логику» этого модуля. Поэтому в нашей следующей статье CSV будет напрямую координировать свою работу с базой данных и соответствующим образом импортировать данные. Спасибо за проявленный интерес, пожалуйста, предоставьте ваше предложение и комментарии. До следующей статьи, Счастливого Кодирования!