ndnn

[HowTo] Добавление данных в инфо о заказе и при печати счета SKU, UPC и т.д. для тех кому нужно!

Рекомендуемые сообщения

ndnn    9

Добавление данных в инфо о заказе и при печати счета SKU, UPC и т.д. для тех кому нужно!

Так по выше указанному примеру у меня так и не получилось довести все до ума. Но нашел еще один вариант только не UPC a SKU по тому же принципу:

Затронутые файлы:

   /admin/view/templates/sale/order_invoice.tpl
   /admin/view/templates/sale/order_form.tpl - по тому же принципу как order_invoice.tpl
   /admin/view/templates/sale/order_info.tpl - по тому же принципу как order_invoice.tpl
   /admin/language/english/sale/order.php
   /admin/model/sale/order.php
   /admin/controller/sale/order.php
   /catalog/model/checkout/order.php

-----------------------------------------------------------------------------------------------------------------------------

Первое:

В базе данных открываем раздел order_product и добавляем в нем поле sku (VARCHAR 60)

 
Или так:
    ALTER TABLE order_product ADD sku VARCHAR(60);
-----------------------------------------------------------------------------------------------------------------------------

Начнем с

admin/view/templates/sale/order_invoice.tpl

 

1. Находим примерно 67 строка:

        <td><b><?php echo $column_model; ?></b></td>

Дописываем над ней

        <td><b><?php echo $column_sku; ?></b></td>

 

2. Находим примерно 79 строка:

              <td><?php echo $product['model']; ?></td>

Дописываем над ней

        <td align="right"><?php echo $product['sku']; ?></td>

 

3. Находим примерно 95 строка:

              <td align="right" colspan="4"><b><?php echo $total['title']; ?>:</b></td>

 

Меняем количество столбцов на 5
-----------------------------------------------------------------------------------------------------------------------------
Далее переходим к файлу
admin/language/english/sale/order.php
               $_['column_sku']                              = 'SKU';
В место SKU указываем нужную информацию к примеру: Артикул или Поставщик
-----------------------------------------------------------------------------------------------------------------------------
Далее переходим к файлу
admin/model/sale/order.php
 
