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

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

Привет всем.

Возникла задача. В магазине пометить некоторые товары и запретить их продажу до тех пор, пока в корзине не наберется 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 да я не понял)

Поделиться сообщением


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

 

Dimen, спасибо, сработало все как нужно! 

 

 

Поделиться сообщением


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

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

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

Изменено пользователем vortexnew

Поделиться сообщением


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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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

×

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

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