Отображение list_price в оформлении заказа


#1

Здравствуйте! Подскажите, пожалуйста, как в оформлении заказа пробросить значение {$product.list_price} ?


#2

Куда именно нужно добавить? Боюсь, что в данных корзины рекомендованная цена не хранится. Нужно делать доп. запрос к базе


#3

Вообще нужно сделать, чтобы при способе оплаты “в рассрочку онлайн” корзина пересчитывала стоимость заказа. Т.е. брала не “цену”, а “рекомендуемую цену”. Вариант с промо-акциями не подходит, т.к. скидки на товар разные. Вот и подумал, что если получить {$product.list_price}, то остальное дописать уже потихоньку получится.


#4

Используйте хуки в функции fn_calculate_cart_content и в них делайте запрос на получение list_price


#5

Если подключаться к хуку в функции fn_calculate_cart_content, то в БД будет создан дополнительный лишний запрос.
Лучше использовать хук pre_get_cart_product_data из функции fn_get_cart_product_data которая в свою очередь вызывается к каждому товару в функции fn_calculate_cart_content

тогда можно обойтись всего одной строчкой
array_push($fields, '?:products.list_price');


#6

тогда можно обойтись всего одной строчкой array_push($fields, ‘?:products.list_price’);

Пробовал не работает так!!!


#7

100% работает.

на примере модуля my_changes:

в файле app/addons/my_changes/init.php подключаетесь к хуку:

<?php

if (!defined('BOOTSTRAP')) { die('Access denied'); }


fn_register_hooks(
    'pre_get_cart_product_data'
);

в файле app/addons/my_changes/func.php вностите дополнения в хук:

<?php

if (!defined('BOOTSTRAP')) { die('Access denied'); }


function fn_my_changes_pre_get_cart_product_data(&$hash, &$product, &$skip_promotion, &$cart, &$auth, &$promotion_amount, &$fields, &$join)
{
	array_push($fields, '?:products.list_price');
}

теперь на страницах корзины и странице оформления заказа у каждого товара будет list_price

Сравните Ваши действия возможно вы что-то сделали не правильно.