Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как в opencart 2.3 настроить запрет на добавление в корзину товара в котором количество 0


Recommended Posts

31 минуту назад, anboza сказал:

воспользуйтесь поиском по темам. за месяц, разов 6-7 обсуждали уже.

Нашлось решение? Не могу найти. Скиньте ссылочку. Заранее спасибо.

Надіслати
Поділитися на інших сайтах


1 час назад, PiratRu сказал:

Система/Настроки/Опции/Оформлять заказы при нехватке товаров

но,  в корзину то все равно добавит

Надіслати
Поділитися на інших сайтах

выведите в карточку товара значение поля количество и сделайте скрипт на js 

if ( $('input#quant').val() == 0) { $('.btn-cart).что убираем) } 

или же в карточку добавить условие на php

Надіслати
Поділитися на інших сайтах


1 час назад, ActiveSync сказал:

@YaroslavNovik Вам именно нужно кнопку неактивной сделать, либо же неактивной + свой текст?

Спасибо за подсказку. Можно более подробней что и где изменить или добавить. 

Надіслати
Поділитися на інших сайтах


34 минуты назад, prived сказал:

выведите в карточку товара значение поля количество и сделайте скрипт на js 

if ( $('input#quant').val() == 0) { $('.btn-cart).что убираем) } 

или же в карточку добавить условие на php

Спасибо. Можно более подробней что и где нужно заменить.

Надіслати
Поділитися на інших сайтах


29 минут назад, Designer сказал:

# ./catalog/controller/checkout/cart.php

# Найти
if (isset($this->request->post['quantity']) && ((int)$this->request->post['quantity'] >= $product_info['minimum'])) {
	$quantity = (int)$this->request->post['quantity'];
} else {
	$quantity = $product_info['minimum'] ? $product_info['minimum'] : 1;
}

# добавить ниже
if ($product_info['quantity'] < 1) {
	$json['error']['quantity'] = $this->language->get('error_quantity');
}

Чтобы вывести информацию для клиента в виде сообщения, можете добавить в js
 


/*
	../common.js
	var cart
		'add':

	../product.tpl
	$('#button-cart').on('click', function() {
*/

if (json['error']['quantity']) {
	$('.breadcrumb').after('<div class="alert alert-info">' + json['error']['quantity'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>');
}

п.с. ограничивать нужно в серверной части, а не на клиентской, как показывали выше.

Спасибо. Добавил верхний код в cart.php, но все равно можно добавить в корзину больше 0. Можно более подробней по второму коду "чтобы вывести информацию для клиента, можете добавить в js". Получается var cart 'add': добавляем сюда catalog/view/javascript/common.js (нет разницы куда именно?)

Надіслати
Поділитися на інших сайтах


if ($('span.journal-stock.outofstock').innerHTML === 'Нет в наличии') { alert('work')}

вот костыль дорабатывайте

перед тем как что то делать 0 исправьте все ошибки на сайте - полная консоль

И по возможности удалите свой шаблон 

Надіслати
Поділитися на інших сайтах


@fanatic странно, у меня кнопка Купить становится не активной, когда товара - 0! т.е. в корзинку не кинешь.

Наверное у каждого свои кастыли, а может от шаблона зависит.

Змінено користувачем PiratRu
Надіслати
Поділитися на інших сайтах


26 минут назад, prived сказал:

if ($('span.journal-stock.outofstock').innerHTML === 'Нет в наличии') { alert('work')}

вот костыль дорабатывайте

перед тем как что то делать 0 исправьте все ошибки на сайте - полная консоль

И по возможности удалите свой шаблон 

Ошибки появились когда добавлял предлагаемый код одного из пользователя PHP Develope, сейчас нет ошибок. Спасибо за костыль)) Но мне самому не разобраться.

Надіслати
Поділитися на інших сайтах


1 час назад, Designer сказал:

 

Вся причина в том, что Вы используете journal, данный шаблон меняет структуру ядра, и использует свои JS скрипты.

Мой пример показан для чистого ядра и шаблона default, но которая реализует то, что Вам нужно.

 

p.s. После всех изменений, обязательно чистить кеш модификаторов!

 

Ах да, у меня в примере, на нет в количестве в товара на складе...

Для кол-во 0, код будет такой:

 


# ./catalog/controller/checkout/cart.php

# Найти
if (isset($this->request->post['quantity']) && ((int)$this->request->post['quantity'] >= $product_info['minimum'])) {
	$quantity = (int)$this->request->post['quantity'];
} else {
	$quantity = $product_info['minimum'] ? $product_info['minimum'] : 1;
}

# Заменить
$quantity = 0;

if (empty($this->request->post['quantity'])) {
	$json['error']['quantity'] = $this->language->get('error_quantity');
} elseif ((int)$this->request->post['quantity'] >= $product_info['minimum']) {
	$quantity = (int)$this->request->post['quantity'];
} else {
	$quantity = $product_info['minimum'] ? $product_info['minimum'] : 1;
}

 

Спасибо большое Designer

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.