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

[Решается... %_%] Родные скидки от количества на товар, независимо от выбранных опций


Recommended Posts

Привет всем, есть такая проблемка!

 

При создании товара, можно указать для него скидку, в зависимости от количества. К примеру за 1 товар одна цена, за 10 уже другая цена, за единицу товара. Но есть такая вот проблемака.

 

Она начинается когда товар имеет опции при выборе, например мы сделал для товара опцию выбора цвета и указали скидку, которая начинается с кол-ва товара 10.

Если мы закажем 5 товаров с одной опцией и 5 товаров с другой опцией, в корзине это будет 10 товаров. Но скидка не считается. По логике вещей, мы же купили один и тот же товар, но в разном цвете, т.е. их 10, значит скидка должна работать. А она не работает. 

 

Помогите, как это можно было бы победить?

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


ocStore "по-умолчанию" так и считает, не обращая внимания на опции:

post-3682-0-52354900-1418398155_thumb.png

у вас своя, индивидуальная, логика :-)

конечно, она имеет место быть, и сделать это можно.

system/library/cart.php (если вам реально на всех-всех-всех товарах это надо, иначе - нужна конкретика)

					// Product Discounts
					$discount_quantity = 0;
					foreach ($this->session->data['cart'] as $key_2 => $quantity_2) {
						$product_2 = explode(':', $key_2);
						if ($product_2[0] == $product_id) {
							$discount_quantity += $quantity_2;
						}
					}
>>

					// Product Discounts
					$discount_quantity = 0;
					
					foreach ($this->session->data['cart'] as $key_2 => $quantity_2) {
						$product_2 = explode(':', $key_2);
						
						/* options discount
						if (($product_2[0] == $product_id) && ($product[1] == $product_2[1])) {
						*/
						if ($product_2[0] == $product_id) {
							$discount_quantity += $quantity_2;
						}
					}
только не забывайте, что "палка колбасы 250грамм и 500грамм" - не одинаковые товары.
Змінено користувачем afwollis
убран первый текст в spoiler, причина через 2 сообщения
  • +1 1
Надіслати
Поділитися на інших сайтах

Обоже. А можно расшифровать, если ещё помнишь, что к этому моменту в этих массивах оказывается? Глядя на индусский код - логику действй не понять, а вставлять дебаг-печать лениво. Лёгкое описание или хотя бы пример `print_r` здесь не помешал бы.

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


ничего нового :-) - перебирается еще раз корзина

$key_2 - product_id:options_hash (если есть)

$quantity_2 - кол-во

меняем условие

if (($product_2[0] == $product_id) && ($product[1] == $product_2[1])) {
/* "если product_id равен оному текущего товара и опции одинаковые" */
на

if ($product_2[0] == $product_id) {
/* если product_id равен оному текущего товара */
исключая сравнение хэша опций
Надіслати
Поділитися на інших сайтах

rb2, тааак...

скопировал с подопытного ocStore_1541 с тучей изменений. там все работает, как надо acidcrash2005.

сейчас сел посмотрел, что скопировал.

че-та как-та странненько :ugeek: ибо нет изменений (точнее они есть, но в комментах).

сравнил с ocStore_15412 и ocStore_15512 - там так и есть, т.е. без привязки к опциям.

значит это я уже добавлял привязку скидок именно к опциям, а потом комментировал, чтобы вернуть "как было" :?

rb2, если бы ты не спросил - я бы, наверное, так и не заметил, что "что-то тут не так" :-(

acidcrash2005, движок, версия? или может вы с вопросом ошиблись?

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

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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