Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


Recommended Posts

Привет всем.

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

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

Link to comment
Share on other sites


// 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
Link to comment
Share on other sites

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

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

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

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

 

Link to comment
Share on other sites


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

например

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

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

}

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

if (isset($cart_avail)) {

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

}

 

Link to comment
Share on other sites


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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

Edited by Dimen
Link to comment
Share on other sites


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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites

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

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

Edited by vortexnew
Link to comment
Share on other sites


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

Link to comment
Share on other sites


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

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.