Jump to content
Sign in to follow this  
acidcrash2005

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

Recommended Posts

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

 

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

 

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

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

 

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

Edited by afwollis
переименовал тему

Share this post


Link to post
Share on other sites

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грамм" - не одинаковые товары.
Edited by afwollis
убран первый текст в spoiler, причина через 2 сообщения
  • +1 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

rb2, тааак...

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By agi
      3 в 1 - Зависимые опции с изменением изображения и цены
      Скачать/Купить дополнение Добавлена возможность добавления изображений (как из галереи товара, так и обособленной) для каждой опции 
      Модуль позволяет задавать зависимости между опциями товаров (например цвет и размер). Это дает возможность учета количества товаров на складе в разрезе комбинаций опций. Цены для различных комбинаций также могут отличаться.
      Реализована возможность вывода товаров с нулевым остатком. Количество зависимых опций не ограничено.
      Для создания взаимосвязей в административной части магазина у опции товара появляется поле “Родительская опция”, а у значений - “Значение родительской опции”.
       
      В публичной части магазина в карточке товара пользователь не видит зависимые опции до тех пор, пока не выберет какое-то значение главной опции. Для зависимой опции отображаются только доступные значения исходя из выбранной родительской опции. Например, доступные размеры для выбранного цвета.
      Особенности:
      Поддерживаются все типы стандартных опций.
      Гарантирована совместимость с заявленными шаблонами
      Только OCMOD
      Без привязки к домену
      Открытый код
      Без вирусов
      Поддержка
       
      Цена товара в карточке товара меняется в зависимости от выбранной опции.
       
      Демо-товар: http://3rus.erpshop.ru/index.php?route=product/product&product_id=42
       
      Демо-админ: 3rus.erpshop.ru/admin логин/пароль: demo/demo
      Поддерживаемые темы:
      Default
      Journal 3
      LightShop
      MarketShop
       
      Особенности:
      В корзине отображается изображение последней дочерней из выбранных опций, если установлено несколько чекбоксов - то изображение последнего из них.
      Если при выборе опции изображение было изменено а затем выбор опции отменен - старое изображение не возвращается
      Если у опции выбрано изображение из галереи а затем это изображение удалено из галереи, из опции оно не удаляется
       
      Внимание:
      Совместимость с любым установленным Вами шаблоном не может гарантироваться. Также могут возникать конфликты с другими расширениями, затрагивающими редактирование товара в административной части или карточку товара в визуальной части и модулями, использующими VQMod. Может потребоваться дополнительная адаптация модуля, которая осуществляется за дополнительную плату.
       
       
      Добавил agi Добавлено 22.07.2019 Категория Опции Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 0  
    • By legioner26
      Разработан модификатор с пагинацией для опций в админ панели.
      Данный модификатор предназначен для интернет магазинов с большим списком параметров в опциях, с которыми сложно работать и подгружают сайт.
      Установив модификатор Вы получите список параметров опции в превычном постраничном для Вас виде, также при удалении параметра в админ панели не надо жать на кнопку сохранить, все происходит автоматически.
      В архиве 2 папки
      ОС 2.0-2.1 - Для версий 2.0-2.1
      ОС 2.2-2.3 - Для версий 2.2-2.3
       
      Установка:
      Устанавливаете модификатор через "Установка расширений", далее в модификаторах чистим кеш и обновляем.
    • By legioner26
      666.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 Opencart.pro 2.3
      Opencart.pro 2.1 Обращение к серверу разработчика Нет Старая цена 900  
    • By Doclassif
      Вот такая вот ошибка вылетает если добавить большое количество значений опций в товар. Кто сталкивался?
      Сторонние модули отключал - не помогло.
      Как бы данные какие то сохраняет, но все опции, если открыть товар снова, то перемешиваются, то ли становятся пустыми, также все эти индексы/атрибуты в ошибке становятся отрицательными.
      Как будто контроллер не видит их и они не добавляются в бд.
       
      Notice: Undefined index: product_seo_url in /home/*/www/storage/modification/admin/controller/catalog/product.php on line 1662
      Notice: Undefined index: points in /home/*/www/storage/modification/admin/model/catalog/product.php on line 174
      Notice: Undefined index: noindex in /home/*/www/storage/modification/admin/model/catalog/product.php on line 174
      Notice: Undefined index: customer_group_id in /home/*/www/storage/modification/admin/model/catalog/product.php on line 221
      Notice: Undefined index: weight in /home/*/www/storage/modification/admin/model/catalog/product.php on line 221
      Notice: Undefined index: weight_prefix in /home/*/www/storage/modification/admin/model/catalog/product.php on line 221
      Warning: Cannot modify header information - headers already sent by (output started at /home/*/www/site.ru/admin/controller/startup/error.php:34) in /home/*/www/site.ru/system/library/response.php on line 36
       
       
    • By TeslaFeo
      300.00 руб
      Скачать/Купить дополнение


      Массовое добавление/обновление опций и атрибутов [OC 2.x, 3.x]
       
      Если в Вашем магазине много товаров с одинаковыми опциями или атрибутами, то этот модуль для Вас!
       
      Теперь Вы можете в несколько кликов обновить или добавить любое количество опций или атрибутов для любого количества товаров!
       
       
      Основные возможности модуля Массовое добавление/обновление опций и атрибутов для Opencart/OCstore 2.x, 3.x:
      - добавление и обновление опций и атрибутов для большого количества товаров;
      - возможность отфильтровать товары с помощью стандартного фильтра и отметить галочками товары, которые нужно модифицировать с помощью данного модуля;
      - все возможности стандартного фильтра (все параметры фильтра, а так же любые комбинации этих параметров);
      - возможность учитывать существование значения опции или атрибута при добавлении к товарам опций и атрибутов.
       
       
      ВНИМАНИЕ: 
      1. Дополнение работает только со стандартной страницей товаров в админке!
      2. Фильтры, которые Вы видите в видео и на дэмо сайтах - это стандартные фильтры движков и они не входят в модуль (Ваши фильтры никак не изменятся после установки модуля)!
       
      Демонстрация:
      ocStore 2.3
      Логин/пароль: demo/demo
      Для demo пользователя включено разрешение на редактирование товаров, поэтому Вы можете полноценно протестировать модуль.
       
      Применение.
      После установки модуля (инструкция в архиве, установка предельно простая), в панели администратора на странице
      "Каталог -> Товары" в верхнем правом углу появится кнопка "Массовые опции/атрибуты".
      Нажатие на эту кнопку вызовет модальное окно, в котором можно настроить и произвести
      массовое добавление и обновление опций и атрибутов (далее модификация).
       
      Первая опция дополнения ("К каким товарам применить").
      Определяет список товаров, к которым будет применена модификация.
       
      Если выбрана опция "К выбранным", то модификация будет применена к товарам,
      отмеченным галочками на текущей WEB-страничке.
       
      Если выбрана опция "К отфильтрованным", то модификация будет применена к товарам, полученным в результате фильтрации.
      Данные формы фильтра отправляются на сервер, где товары отбираются, подобно тому, как Вы их фильтруете для просмотра.
      Учитываются именно значения формы фильтра, установленные в момент нажатия кнопки "Применить", а не уже отфильтрованные товары.
       
      ВАЖНО: Пустая форма фильтра выберет ВСЕ товары магазина.
       
      Вторая опция дополнения ("Что делать с опциями/атрибутами").
      Определяет тип модификации выбранных товаров.
       
      Если выбрано "Добавить", то опции или атрибуты будут добавлены к существующим.
       
      Если выбрано "Обновить", то все опции или атрибуты в товарах будут заменены на те, которые установлены в форме.
      Т е ВСЕ старые опции или атрибуты будут удалены и заменены на новые (указанные в форме).
       
      Третья опция ("Что делать, если значение опции/атрибут уже существует").
      Учитывается только в том случае, если вторая опция дополнения установлена в "Добавить".
       
      Если выбрано "Оставить старое", то при обнаружении существования добавляемого значения опции или атрибута,
      значение опции или атрибута НЕ будет заменено на новое.
       
      Если выбрано "Заменить на новое", то при обнаружении существования добавляемого значения опции или атрибута,
      значение опции или атрибута будет заменено на новое.
       
      Модификация применяется только к опциям или только к атрибутам, в соответствии с тем, какая вкладка выбрана
      в момент нажатия кнопки "Применить".
       
      ВНИМАНИЕ:
      Перед покупкой дополнения, обязательно ознакомьтесь с политикой возвратов.
       
      Перед использованием дополнения, обязательно ознакомьтесь с его описанием.
      При неосторожном использовании, можно в пару кликов удалить все опции или все атрибуты из своего магазина.
      Изучите дополнение на тестовом магазине.
       
      Бесплатная персональная техническая поддержка предоставляется только при выполнении ВСЕХ условий:
      1. Пользователь (и домен) должен быть в списке покупателей (и доменов) этого дополнения. 
      2. Версия движка должна быть в списке заявленных.
      3. В коде дополнения не должно быть изменений.
      4. В коде движка и БД, в тех частях, с которыми дополнение взаимодействует при установке и работе, не должно быть изменений.
      5. Дополнение не работает заявленным образом по вине автора.
      6. Пользователь предоставляет все запрошенные доступы.
       
      В противном случае, поддержка платная.
       
      Дополнение тестировалось на Opencart/ocStore 2.x, 3.x.
      Дополнение устанавливается через ocmod.
       
       
      Надеюсь, дополнение сэкономит Вам кучу человеко-часов. А сэкономил - значит заработал.
       
      Пожелания по развитию модуля можно высказать в теме поддержки дополнения.
      Добавил TeslaFeo Добавлено 05.10.2018 Категория Инструменты, утилиты Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.1 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 500  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.