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

Купон не применять к отсутствующим товарам


Recommended Posts

Здравствуйте.

Ковыряю ocstore 2.3 , и вот появился вопрос реализации применения купона. Момент с тем, чтобы не учитывать купон для акционных товаров, решен с помощью осмода. Ну или то же самое в модели купонов.

$results = $this->model_catalog_product->getProduct($product['product_id']);
			if ($results['special']) {
				continue;
			}

А поскольку магазин действующий, и часто остатки товара бывают 0 или даже в минус, если все равно заказывают - как сделать так, чтобы стандартный купон не применялся в корзине к отсутствующим товарам? Попытки привязать к quantity <= 0 почему-то вываливаются в ошибку корзины.

Есть мысли?

Самое интересное, не нашел ни одного запроса на подобную тему - нет такой потребности, чтоли?

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


12 минут назад, Urdash сказал:

Здравствуйте.

Ковыряю ocstore 2.3 , и вот появился вопрос реализации применения купона. Момент с тем, чтобы не учитывать купон для акционных товаров, решен с помощью осмода. Ну или то же самое в модели купонов.


$results = $this->model_catalog_product->getProduct($product['product_id']);
			if ($results['special']) {
				continue;
			}

А поскольку магазин действующий, и часто остатки товара бывают 0 или даже в минус, если все равно заказывают - как сделать так, чтобы стандартный купон не применялся в корзине к отсутствующим товарам? Попытки привязать к quantity <= 0 почему-то вываливаются в ошибку корзины.

Есть мысли?

Самое интересное, не нашел ни одного запроса на подобную тему - нет такой потребности, чтоли?

 

А почему вы товар с quality = 0 и ниже продаете?) Это не логично...

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

8 минут назад, Eldaeron сказал:

А почему вы товар с quality = 0 и ниже продаете?) Это не логично...

К сожалению, специфика товарная требует того - это либо дорогие версии котлов отопления, которые не рентабельно держать на складе, либо заказные позиции дорогих ванн, смесителей и прочая. Сантехника наше направление.

Вот и не знаю, как придумать не применение купона к отсутствующим товарам.

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


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

К сожалению, специфика товарная требует того - это либо дорогие версии котлов отопления, которые не рентабельно держать на складе, либо заказные позиции дорогих ванн, смесителей и прочая. Сантехника наше направление.

Вот и не знаю, как придумать не применение купона к отсутствующим товарам.

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

 

Скачайте мой модификатор и попробуйте так:

 

$result = $this->model_catalog_product->getProduct($product['product_id']);

    					if ($result['special']) {

    						$no_discount = true;

    						$discount = 0;
    					}

Заменить на:

 

$result = $this->model_catalog_product->getProduct($product['product_id']);

    					if ($result['quanitity'] >= 0) {

    						$no_discount = true;

    						$discount = 0;
    					}

О результатах, напишите. Самому интерестно. Давно к этому файлу не смотрел, забыл что и как))))

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

21 минуту назад, Eldaeron сказал:

 

О результатах, напишите. Самому интерестно. Давно к этому файлу не смотрел, забыл что и как))))

 

Пробовал разные комбинации, пока не получилось. Получается, что в данном случае это решение полностью отключает применение купона ко всей корзине.

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

Но по крайней мере как-то да отрабатывает это решение.

Завтра буду копать дальше.

 

Спасибо за расширение, только уже ставил похожее за решением от какого-то автора "qphoria / cartbinder", там несколько иное применение игнорирования только акционного товара.

Скидки да, в процентах.

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


@Urdash а зачем давать заказывать товары которых 0? предзаказ?

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


13 часов назад, AWARO сказал:

@Urdash а зачем давать заказывать товары которых 0? предзаказ?

Да, очень много предзаказных позиций. К ним еще же и относятся популярные товары, которые внезапно стали интересны и их быстро раскупают (счетчики газа, например - на которые вообще ппц что творится, с завода приходится за год раскупать заранее), и все в таком роде.

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


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

Да, очень много предзаказных позиций. К ним еще же и относятся популярные товары, которые внезапно стали интересны и их быстро раскупают (счетчики газа, например - на которые вообще ппц что творится, с завода приходится за год раскупать заранее), и все в таком роде.

эм...
 

Купон не применять к отсутствующим товарам

ну значит добавим такое и сюда как до купонов доберёмся

 

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


Короче, на свежую голову сегодня получилось решить вопрос, благодаря коду из расширения товарища @Eldaeron и логике.

В общем, решение (если кому надо) выглядит так (делал сразу на живом проекте, с правкой модели (без модификатора):

В файле /catalog/model/extension/total/coupon.php 

после

if ($coupon_info) {

вставил код

$this->load->model('catalog/product');

Теперь дальше - ниже после 

foreach ($products as $product) {

добавил два цикла:

$results = $this->model_catalog_product->getProduct($product['product_id']);
					if ($results['special']) {
					continue;
					}
$results = $this->model_catalog_product->getProduct($product['product_id']);
					if ($results['quantity'] <= 0) {
					continue;
					}

Сохранил, обновил модификаторы и кэши.

Теперь наши купоны применяются только к товарам в наличии, а товары с акционной ценой, и отсутствующие товары в корзине при применении купона не учитываются в расчете скидки по купону.

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


  • 5 years later...

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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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