Jump to content
Sign in to follow this  
DIAF

[Решено] Артикул при редакции заказа (добавление )

Recommended Posts

Ребята не подскажите что я пропустила

Я добавила артикул и картинку order_form.php 

Если добавляю товар то я вложила картинку не отображается артикул и картинка 

 

post-669131-0-38283000-1435140995_thumb.jpg

Share this post


Link to post
Share on other sites

начать с того, что посмотреть какая ссылка на картинку img src=.... получилась и сравнить с той, которая должна быть

Share this post


Link to post
Share on other sites

начать с того, что посмотреть какая ссылка на картинку img src=.... получилась и сравнить с той, которая должна быть

в файле order_form

<td class="left"><img src="<?php echo $order_product['image']; ?>" style="padding: 1px; border: 1px solid #DDDDDD;"></td>

Share this post


Link to post
Share on other sites

это шаблон, а я имел в виду саму страницу, т.е. содержимое переменной <?php echo $order_product['image']; ?>

Share this post


Link to post
Share on other sites

как уже отметил nikifalex - в шаблоне order_form.tpl идет вывод данных

чтобы было что выводить - сначала нужно это что-то получить в файле модели, потом обработать в файле контроллера

 

в данном случае модель трогать не нужно, все что нужно - id товара - уже есть

остается только добавить нужные данные (изображение товара и его артикул) в метод getForm() в файле admin\controller\sale\order.php

Share this post


Link to post
Share on other sites

Я вроде контролере прописала может пропустила что

не посмотрите ?

 

order.php

Share this post


Link to post
Share on other sites

в целом мысль правильная, только реализация не совсем верная - массив $order_product знать не знает про существование sku и image

поэтому нужно немного схитрить - из $order_product брать id интересующего товара, а уже потом по id получить желаемые данные

 

в файле admin\controller\sale\order.php

1) перед строкой

        foreach ($order_products as $order_product) {

добавить

                $this->load->model('catalog/product');
                $this->load->model('tool/image');

2) перед строкой

            $this->data['order_products'][] = array(

добавить

                $order_product2 = $this->model_catalog_product->getProduct($order_product['product_id']);

3) после строки

                'model'            => $order_product['model'],

добавить

                'sku'              => $order_product2['sku'],
                'image'          => $this->model_tool_image->resize($order_product2['image'], 40, 40),

должно помочь ;)

Share this post


Link to post
Share on other sites

У меня не отображается артикул и картинка тогда когда я нажила кнопку добавить товар,а при просмотре и при открытие редактирования у меня все отображается 


я нашла код в файле order_form.php не знаю откуда идет контроль этого кода 


вроде все добавила и ничего 


