acidcrash2005

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

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

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

 

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

 

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

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

 

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

Изменено пользователем afwollis
переименовал тему

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


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

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 сообщения

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


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

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

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


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

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

$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 равен оному текущего товара */
исключая сравнение хэша опций

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


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

rb2, тааак...

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

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

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

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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти


  • Похожий контент

    • От legioner26

      400.00 руб
      Скачать/Купить дополнение


      Пагинация Опций в админке для крупных ИМ
      Разработан модификатор с пагинацией для опций в админ панели.
      Данный модификатор предназначен для интернет магазинов с большим списком параметров в опциях, с которыми сложно работать и подгружают сайт.
      Установив модификатор Вы получите список параметров опции в превычном постраничном для Вас виде, также при удалении параметра в админ панели не надо жать на кнопку сохранить, все происходит автоматически.
      В архиве 2 папки
      ОС 2.0-2.1 - Для версий 2.0-2.1
      ОС 2.2-2.3 - Для версий 2.2-2.3
       
      Установка:
      Устанавливаете модификатор через "Установка расширений", далее в модификаторах чистим кеш и обновляем.
      Добавил legioner26 Добавлено 16.12.2017 Категория Опции Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop  
    • От legioner26
      Разработан модификатор с пагинацией для опций в админ панели.
      Данный модификатор предназначен для интернет магазинов с большим списком параметров в опциях, с которыми сложно работать и подгружают сайт.
      Установив модификатор Вы получите список параметров опции в превычном постраничном для Вас виде, также при удалении параметра в админ панели не надо жать на кнопку сохранить, все происходит автоматически.
      В архиве 2 папки
      ОС 2.0-2.1 - Для версий 2.0-2.1
      ОС 2.2-2.3 - Для версий 2.2-2.3
       
      Установка:
      Устанавливаете модификатор через "Установка расширений", далее в модификаторах чистим кеш и обновляем.
    • От agi

      1 600.00 руб
      Скачать/Купить дополнение


      Связанные / зависимые опции Opencart 2.x
      Модуль позволяет задавать зависимости между опциями товаров (например цвет и размер). Это дает возможность учета количества товаров на складе в разрезе комбинаций опций. Цены для различных комбинаций также могут отличаться.
      Для создания взаимосвязей в административной части магазина у опции товара появляется поле “Родительская опция”, а у значений - “Значение родительской опции”.
      В публичной части магазина в карточке товара пользователь не видит зависимые опции до тех пор, пока не выберет какое-то значение главной опции. Для зависимой опции отображаются только доступные значения исходя из выбранной родительской опции. Например, доступные размеры для выбранного цвета.
      Поддерживаются все типы опций.
      Цена товара в карточке товара меняется в зависимости от выбранной опции.Налоги не поддерживаются.
      Поддерживается только наиболее распространенный формат цены: точка в качестве разделителя дробной части и без разделитель для тысяч.
      Демо: http://option20eng.erpshop.ru
      логин/пароль: demo/demo
      Совместимость с любым установленным Вами шаблоном не может гарантироваться. Также могут возникать конфликты с другими расширениями, затрагивающими редактирование товара в административной части или карточку товара в визуальной части. Может потребоваться дополнительная адаптация модуля, которая осуществляется за дополнительную плату.
      Добавил agi Добавлено 03.07.2015 Категория Опции Системные требования Сайт разработчика http://conceptlogic.ru/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop  
    • От agi
      Модуль позволяет задавать зависимости между опциями товаров (например цвет и размер). Это дает возможность учета количества товаров на складе в разрезе комбинаций опций. Цены для различных комбинаций также могут отличаться.
      Для создания взаимосвязей в административной части магазина у опции товара появляется поле “Родительская опция”, а у значений - “Значение родительской опции”.
      В публичной части магазина в карточке товара пользователь не видит зависимые опции до тех пор, пока не выберет какое-то значение главной опции. Для зависимой опции отображаются только доступные значения исходя из выбранной родительской опции. Например, доступные размеры для выбранного цвета.
      Поддерживаются все типы опций.
      Цена товара в карточке товара меняется в зависимости от выбранной опции.Налоги не поддерживаются.
      Поддерживается только наиболее распространенный формат цены: точка в качестве разделителя дробной части и без разделитель для тысяч.
      Демо: http://option20eng.erpshop.ru
      логин/пароль: demo/demo
      Совместимость с любым установленным Вами шаблоном не может гарантироваться. Также могут возникать конфликты с другими расширениями, затрагивающими редактирование товара в административной части или карточку товара в визуальной части. Может потребоваться дополнительная адаптация модуля, которая осуществляется за дополнительную плату.
    • От KoRNeT
      У заказчика есть опция, в которой 22тыс. значений.
      При этом возникает проблема при редактировании товара (подгрузка всех значений (22к) в селект опции), а также проблема при переходе в раздел "Опции", при загрузке списка всех значений опции.
      Есть мысль о 2х решениях, но не знаю даст ли это плоды:
      1) систему кеширования на мемкэше
      2) каким то образом прикрутить пагинацию в раздел "Опции", чтобы было ограниченное количество значений опции на страницу (не знаю есть ли уже готовый модуль. Если есть, поделитесь пжлста).

      Все это на Opencart 1.5.6. 
      Если есть какие -нибудь другие варианты в вашей голове, или кто-то сталкивался с подобной проблемой, или знает модули, которые могут решить проблему, отпишитесь тут пожалуйста. Очень надеюсь на поддержку. 
  • Последние посетители   0 пользователей онлайн

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