Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Переменная хранящая сумму в корзине


 Поделиться

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

Привет всем.

Возникла задача. В магазине пометить некоторые товары и запретить их продажу до тех пор, пока в корзине не наберется 3000 рублей. Казалось - плёвое дело, на каждой странице в шапке выводится сумма корзины, найди переменную и поставь условие. Если сумма<3000 выводится сообщение а ля "наберите 3 тыщи", если больше - то кнопка добавить в корзину. Однако переменную я не нашел, техподдержка шаблона в помощи отказала, указали только что нужно открыть к ней доступ из контроллера. php я знаю в недостаточной мере, чтобы это сделать, но вообще с программированием знаком хорошо.

Помогите плиз, кто чем может. Грубо говоря, подскажите как получить переменную, а условие сам поставлю.
Адрес: kalei.ru
Шаблон: shop-store 2
OC: Version 2.1.0.2 (rs.1) 

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


// Cart Корзина
$this->cart->getProducts(); //Получает все товары находящиеся в корзине учитывая опции, акции.
$this->cart->add( $product_id, $qty = 1, $options = array()); // Добавление товара в корзину
$this->cart->remove( $key ); // Удаление товара из корзины
$this->cart->clear(); // Очистка корзины
$this->cart->getWeight(); // Получение веса всей корзины
$this->cart->getSubTotal(); // Получение суммы цен элементов корзины без вычета налогов
$this->cart->getTotal(); // Получение суммы цен элементов корзины с вычетом налогов
$this->cart->countProducts(); // Получение количества товаров в корзине 
$this->cart->hasProducts(); // Проверяет пуста корзина или нет
$this->cart->hasStock(); // Возвращает false, если хотя бы один элемент корзины отсутствует на складе(в продаже)
$this->cart->hasShipping(); // Возвращает true, если хотя бы один элемент корзины требует доставку
$this->cart->hasDownload(); // Возвращает true, если хотя бы один элемент корзины связан с какой-либо загрузкой 

Описание основных классов можно посмотреть тут. К сожалению, на данный момент, посмотреть сайт можно только в кэше.

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

Только что, halfhope сказал:

$this->cart->getSubTotal(); // Получение суммы цен элементов корзины без вычета налогов

Вот именно это мне нужно. Можете как для дауна пока написать? Что надо прописать в модели, как обратиться в шаблоне? 

Я делаю это впервые, область видимости переменных в php для меня пока дремучий лес. Спасибо

 

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


проверку сделать надо во всех контроллерах, где есть товары -  и есть кнопка добавления в корзину

например

if ($this->cart->getSubTotal() > 3000) {

$data['cart_avail'] = 'avail';

}

в шаблонах обернуть кнопку добавления в корзину в

if (isset($cart_avail)) {

//выводим кнопку добавления корзину

}

 

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


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

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

Только что, Dimen сказал:

проверку сделать надо во всех контроллерах, где есть товары -  и есть кнопка добавления в корзину

а если минимум в корзине 3К, товар стоит 1.5К, а мне хочется кнопочкой + изменить количество?

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

14 минут назад, php5 сказал:

а если минимум в корзине 3К, товар стоит 1.5К, а мне хочется кнопочкой + изменить количество?

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

Изменено пользователем Dimen
Ссылка на комментарий
Поделиться на других сайтах


если в корзине ничего нет и я хочу в карточке плюсиками изменить количество товара на допустимое минимумом и нажать купить.

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

Только что, php5 сказал:

если в корзине ничего нет и я хочу в карточке плюсиками изменить количество товара на допустимое минимумом и нажать купить.

Вы не верно поняли. Суть ограничения не в минимальной сумме заказа это я уже делал, есть очень простой способ. Вопрос вот в чем: Есть 2 типа товаров:
1 тип) можно добавлять в корзину при любом раскладе
2 тип) можно добавлять в корзину только тогда, когда в корзине уже есть товаров на 3 тысячи 

Способ предложенный Dimen должен сработать. Ищу куда вставить строки и тестирую! 

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


Я всё верно понял, просто добавьте проверку цены в корзине в минимальное количество и не надо писать кучу строк кода. и используйте ocmod.
UPD да я не понял)

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

Если удалить товар из корзины (набранного на 3000) находясь на странице товара, который не продается без таких требований, то его можно будет положить в корзину... и купить... да и в корзине просто удалить дорогой товар .. и тоже можно оформить заказ...

Могут по случаю ошибаться покупатели...

Изменено пользователем vortexnew
Ссылка на комментарий
Поделиться на других сайтах


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

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


Вы правы. Такая "манипуляция правилами" или ошибка возможна и даже неизбежна. Но таких мы уже вручную отсортируем. Кто, чего и на какую сумму заказал. Предоплаты все-равно на сайте нет.

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


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.