[РЕШЕНО] Как вывести новое поле на странице "Информация о заказе" в таблице "Содержание заказа"?Актуально для VirtueMart 1.1.9Поклон и уважение участнику Форума ANRY_777 - за оказанную помощь в решении данного вопроса! Все плюсы ему в зачет!В моем случае необходимо было вывести вместо существующей переменной для Артикула товара свою переменную из вновь созданного поля product_newfield. Проще говоря, нужно сделать второй Артикул, который отображается вместо стандартного, не имеет уникальности - может присваиваться одновременно к двум и более товарам. Проблема была в том, чтобы вывести значение переменной Артикула из нового поля на странице "Информация о заказе" в таблице "Содержание заказа".
Пошагово все рассмотрим:1. Дополнительное поле создаем как здесь
http://joomlaforum.ru/index.php/topic,183416.0.html - в таблице базы данных (БД) jos_vm_product создаем новое поле, назовем его product_newfield.
2. Далее нам потребуется создать в таблице базы данных jos_vm_order_item новое поле, назовем его product_newfield_info. Теперь при оформлении заказа переменная из нового поля product_newfield попадает в таблицу БД jos_vm_order_item.
3. На этом шаге открываем файл ps_checkout.php \administrator\components\com_virtuemart\classes\ и в строку 1100
$r = "SELECT product_id,product_in_stock,product_sales,product_parent_id,product_sku,product_name, ";
добавим свое новое поле product_newfield, получим:
$r = "SELECT product_id,product_in_stock,product_sales,product_parent_id,product_sku,product_name,product_newfield ";
Далее в том же файле ps_checkout.php ищем строку:
$fields = array('order_id' => $order_id,
и перед ней добавляем следующее:
$product_newfield = $dboi->f("product_newfield");
теперь уже после строки:
$fields = array('order_id' => $order_id,
добавим строку:
'product_newfield_info' => $product_newfield
Должно получиться следующее:
$product_newfield = $dboi->f("product_newfield");
$fields = array('order_id' => $order_id,
'user_info_id' => $d["ship_to_info_id"],
'vendor_id' => $vendor_id,
'product_id' => $cart[$i]["product_id"],
'order_item_sku' => $dboi->f("product_sku"),
'order_item_name' => $dboi->f("product_name"),
'product_quantity' => $cart[$i]["quantity"],
'product_item_price' => $product_price,
'product_final_price' => $product_final_price,
'order_item_currency' => $GLOBALS['product_currency'],
'order_status' => 'P',
'product_attribute' => $description,
'cdate' => $timestamp,
'mdate' => $timestamp,
'product_newfield_info' => $product_newfield,
);
С файлом ps_checkout.php закончили.
5. На этом шаге открываем файл account.order_details.tpl.php components\com_virtuemart\themes\default\templates\pages
В этом файле ищем строку:
<td valign="top"><?php $dbcart->p("order_item_sku"); ?></td>
и заменяем ее на следующее:
<td valign="top"><?php $dbcart->p("product_newfield_info"); ?></td>
6. Далее пробуем на сайте сделать заказ, оформить его и проверяем выводится ли переменная из поля product_newfield в таблицу Содержание заказа на страничке Информация о заказе.
Напомню, заслуга за вышеописанное решение участнику Форума ANRY_777! Все плюсы ему в зачет!