if (json['order_product'] != '') {

var product_row = 0;

var option_row = 0;

var download_row = 0;

 

html = '';

 

for (i = 0; i < json['order_product'].length; i++) {

product = json['order_product'];

 

html += '<tr id="product-row' + product_row + '">';

html += '  <td class="center" style="width: 3px;"><img src="view/image/delete.png" title="<?php echo $button_remove; ?>" alt="<?php echo $button_remove; ?>" style="cursor: pointer;" onclick="$(\'#product-row' + product_row + '\').remove(); $(\'#button-update\').trigger(\'click\');" /></td>';

html +='   <td class="left"><img src="' + product['image'] + '" style="padding: 1px; border: 1px solid #DDDDDD;"></td>';

html += '  <td class="left">' + product['name'] + '<br /><input type="hidden" name="order_product[' + product_row + '][order_product_id]" value="" /><input type="hidden" name="order_product[' + product_row + '][product_id]" value="' + product['product_id'] + '" /><input type="hidden" name="order_product[' + product_row + '][name]" value="' + product['name'] + '" />';

 

if (product['option']) {

for (j = 0; j < product['option'].length; j++) {

option = product['option'][j];

 

html += '  - <small>' + option['name'] + ': ' + option['value'] + '</small><br />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_option][' + option_row + '][order_option_id]" value="' + option['order_option_id'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_option][' + option_row + '][product_option_id]" value="' + option['product_option_id'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_option][' + option_row + '][product_option_value_id]" value="' + option['product_option_value_id'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_option][' + option_row + '][name]" value="' + option['name'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_option][' + option_row + '][value]" value="' + option['value'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_option][' + option_row + '][type]" value="' + option['type'] + '" />';

 

option_row++;

}

}

 

if (product['download']) {

for (j = 0; j < product['download'].length; j++) {

download = product['download'][j];

 

html += '  <input type="hidden" name="order_product[' + product_row + '][order_download][' + download_row + '][order_download_id]" value="' + download['order_download_id'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_download][' + download_row + '][name]" value="' + download['name'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_download][' + download_row + '][filename]" value="' + download['filename'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_download][' + download_row + '][mask]" value="' + download['mask'] + '" />';

html += '  <input type="hidden" name="order_product[' + product_row + '][order_download][' + download_row + '][remaining]" value="' + download['remaining'] + '" />';

 

download_row++;

}

}

 

html += '  </td>';

html += '  <td class="left">' + product['model'] + '<input type="hidden" name="order_product[' + product_row + '][model]" value="' + product['model'] + '" /></td>';

html += '  <td class="left">' + product['sku'] + '<input type="hidden" name="order_product[' + product_row + '][sku]" value="' + product['sku'] + '" /></td>';

html += '  <td class="right">' + product['quantity'] + '<input type="hidden" name="order_product[' + product_row + '][quantity]" value="' + product['quantity'] + '" /></td>';

html += '  <td class="right">' + product['price'] + '<input type="hidden" name="order_product[' + product_row + '][price]" value="' + product['price'] + '" /></td>';

html += '  <td class="right">' + product['total'] + '<input type="hidden" name="order_product[' + product_row + '][total]" value="' + product['total'] + '" /><input type="hidden" name="order_product[' + product_row + '][tax]" value="' + product['tax'] + '" /><input type="hidden" name="order_product[' + product_row + '][reward]" value="' + product['reward'] + '" /></td>';

html += '</tr>';

 

product_row++;

}

 

$('#product').html(html);

} else {

html  = '</tr>';

html += '  <td colspan="6" class="center"><?php echo $text_no_results; ?></td>';

html += '</tr>';

 

$('#product').html(html);

}

Share this post


Link to post
Share on other sites

код в code.

обрабатывается это все в catalog/controller/checkout/manual.php

Share this post


Link to post
Share on other sites

код в code.

обрабатывается это все в catalog/controller/checkout/manual.php

я добавила $this->load->model('tool/image'); и 'image'     => $this->model_tool_image->resize($product['image'], 40, 40), и 'sku'        => $product['sku'],

 а вот артикул не хочет 

выходит ошибка

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

 
OK
 
<b>Notice</b>: Undefined index: sku in <b>/home/mysite/public_html/vqmod/vqcache/vq2-catalog_controller_checkout_manual.php</b> on line <b>174</b><b>Notice</b>: Undefined index: sku in <b>/home/mysite/public_html/vqmod/vqcache/vq2-catalog_controller_checkout_manual.php</b> on line <b>174</b>
Edited by DIAF

Share this post


Link to post
Share on other sites

код в code.

обрабатывается это все в catalog/controller/checkout/manual.php

 

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

Share this post


Link to post
Share on other sites

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

 

этот manual.php это наказание всех программистов опенкарта. И да, через него редактируется заказ в админке. Людям с неустойчивой психикой и склонным к суициду смотреть код файла не рекомендуется.

Share this post


Link to post
Share on other sites

заинтриговали, пойду гляну :ugeek:

Share this post


Link to post
Share on other sites

заинтриговали, пойду гляну :ugeek:

$json['order_product'][] = array(
'product_id' => $product['product_id'],
'name'       => $product['name'],
'image'     => $this->model_tool_image->resize($product['image'], 40, 40),
'model'      => $product['model'], 
'sku'      => $product['sku'], 
'option'     => $option_data,
'download'   => $download_data,
'quantity'   => $product['quantity'],
'price'      => $product['price'],
'total'      => $product['total'],
'tax'        => $this->tax->getTax($product['price'], $product['tax_class_id']),
'reward'     => $product['reward']
);
}
Edited by DIAF

Share this post


Link to post
Share on other sites

этот manual.php это наказание всех программистов опенкарта. И да, через него редактируется заказ в админке. Людям с неустойчивой психикой и склонным к суициду смотреть код файла не рекомендуется. :cry:  :cry:

Share this post


Link to post
Share on other sites

DIAF, КОД и ошибки В CODE!

каталог, по-умолчанию, знать не знает об артикулах в товарах.

добавь в модели передачу его в контроллеры (поиск в помощь).

AlexDW, точно.

nikifalex, нормальный там код.

и все правильно сделано - чтобы все данные по заказу считались для конкретного покупателя (группа, скидки, цены, доставки, итпд).

Share this post


Link to post
Share on other sites

DIAF, КОД и ошибки В CODE!

каталог, по-умолчанию, знать не знает об артикулах в товарах.

добавь в модели передачу его в контроллеры (поиск в помощь).

AlexDW, точно.

nikifalex, нормальный там код.

и все правильно сделано - чтобы все данные по заказу считались для конкретного покупателя (группа, скидки, цены, доставки, итпд).

в каком файле ?

Share this post


Link to post
Share on other sites

AlexDW, точно.

 

да, уже понял

 

добился вывода sku и картинки, сейчас разбираю затык на мультимагазине

если заказ сделан через магазин, отличный от дефолтного (оптовый) - при первой загрузке картинки берутся из дефолтного магазина

а вот при добавлении товара/обновлении - адрес картинок переправляется на оптовый

 

ситуация стала напоминать анекдот про лампочку во рту :-D

Share this post


Link to post
Share on other sites

по итогу, кому нужно - вот готовое решение по добавлению sku и изображения товара в форму правки заказа в админке

работает через vqmod, проверено на ocstore 1.5.5.1.2 ;)

Share this post


Link to post
Share on other sites

Спасибо огромное за файл


но не знаю где ошибка все равно у меня при добавлении выдает эту ошибку 


кэш чистила артикул просто не хочет и все тут 


 


 


SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

 

OK

 

<b>Notice</b>: Undefined index: sku in <b>/home/---/public_html/vqmod/vqcache/vq2-catalog_controller_checkout_manual.php</b> on line <b>174</b><b>Notice</b>: Undefined index: sku in <b>/home/---/public_html/vqmod/vqcache/vq2-catalog_controller_checkout_manual.php</b> on line <b>174</b>

Share this post


Link to post
Share on other sites

для того чтоб файл заработал

1) замените свои исправленные файлы аналогичными чистыми из вашего дистрибутива (возможно где-то что-то не убрали)

2) для чистки кеша vqmod удалить содержимое папки vqmod/vqcache и удалить файл vqmod/mods.cache

 

не забывайте смотреть логи vqmod и журнал ошибок если какой-то мод не работает ;)

Share this post


Link to post
Share on other sites

для того чтоб файл заработал

1) замените свои исправленные файлы аналогичными чистыми из вашего дистрибутива (возможно где-то что-то не убрали)

2) для чистки кеша vqmod удалить содержимое папки vqmod/vqcache и удалить файл vqmod/mods.cache

 

не забывайте смотреть логи vqmod и журнал ошибок если какой-то мод не работает ;)

Все сделала как вы сказали все равно выходит ошибка 

Share this post


Link to post
Share on other sites

проклятый склероз!

у меня модуль OrderField установлен, он необходимые изменения вносит, забыл про него совсем :ugeek:

 

вот исправленная версия, должно помочь

order-form-image-sku.xml

Share this post


Link to post
Share on other sites

СПАСИБО ЗАРАБОТАЛО :) 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.