1. Находим примерно 84 строка
if (isset($data['order_product'])) {      
            foreach ($data['order_product'] as $order_product) {   
               $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$order_product['product_id'] . "', name = '" . $this->db->escape($order_product['name']) . "', model = '" . $this->db->escape($order_product['model']) . "', quantity = '" . (int)$order_product['quantity'] . "', price = '" . (float)$order_product['price'] . "', total = '" . (float)$order_product['total'] . "', tax = '" . (float)$order_product['tax'] . "', reward = '" . (int)$order_product['reward'] . "'");
 
Меняем на
if (isset($data['order_product'])) {      
            foreach ($data['order_product'] as $order_product) {   
               $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$order_product['product_id'] . "', name = '" . $this->db->escape($order_product['name']) . "', model = '" . $this->db->escape($order_product['model']) . "', quantity = '" . (int)$order_product['quantity'] . "', price = '" . (float)$order_product['price'] . "', total = '" . (float)$order_product['total'] . "', tax = '" . (float)$order_product['tax'] . "', reward = '" . (int)$order_product['reward'] . "', sku = '" . (float)$product['sku'] . "'");
 
2. Находим примерно 175 строка
foreach ($data['order_product'] as $order_product) {   
               $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_product_id = '" . (int)$order_product['order_product_id'] . "', order_id = '" . (int)$order_id . "', product_id = '" . (int)$order_product['product_id'] . "', name = '" . $this->db->escape($order_product['name']) . "', model = '" . $this->db->escape($order_product['model']) . "', quantity = '" . (int)$order_product['quantity'] . "', price = '" . (float)$order_product['price'] . "', total = '" . (float)$order_product['total'] . "', tax = '" . (float)$order_product['tax'] . "', reward = '" . (int)$order_product['reward'] . "'");
 
Меняем на
foreach ($data['order_product'] as $order_product) {   
               $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_product_id = '" . (int)$order_product['order_product_id'] . "', order_id = '" . (int)$order_id . "', product_id = '" . (int)$order_product['product_id'] . "', name = '" . $this->db->escape($order_product['name']) . "', model = '" . $this->db->escape($order_product['model']) . "', quantity = '" . (int)$order_product['quantity'] . "', price = '" . (float)$order_product['price'] . "', total = '" . (float)$order_product['total'] . "', tax = '" . (float)$order_product['tax'] . "', reward = '" . (int)$order_product['reward'] . "' , sku = '" . (float)$product['sku'] . "'");
 
3. Находим примерно 480 строка
 public function getOrderProducts($order_id) {
      $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
      
      return $query->rows;
   }
 
Меняем на
public function getOrderProducts($order_id) {
      $query = $this->db->query("SELECT a.*, b.sku FROM " . DB_PREFIX . "order_product a LEFT JOIN " . DB_PREFIX . "product b ON a.product_id = b.product_id WHERE order_id = '" . (int)$order_id . "'");
     
      return $query->rows;
   }
-----------------------------------------------------------------------------------------------------------------------------
Далее переходим к файлу
admin/controller/sale/order.php
 
1. Находим примерно 1090 строка
         'reward'           => $order_product['reward'],
 
Дописываем над ней
         'sku'              => $order_product['sku']
 
2. Находим примерно 2285 строка
         $this->data['column_model'] = $this->language->get('column_model');
 
Дописываем над ней
         $this->data['column_sku'] = $this->language->get('column_sku');
 
3. Находим примерно 2425 строка
         'option'   => $option_data,
 
Дописываем под ней
         'sku'      => $product['sku'],
-----------------------------------------------------------------------------------------------------------------------------
Далее переходим к файлу
catalog/model/checkout/order.php
 
1. Находим примерно 480 строка
foreach ($data['products'] as $product) { 
         $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "''");
 
Меняем на
foreach ($data['products'] as $product) { 
         $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "', sku = '" . (float)$product['sku'] . "'");
 
ВСЕ, естественно все тронутые файлы сохраняем, не забываем про UTF8, проверяем работоспособность!
-----------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------
Пример то что получилось
zakaz-sku.jpg
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
order-sku.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
unkind    10

ТС молодец, что хочет помочь людям, НО! Зачем менять БД? Зачем добавлять поле в таблицу??? Все можно сделать в файлах контроллера, модели и шаблона. Я все это у себя вывел без изменения БД. В админке без проблем выводится и SKU и UPC...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ndnn    9

Я просто другого способа не нашел. Вы бы могли вылить свой способ вывода данных в админке?

 

ТС молодец, что хочет помочь людям, НО! Зачем менять БД? Зачем добавлять поле в таблицу??? Все можно сделать в файлах контроллера, модели и шаблона. Я все это у себя вывел без изменения БД. В админке без проблем выводится и SKU и UPC...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
unkind    10

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
arvaal    11

Помогите пожалуйста решить проблему. Недавно добавил в админку отображение sku и запись ее в базу. Но получился косяк с добавление товара к заказу. До нажатия на кнопку "добавить товар" все отображается хорошо, после нажатия в области где должен отображается sku появляется "undefined". На сколько я понял это скрипт не может заменить данные в полях для артикула. Ниже размещаю картинки и исходные коды view/sale/order_form.tpl, controller/sale/order.php, model/sale/order.php
Картинка-1
Картинка-2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ndnn    9

Этот метод оказался намного сложнее и не практичным, Вам можно обратится за помощью к zubovd, если у него будет время он поможет!

 

Помогите пожалуйста решить проблему. Недавно добавил в админку отображение sku и запись ее в базу. Но получился косяк с добавление товара к заказу. До нажатия на кнопку "добавить товар" все отображается хорошо, после нажатия в области где должен отображается sku появляется "undefined". На сколько я понял это скрипт не может заменить данные в полях для артикула. Ниже размещаю картинки и исходные коды view/sale/order_form.tpl, controller/sale/order.php, model/sale/order.php
Картинка-1
Картинка-2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Focto    2

Проделал все как указано выше, столбец отображается, но пустой и в таблице БД в столбце sku нет данных.

В чем может быть причина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
esperant    0

а зачем так сложно, я делал так:
файл admin/controller/sale/order.php 

public function invoice() {
// находим эту строчку и тут вставляем этот код 
//SKU invoice FIX
                $this->load->model('catalog/product');
                $this->data['column_sku'] = $this->language->get('column_sku'); 

дальше в этой же функции invoice ищем строку приблезительно 2500 в ней находим 

foreach ($products as $product) {
//тут же вставляем этот код
//SKU invoice fix
$db_product = $this->model_catalog_product->getProduct($product['product_id']);


// находим $product_data[] = array(

$product_data[] = array(
     'sku'      => $db_product['sku'],/*SKU invoice fix вставляем эту строку*/
     'name'     => $product['name'],
                                                

дальше идем в файлы которые относятся к language
файл admin/language/russian/sale/order.php

$_['column_sku']            = 'Артикул';

идем в темплейт:

/admin/view/template/sale/order_invoice.tpl

<table class="product">
    <tr class="heading">
      <td><b><?php echo $column_product; ?></b></td>
      <td><b><?php echo $column_model; ?></b></td>
      <td><b><?php echo $column_sku; ?></b></td><!-- добавляем эту строку -->

чуть ниже нужно добавить колонку уже с нашим артикулом для каждого товара. 
 

<?php foreach ($order['product'] as $product) { ?>
    <tr>
      <td><?php echo $product['name']; ?>
        <?php foreach ($product['option'] as $option) { ?>
        <br />
         <small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small>
        <?php } ?></td>
      <td><?php echo $product['model']; ?></td>
      <td><?php echo $product['sku']; ?></td><!-- добавляем эту строку -->

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

 

 

Если вам нужны и другие поля типа UPD Делаем их по такому же принципу, лучше всего добавлять эти поля рядышком с sku

 

Пользуйтесь наздоровье, если вам не лень можно такую версию под vqMod запилить, это не сложно, одна из самых легких задач будет .

p.s. на OC 1.5.6 полет отличный 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dimansh    3

а зачем так сложно, я делал так:

файл admin/controller/sale/order.php 

public function invoice() {
// находим эту строчку и тут вставляем этот код 
//SKU invoice FIX
                $this->load->model('catalog/product');
                $this->data['column_sku'] = $this->language->get('column_sku'); 

дальше в этой же функции invoice ищем строку приблезительно 2500 в ней находим 

foreach ($products as $product) {
//тут же вставляем этот код
//SKU invoice fix
$db_product = $this->model_catalog_product->getProduct($product['product_id']);


// находим $product_data[] = array(

$product_data[] = array(
     'sku'      => $db_product['sku'],/*SKU invoice fix вставляем эту строку*/
     'name'     => $product['name'],
                                                

дальше идем в файлы которые относятся к language

файл admin/language/russian/sale/order.php

$_['column_sku']            = 'Артикул';

идем в темплейт:

/admin/view/template/sale/order_invoice.tpl

<table class="product">
    <tr class="heading">
      <td><b><?php echo $column_product; ?></b></td>
      <td><b><?php echo $column_model; ?></b></td>
      <td><b><?php echo $column_sku; ?></b></td><!-- добавляем эту строку -->

чуть ниже нужно добавить колонку уже с нашим артикулом для каждого товара. 

 

<?php foreach ($order['product'] as $product) { ?>
    <tr>
      <td><?php echo $product['name']; ?>
        <?php foreach ($product['option'] as $option) { ?>
        <br />
         <small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small>
        <?php } ?></td>
      <td><?php echo $product['model']; ?></td>
      <td><?php echo $product['sku']; ?></td><!-- добавляем эту строку -->

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

 

 

Пользуйтесь наздоровье, если вам не лень можно такую версию под vqMod запилить, это не сложно, одна из самых легких задач будет .

p.s. на OC 1.5.6 полет отличный 

Все сделал - ничего не появилось. вообще никаких изменений.  версия 2.1.0.1  может что-то еще надо изменить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От GeorgyM

      500.00 руб
      Скачать/Купить дополнение


      Парсинг для Opencart : загрузка товаров / статей, для Опенкарт, OcStore, v.1.x, 2.x, 3.x
      Парсинг и загрузка на Ваш сайт, товаров для Opencart, каталогов, статей, блогов, галерей, отзывов, всего, что угодно.
      Парсинг Яндекс Маркет, Авито, Юлы, любого сайта Вашего конкурента или поставщика.
      Я могу собрать любые данные в интернете и импортировать их на Ваш сайт.
       
      Как начать работать со мной: 
      1) Напишите мне  в личку - КЛИНУТЬ ЧТОБЫ НАПИСАТЬ МНЕ
      2) Укажите сайт, с которого нужно собрать данные (Домен)
      3) Укажите дополнительные пожелания
       
      НЕ НУЖНО ЗАПОЛНЯТЬ СЛОЖНОЕ ТЕХНИЧЕСКОЕ ЗАДАНИЕ
      В переписке согласуем Все детали.
       
      Загрузка на Ваш сайт или передача Вам файла в формате Вашего модуля импорта.
      Быстро, конфиденциально 
      Указана базовая стоимость.
      В зависимости от сложности проекта цена может быть изменена по согласованию.
       
      Чтобы сэкономить время на переписке, прошу внимательно отнестись к строкам ниже, по поводу ТЗ для Парсинга. Я должен понимать какие, работы мне для Вас делать, а без ТЗ я этого понять не смогу.
       
      Для понимания ТЗ мне нужно получить краткое ТЗ:
       
      Если Вам нужно получить от меня только файл для импорта и каталог картинок: дайте мне адрес сайта-донора, пример файла, который Вам нужно получить с заполненными 2-3 строками, комментарии, этого будет достаточно.  
      Если Вы хотите, чтобы я для Вас спарсил и загрузил товары: напишите мне адрес сайта-донора. Можете схематично показать какие данные со страницы донора, должны быть перенесены на Ваши страницы (в виде простых рисунков)  
      Часто возникает вопрос как скопировать товары с одного интернет магазина и загрузить товары в свой интернет магазин.
       
      Особенно Важно парсить товары если нужно перенести большой каталог на свой сайт интернет магазина, так как руками копировать товары очень долго. 
       
      Я могу спарсить самые сложные сайты: со скриптами, защитами, различными Post запросами, и предоставить Вам данные в CSV или Excel файле, нужного Вам формата.
       
      Могу загрузить опции товаров, атрибуты товаров, дополнительные картинки и тексты, отзывы.
       
      Провести нужные манипуляции с ценами и скидками на товары и прочие сложные операции.
      Могу привести каталог категорий к нужному виду, скопировав картинки и описания категорий.
       
      От Вас потребуется только, домены сайтов откуда копировать каталог, и если Вы планируете загружать самостоятельно данные в Ваш интернет магазин, пример файла в который Вам записать данные.
      Opencart Web Scraping
      Добавил GeorgyM Добавлено 22.08.2017 Категория Услуги  
    • От GeorgyM
      Парсинг и загрузка на Ваш сайт, товаров для Opencart, каталогов, статей, блогов, галерей, отзывов, всего, что угодно.
      Парсинг Яндекс Маркет, Авито, Юлы, любого сайта Вашего конкурента или поставщика.
      Я могу собрать любые данные в интернете и импортировать их на Ваш сайт.
       
      Как начать работать со мной: 
      1) Напишите мне  в личку - КЛИНУТЬ ЧТОБЫ НАПИСАТЬ МНЕ
      2) Укажите сайт, с которого нужно собрать данные (Домен)
      3) Укажите дополнительные пожелания
       
      НЕ НУЖНО ЗАПОЛНЯТЬ СЛОЖНОЕ ТЕХНИЧЕСКОЕ ЗАДАНИЕ
      В переписке согласуем Все детали.
       
      Загрузка на Ваш сайт или передача Вам файла в формате Вашего модуля импорта.
      Быстро, конфиденциально 
      Указана базовая стоимость.
      В зависимости от сложности проекта цена может быть изменена по согласованию.
       
      Чтобы сэкономить время на переписке, прошу внимательно отнестись к строкам ниже, по поводу ТЗ для Парсинга. Я должен понимать какие, работы мне для Вас делать, а без ТЗ я этого понять не смогу.
       
      Для понимания ТЗ мне нужно получить краткое ТЗ:
       
      Если Вам нужно получить от меня только файл для импорта и каталог картинок: дайте мне адрес сайта-донора, пример файла, который Вам нужно получить с заполненными 2-3 строками, комментарии, этого будет достаточно.  
      Если Вы хотите, чтобы я для Вас спарсил и загрузил товары: напишите мне адрес сайта-донора. Можете схематично показать какие данные со страницы донора, должны быть перенесены на Ваши страницы (в виде простых рисунков)  
      Часто возникает вопрос как скопировать товары с одного интернет магазина и загрузить товары в свой интернет магазин.
       
      Особенно Важно парсить товары если нужно перенести большой каталог на свой сайт интернет магазина, так как руками копировать товары очень долго. 
       
      Я могу спарсить самые сложные сайты: со скриптами, защитами, различными Post запросами, и предоставить Вам данные в CSV или Excel файле, нужного Вам формата.
       
      Могу загрузить опции товаров, атрибуты товаров, дополнительные картинки и тексты, отзывы.
       
      Провести нужные манипуляции с ценами и скидками на товары и прочие сложные операции.
      Могу привести каталог категорий к нужному виду, скопировав картинки и описания категорий.
       
      От Вас потребуется только, домены сайтов откуда копировать каталог, и если Вы планируете загружать самостоятельно данные в Ваш интернет магазин, пример файла в который Вам записать данные.
      Opencart Web Scraping
    • От ibond

      Скачать/Купить дополнение


      Фильтр товаров в админке по производителям, артикулу и категориям
      Дополнение добавляет возможность фильтровать товары в административной панели Opencart по производителям, артикулу (Sku) и категориям (только для русской сборки и оригинальной версии). Также добавляет колонку Категории в списке товара (только для русской сборки и оригинальной версии).
      Работает (тестировался):
      OcStore 2.1.0.1, 2.1.0.2.1, 2.3.0.2, 2.3.0.2.1
      OpenCart 2.1.0.2, 2.3.0.2, 2.3.0.2 (rs.5)
      Установка:
      Загрузить файл в установках расширений, перейти в модификаторы и обновить.
      Добавил ibond Добавлено 20.11.2016 Категория Фильтры Системные требования Сайт разработчика https://opencartforum.com/profile/28580-ibond/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось  
    • От ibond
      Дополнение добавляет возможность фильтровать товары в административной панели Opencart по производителям, артикулу (Sku) и категориям (только для русской сборки и оригинальной версии). Также добавляет колонку Категории в списке товара (только для русской сборки и оригинальной версии).
      Работает (тестировался):
      OcStore 2.1.0.1, 2.1.0.2.1, 2.3.0.2, 2.3.0.2.1
      OpenCart 2.1.0.2, 2.3.0.2, 2.3.0.2 (rs.5)
      Установка:
      Загрузить файл в установках расширений, перейти в модификаторы и обновить.
    • От santehstor
      Добрый день, подскажите, пожалуйста, делаю интернет магазин, приблизительное количество товаров на сайте, будет около 12000 тыс позиций, категорий около 15шт. Интересует, не будет такое количество товаров, тормозить работу?    
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу