Перейти к содержанию

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


Перейти к решению Решений Tesloz,

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

ocStore 2.3, корзина Simple.

Хотел вывести сообщение в корзине "До бесплатной доставки осталось купить на: _____ рублей." Подскажите, где я ошибаюсь.

В контроллере simplecheckout_cart.php прописываю в public function index

$cart_total = $this->cart->getSubTotal(); 
$data['cart_total'] = $cart_total;  

 

Соответственно в шаблоне корзины simplecheckout_cart.tpl 

<?php if ($cart_total < 4000): ?>
    <div style="color: #cc0000; font-size: 16px; font-weight: bold; margin-top: 10px; padding: 10px; border: 1px solid #cc0000; background-color: #f8d7da; border-radius: 5px; text-align: right;">
        До бесплатной доставки осталось купить на: <strong><?php echo number_format(4000 - $cart_total, 2, '.', ' '); ?> рублей</strong>
    </div>
<?php endif; ?>

 

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

 

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

проверьте что у вас с $data['cart_total']

пробуйте другое название переменной, возможно перезаписывается

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

  • Решение

Таки там надо присваивать в (если не ошибаюсь)

$this->_templateData

ну и название "cart_total" смени т.к. оно уже используется 

  Показать контент

 

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

  В 12.11.2024 в 14:47, AlexDW сказал:

проверьте что у вас с $data['cart_total']

пробуйте другое название переменной, возможно перезаписывается

Показать  

 

Попробовал изменить название, сейчас расчет вообще перестал работать. Добавил в код контроллера логирование:

$total_cart_value = $this->cart->getSubTotal();
$this->_templateData['total_cart_value'] = $total_cart_value;

$this->log->write('Data passed to template: ' . json_encode($this->_templateData));
$this->response->setOutput($this->load->view('checkout/simplecheckout_cart', $this->_templateData));

 

В логах значение subtotal передается верно:

Calculated Total Cart Value (SubTotal): 1190
Data passed to template: {"total_cart_value":1190}

Но ругается на переменные в шаблоне, хотя контроллером они передаются:

  Показать контент

 

Я не программист, захотелось попробовать что-то простое сделать) Третий день победить не получается. Пока скриптом сделал, работает. Но хотелось бы без скрипта. 

При этом оформление заказа же работает, курьерские службы, способы оплаты. Там тоже завязка от суммы корзины на бесплатную доставку работает, значит переменные передаются. А лог говорит, что нет.

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

  В 13.11.2024 в 05:58, Tesloz сказал:

Таки там надо присваивать в (если не ошибаюсь)

$this->_templateData

ну и название "cart_total" смени т.к. оно уже используется 

  Показать контент

 

Показать  

 

Спасибо! Помогло. 

Если кому-то пригодится, то вот решение для вывода сообщения, до бесплатной доставки осталось купить на:

simplecheckout_cart.php

$cart_total = $this->cart->getSubTotal();
$this->_templateData['total_cart_value'] = $cart_total;

 

simplecheckout_cart.tpl 

<?php if (isset($total_cart_value) && (float)$total_cart_value < 4000): ?>
    <div style="color: #009CAA; font-size: 16px; font-weight: bold; margin-top: 10px; padding: 10px; border: 1px solid #009CAA; background-color: #DDF1F4; border-radius: 5px; text-align: right;">
        До бесплатной доставки осталось купить на: <strong><?php echo number_format(4000 - (float)$total_cart_value, 2, '.', ' '); ?> рублей</strong>
    </div>
<?php endif; ?>   

 

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

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