Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Добавление данных в инфо о заказе и при печати счета 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
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


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

 

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

Надіслати
Поділитися на інших сайтах


Надіслати
Поділитися на інших сайтах


  • 3 months later...

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

Надіслати
Поділитися на інших сайтах

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

 

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

Надіслати
Поділитися на інших сайтах


  • 5 months later...
  • 1 year later...

а зачем так сложно, я делал так:
файл 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 полет отличный 

Надіслати
Поділитися на інших сайтах


  • 2 months later...

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

файл 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  может что-то еще надо изменить?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.