[msOptionsPrice2] - Модификации продукта.
[msOptionsPrice2] — Новая версия с модификациями продукта. Кардинально отличается от предыдущей, просто обновиться не получится.
В целом компонент так же работает с опциями продукта, но теперь опции привязаны к модификации продукта. Так же модификации можно задать свой артикул, вес, кол-во и конечно стоимость. Доступны все опции продукта.

Заранее приношу свои извинения за невозможность апгрейда со старой версии.
Модификации продукта
На странице продукта доступна одноименная вкладка (настройка msoptionsprice_working_templates, в ней перечислить id необходимых шаблонов). Можно создать/изменить модификации продукта.

Для модификации доступны все опции продукта.

Сниппет msOptionsPrice.initialize
Предназначен для подключения стилей и скриптов на фронте сайта.
Достаточно вызвать сниппет в шаблоне продукта.
Для работы скрипта необходимо добавить необходимые классы, пример чанка продукта — gist.github.com/vgrish/b6998560c6a64c0f34109a9e632b9b56
форма продукта — msoptionsprice-product
стоимость продукта — msoptionsprice-cost msoptionsprice-[[*id]]
артикул продукта — msoptionsprice-article msoptionsprice-[[*id]]
вес продукта — msoptionsprice-weight msoptionsprice-[[*id]]
Сниппет msOptionsPrice.modification
Предназначен для вывода модификаций продукта. Часто требуется отдельно вывести информацию о различных модификациях продукта, теперь это достаточно просто сделать. Нужно вызвать сниппет

Картинка модификации
Можно добавить картинку модификации продукта. Доступны изображения из галереи продукта.

В чанк галереи необходимо добавить идентификаторы
дофолтный скрипт работает с галереей fotorama.
Обработка старой цены продукта
В случае с модификациями продукта, разница может быть очень значительна и практически всегда ее сумма выглядит нелогично. Поэтому была добавлена обработка старой цены продукта.
Логика расчета очень простая
(цена продукта / старая цена продукта = цена модификации продукта / старая цена модификации продукта)
Достаточно проставить старую цену в основное поле продукта и старая стоимость модификации будет автоматически рассчитана.
Для смены на фронте нужно добавить необходимые классы. Пример чанка продукта тут gist.github.com/vgrish/b6998560c6a64c0f34109a9e632b9b56#file-gistfile1-txt-L22
В сниппете msOptionsPrice.modification поле так же доступно поле old_price.
Копия модификации
Добавлен процессор на копирование модификации.

превью в корзине
Для вывода превью модификации в корзине магазина можно использовать следующую конструкцию.
gist.github.com/vgrish/3748714377be39401799e3908efd8a59#file-mscart-tpl-L22-L35
опции продукта
Улучшена работа с опциями продукта. Нет необходимости как прежде сначала создавать опции, а затем переключаться на модификации. Доступно создание/ удаление опций продукта напрямую из модификации.
В целом это пока вся информация, в репозитории будут доступны обе версии сразу. Новую можно будет установить только на чистую систему, где прежде не было старой версии.
В новой версии нет пока никакой работы с остатками, все это будет после хотя бы небольшой обкатки компонента.
Не пытайтесь обновиться!!! Если не уверены что оно вам нужно.
ps. Всем спасибо за внимание. Новая версия совместима с пакетом скидок Discontrol
Пример работы: s6200.h3.modhost.pro/katalog/tovar1.html
В целом компонент так же работает с опциями продукта, но теперь опции привязаны к модификации продукта. Так же модификации можно задать свой артикул, вес, кол-во и конечно стоимость. Доступны все опции продукта.

Заранее приношу свои извинения за невозможность апгрейда со старой версии.
Модификации продукта
На странице продукта доступна одноименная вкладка (настройка msoptionsprice_working_templates, в ней перечислить id необходимых шаблонов). Можно создать/изменить модификации продукта.

Для модификации доступны все опции продукта.

Сниппет msOptionsPrice.initialize
Предназначен для подключения стилей и скриптов на фронте сайта.
Достаточно вызвать сниппет в шаблоне продукта.
[[!msOptionsPrice.initialize?]]Дефолтный скрипт отслеживает изменение формы продукта и подгружает данные о модификации.Для работы скрипта необходимо добавить необходимые классы, пример чанка продукта — gist.github.com/vgrish/b6998560c6a64c0f34109a9e632b9b56
форма продукта — msoptionsprice-product
стоимость продукта — msoptionsprice-cost msoptionsprice-[[*id]]
артикул продукта — msoptionsprice-article msoptionsprice-[[*id]]
вес продукта — msoptionsprice-weight msoptionsprice-[[*id]]
Сниппет msOptionsPrice.modification
Предназначен для вывода модификаций продукта. Часто требуется отдельно вывести информацию о различных модификациях продукта, теперь это достаточно просто сделать. Нужно вызвать сниппет
[[!msOptionsPrice.modification?]]
Картинка модификации
Можно добавить картинку модификации продукта. Доступны изображения из галереи продукта.

В чанк галереи необходимо добавить идентификаторы
data-rid="{$file['product_id']}" data-iid="{$file['id']}"пример чанка gist.github.com/vgrish/e5c7e541b33eefc4b7c0cb68ec389096дофолтный скрипт работает с галереей fotorama.
Обработка старой цены продукта
В случае с модификациями продукта, разница может быть очень значительна и практически всегда ее сумма выглядит нелогично. Поэтому была добавлена обработка старой цены продукта.
Логика расчета очень простая
| цена продукта | старая цена продукта | |
| ----------------------------------------- | = | ----------------------------------------- |
| цена модификации продукта | старая цена модификации продукта |
(цена продукта / старая цена продукта = цена модификации продукта / старая цена модификации продукта)
Достаточно проставить старую цену в основное поле продукта и старая стоимость модификации будет автоматически рассчитана.
Для смены на фронте нужно добавить необходимые классы. Пример чанка продукта тут gist.github.com/vgrish/b6998560c6a64c0f34109a9e632b9b56#file-gistfile1-txt-L22
В сниппете msOptionsPrice.modification поле так же доступно поле old_price.
Копия модификации
Добавлен процессор на копирование модификации.

превью в корзине
Для вывода превью модификации в корзине магазина можно использовать следующую конструкцию.
gist.github.com/vgrish/3748714377be39401799e3908efd8a59#file-mscart-tpl-L22-L35
опции продукта
Улучшена работа с опциями продукта. Нет необходимости как прежде сначала создавать опции, а затем переключаться на модификации. Доступно создание/ удаление опций продукта напрямую из модификации.
В целом это пока вся информация, в репозитории будут доступны обе версии сразу. Новую можно будет установить только на чистую систему, где прежде не было старой версии.
В новой версии нет пока никакой работы с остатками, все это будет после хотя бы небольшой обкатки компонента.
Не пытайтесь обновиться!!! Если не уверены что оно вам нужно.
ps. Всем спасибо за внимание. Новая версия совместима с пакетом скидок Discontrol
Пример работы: s6200.h3.modhost.pro/katalog/tovar1.html
Комментарии: 375
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
рабочий пример тут s6200.h3.modhost.pro/index.php?id=136
TypeError: Argument 1 of FormData.constructor does not implement interface HTMLFormElement.
если эту строку заменить на ту что ниже, то вроде как работает, но не знаю уже как будет с несколькими формами на странице
Спрашивайте конкретнее что неясно.
Сейчас посмотрю…
Пожалуйста, ну благодаря вам теперь доработал совместимость с mFilter. Теперь все работает из коробки, также автоматом выставляет опции в зависимости от фильтра.
пример живет до завтра тут — s6514.h5.modhost.pro/index.php?id=4&msoption|color=%D1%81%D0%B8%D0%BD%D0%B8%D0%B9
При условии что каталог продуктов выводится через mFilter, а в карточке товара присутствуют опции при смене опций в mFilter будут выставлены соответсвующие опции в карточке товара. Так же если подключен и скрипт msOptionsPrice2 будет изменена и стоимость продукта если такое модификации продукта существуют.
Спасибо!
я к тому, что я получаю в своём плагине цену так:
и дальше уже работаю с
А вот у тебя в плагине как получает?
можно ли будет сперва использовать один модификатор цены(твой плагин) и потом еще один поверх первого.
У нас в проекте просто идет зависимость цены еще и от города. и надо чтобы бралась цена что в поле или та что в msOptionsPrice и потом еще умножалась на коофициент.
Улучшена работа с опциями продукта. Нет необходимости как прежде сначала создавать опции, а затем переключаться на модификации. Доступно создание/ удаление опций продукта напрямую из модификации.
У товара нет никаких модификаций.
Пишу так, выводит ошибку о том что поле price должно быть уникально
Сама ошибка
Добавил
я так понимаю ругается на $options в строке
Либо у вас options пустой или возможно ошиблись с id продукта и опции не установились.
В итоге в консоле пишет что цена должна быть уникальной…
Да вообще все сломалось и не получается создать модификацию)
У меня нет ни желания ни времени погружаться в хитросплетения твоего кода…
Спасибо!
Либо модифируйте скрипт под свой случай, в модификации указан идентификатор картинки.
ps. можно написать плагин на событие msopOnAfterGetModification и получить url изображения.
Создаем модификации
1. Размер 6 цвет красный, размер 6 цвет синий. — все ок.
2. Размер 8 цвет красный. — Не создает, говорит, что картинку надо уникальную.
Я что то не так делаю или все же это лишняя проверка? Зачем 8 одинаковых фото для 8 размеров?
Картинка в модификации должна быть уникальна, иначе как по картинке потом определить модификацию?
Поясните что в модификации влияет на стоиомсть…
Возможно вам просто создать модификации под цвет без учета размера, а только по цвету…
Айфон память 64 — 128 — 256. Цвета белый, черный, со стразами. При прочих равных, телефон со стразами всегда дороже чем белый или черный. А черный дороже белого, но дешевле того что со стразами. Внешне телефоны с разным объемом памяти не отличаются. То есть фото 3, комбинаций 9. По 3 комбинации на каждое фото. Грузить в галерею 9 отдельных фото не имеет смысла.
у меня ситуация аналогична.
s6200.h3.modhost.pro/index.php?id=138
А если черный с 64 памяти стоит 2100, черный с 128 стоит 2333 и черный 256 памяти стоит 2654
Белый: 64 — 2050, 128 — 1500, 256 — 1800
Такое уже не получится сделать.
Например можно взять артикул, ведь он уникален? Создайте его, задайте для него картинку и дальше…
Это правда скорее на s6200.h3.modhost.pro/index.php?id=136 похоже, а меня интересовал именно s6200.h3.modhost.pro/index.php?id=138
Или мне так кажется из-за названий опций просто?
чанк один и тот же
пример рабочий тут s6200.h3.modhost.pro/index.php?id=139
не в курсе как лечится?
тогда фоторама сам будет генерить превью и возможно это сработает
yadi.sk/i/HTKCeupsxbNWB
различие фоток в слайдере. и соответственно при переключении модификации тега img еще нет
Спасибо!
Только теперь еще вопрос возник:
Если листать галерею, то автоматически переключаются цвета в опциях, но не подтягиваются связанные с ними размеры. Это как-то можно решить?
Володь, у вас там сегодня ВВП гостил. Город причесали наверно.
Дороги, спорт площадки как грибы после дождя, за несколько дней выросли.
msOptionsPrice2 (2.0.0-beta) — работает на minishop2 > 2.4.0
Но я бы советовал вам обновить магазин и не держаться за старое.
приходит пустое. То есть изменение цены от первого плагины не приходит.
Почему это происходит и как вылечить?
фикс можно вот такой сделать github.com/modxcms/revolution/pull/13116
Есть плагин который в корзине меняет цену в зависимости от кол-ва. (блин плагин выше валюту переводит. поторопился когда писал.)
Как в этой строке можно получить цену модифицированную msOptionsPrice2?
где msoptionsprice_options опции продукта
И в плагине правки:
print_r($values,true) все равно пустое :(
поставили php5.3 та же проблема :(
Есть Опция(общая) размеры sizes (тоже множественный выбор, но не стандартная size), сделал так чтобы были уже готовые значения и можно было просто выбирать.
так вот:
Есть несколько размеров, допустим 10, 30, 50. Они общие, т.е. эта опция для групп ресурсов одинаковая. Соответственно на каждую группу ресурсов своя цена на размеры. Допустим так:
В каждом товаре выбираю только размер товара, из предложенных. К примеру:
Соответственно нужно выводить опции-цены только которые выбраны для товара.
Можно ли чтобы не вбивать в каждый товар размер и его цену(создавать модификации), а назначить глобально как-то, т.е. для Категории как в коде выше?
Вопрос не к компоненту, лучше наверно использовать существующее поле size, но как там связать это все и чтоб были значения(т.е. размеры 10, 30, 50 уже вбиты и можно было только выбирать)?
должен отдавать модификацию по опциям продукта.
Так вот в него поместить всю логику по вычислению стоимости модификации в зависисмости от ваших категорий и тд.
Отдаете объект модификация с нужной стоимостью и все. Должно работать.
JurijРазработчик приложения рекомендовал повысить версию php. Пробовал 5.4 и 7.0. Проблема осталась.
Пробовал удалять приложения (SeoPro, Summary, Collections и другие). Ничего не меняется.
Может кто сталкивался с данной проблемой и может поделиться решением. Не хочется полностью переделывать проект на shopkeepere из-за этой проблемы…
P.S. Установлена последняя версия minishop 2.4.4-pl и mSearch 1.6.4-pl
Купил msOptionsPrice2, возникли некоторые вопросы по работе:
1. При смене опции меняется артикул и цена, все ок. Как можно передать в корзину артикул модификации? Цена передается, артикул нет.
2. Если у товара нет модификации, артикул товара не отображается
3. Возможно ли использовать radio вместо select в списке опции?
miniShop2 2.4.6-pl1, пришлось обновить так как с 2.2 не работал
msOptionsPrice2 2.1.20-beta
1. На данный момент никакого механизма по передаче артикула нет. Можно передавать артикул как опцию продукта.
2. Поправил, обновитесь.
3. Да, конечно. Пример чанка gist.github.com/vgrish/46de7e0c9eb453a4ccb77064b3b78916
Возможно вопрос не к совсем к Вам, но может подскажете:
Опции к товару добавляются через «Множественный выбор» в таком порядке joxi.ru/KAxbe4nF4WROKm от дешевого в дорогому, соответственно выбран самый дешевый, на при сохранении порядок меняется joxi.ru/zANa0gdclbKGy2. Получается что сортировка сама меняется. Можно ли как-то выводить нужную сортировку?
>>>1. На данный момент никакого механизма по передаче артикула нет. Можно передавать артикул как опцию продукта.
Жаль, один из факторов покупки данного компонента, что есть возможность передать уникальный артикул. По факту получается это просо js манипуляция на фронтенде карточки товара.
артикула как такового нет в продукте корзины github.com/bezumkin/miniShop2/blob/53f541cb4fabe3ad32f9e0608a5abf5d25cd9a4d/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L362-L370
есть только опции, потому если вы передадите артикул как опцию он нигде не потеряется. Других вариантов я пока не вижу.
>>>попробуйте выставить настройку msoptionsprice_sort_modification_option_values в нет
поставил работает, но после обновления до 2.1.22 beta перестало работать, значение в настройках стоит нет, проверил.
и во фронте при изменении модификации завязанной на размер автоматом обновлялся инпут ридонли мощности?
если этот вопрос не связан с Вашим дополнением, можете направить куда рыть, чтобы направление было правильным? :)
Плагин на событие msopOnGetModificationById примерно так
далее событие msoptionsprice_product_action
Или это делается когда в модификацию добавляются ключи? т.е. надо внимательно следить за тем, чтобы на 1 размер 2 мощности не привязать?
Да наверно нужно как то следить.
при этом цена изменяется только в том случае, если вручную выставлена правильная модификация.
И можно ли как то избавится от вывода опций через снипет [[msOptions]] и заменить его на простой input?
Не видя тяжело чтото советовать.
можно а зачем?
нет, работает с версии 2.4.0
Если у товара есть доп поле (TV) и в его Возможные значения вписано что-то типа такого:
то карточка в админке не открывается.
Если убрать @EVAL, то всё нормально.
Скажите может ли компонент вывести в корзине стоимость заказа со скидкой и без? к примеру:
Сумма заказа со скидкой: 1 000 руб
Сумма заказа без скидки: 500 руб
В компоненте нет никаких скидок и он не влияет на корзину… Естественно никакого функционала по выводу стоимости заказа со скидкой и без нет.
2. В случае отмены заказа товар возвращается на склад?
3. К какому событию / процессу / статусу заказа привязана операция уменьшения остатков?
4. Есть опция запрета покупки или уведомления пользователя в случае покупки количества товара, которое превышает остатки?
Спасибо.
да
msOnCreateOrder
да, отслеживается ко-во товара в корзине, если нет доступного кол-во выводится предупреждение — товар не добавляется.
Поддерживаются только стандартные свойства — color, size или можно добавлять свои? У меня должны быть свойства — дозировка, объем, теоретически можно color, size приспособить для этих целей. Но в идеале, конечно, использовать свои.
Смотрю вашу демо версию и возникает вопрос, можно опции вывести в виде фото?
В частности выбор цвета.
и есть modstore.pro/packages/integration/msaddlinked
Но не совсем понял почему Вы склоняете меня к этим модулям, мне нужно что бы доп опции были в виде, фото, названия, цены, описания. Если я не ошибаюсь, этот модуль за это и отвечает, что бы выводить дополнительные опции. Или я ошибаюсь?
Как частный случай возможно его использование при условиии модфикация продукта = одна опция.
Вы можете установить пакет на тестовом сайте и посмотреть что к чему modhost.pro/
Вот тут —
Иначе в моем случае везде стоят нули
Поясните, спасибо!
иначе у меня получается вот так — screenshot.ru/upload/images/2017/04/23/EKRANA2017-04-23V15.16.3767c89.png
А то клиент вбил много данных, и в листинге показывает одну цену, а в карточке товара другую (изза модификации).
Заранее спасибо.
Варианты:
— в листинге подключить msoptionsprice с опциями
— если модификации построены на одной опции, то можно на основе msOptionsPrice.modification
вывести опции с учетом цен
— какой то еще вариант…
PS: нужно для сортировки опций в select'е.
там нет сортировки.
Для сортировки значений опций можно пользовать сниппет msOptionsPrice.option
Спасибо!
Подскажите, можно ли назначить в модификациях цену по-умолчанию, чтобы она выводилась в списке продукции (в категории магазина) через сниппет msProduct? (сейчас выводится
минимальная ценацена с максимальным msopModification.rank, взятая из модификаций, хотелось бы указывать её вручную – не через поле msopModification.rank)можно попробовать плагином
gist.github.com/vgrish/85b5d8e9e3a159975b330cc90d63f3ca
И ему совершенно побоку что стоит в msProduct.price
Но все равно, идею понял! удивительно подробные разъяснения с примерами!
И как задел на будующее – было бы замечательно указывать дефолнтную цену у модификаций, к примеру самой популярной модификации, заказываемой в магазине (можно даже по истории заказов раз в месяц выявлять самые популярные модификации и делать ценник по-умолчанию по этим данным)
исправления:
в яваскрипте modification.grid.js
в процессоре sort.class.php
внесите пожалуйста изменения, если все ок, чтобы с обновлением не потерялась логика. спасибо.
Откуда в конце хвост:
АнтонАнтонЕще вопросы есть по опциям.
Как исключить выборочно опции по ключу ms2_product_ххх?
Как исключить все опции, но включить только нужные?
использовать отрицание
АнтонЛучше 1 раз увидеть, чем 100 раз услышать.
Правда после покупки код ломает всё… Как исправить?
напишите в ТП с указанием доступов к админке и ссылкой на шаблон корзины, разберемся в чем дело.
Спасибо!
Купил уже пакет, разбираемся учу менеджеров пользоваться, но вот заинтересовало как вы реализовали работу слайдера и опций.
Долго изучал предоставленный вами материал (Чанки, Демо сайт) Сделал всё идентично сказанному.
Через фото раму, фото выделяется, но только если в Sellect Я выберу опцию, а если нажать по миниатюре фото в галерее, то опция будет стоять на месте.
Как вы сделали весь процесс?
gist.github.com/vgrish/e5c7e541b33eefc4b7c0cb68ec389096#file-tpl-msgallery-L10
если не получается напишите в ТП с указанием доступов к админке сайта и ссылкой на чанк/ шаблон продукта, разберемся.
Спасибо!
Я не могу отследить весь процесс события, но при клике в Галерее, событие отрабатывает на форме продукта, но при этом нечего не меняется.
1. if(inputs){inputs.each(function(){msOptionsPrice.Tools.setValue(this,value,key);});}
2. inputs.each(function(){msOptionsPrice.Tools.setValue(this,value,key);}); (результат: value = «Белый», key = «colors»)
3. return;},setGalleryImage:function(rid,iid){var fotorama=$('.fotorama__img[data-rid="'+rid+'"]').closest(msOptionsPrice.Product.gallery).find('.fotorama').data('fotorama');if(!!fotorama){if(fotorama.activeFrame['iid']==iid){return;}
4. ,setGalleryImage:function(rid,iid){var fotorama=$('.fotorama__img[data-rid="'+rid+'"]').closest(msOptionsPrice.Product.gallery).find('.fotorama').data('fotorama');if(!!fotorama){if(fotorama.activeFrame['iid']==iid){return;}
5. key in data.options){if(!data.options.hasOwnProperty(key)){continue;}
6. if(!msOptionsPrice.Tools.empty(errors)){console.log(errors.join('
'));}} (при этом уже стоит результат «errors=[]»)
7. }}).done(function(response){}).fail(function(jqXHR,textStatus,errorThrown){});}};msOptionsPrice.Tools={arrayIntersect:function(array1,array2){var result=array1.filter(function(n){return array2.indexOf(n)!==-1;});return result;},inArray:function(needle,haystack){for(key in haystack){if(haystack[key]==needle)return true;}
Это все процессы в инициализации.
При клике по фото скрипт получает данные ключа опций, а так-же значение этого ключа.
У скрипта есть направление в name=«options[key]», но при этом значение не меняется в этом селекте
Выдаёт последнюю выбранную опцию
Default.js: msOptionsPrice.Tools.setValue -> switch -> case tagName == 'INPUT' && tagType == 'checkbox'… В случае, если выбрано 2 опции в фильтре товаров, то тут он сначала выставляет первой опции галочку, потом снимает, потом снимает со второй, потом ставит...)) Стоит сделать проверку, думаю, на наличие опций из массива, а не перебирать, так 4 цикла получается. Дальше не успел, вернусь через пару часов за комп.
на
, или что-то вроде того. Или я что-то не так понял в плане функционала?
Внес правки, можно обновиться.
Спасибо!
1. В админке невозможно создать разные модификации с одним ключем, но разными значениями (чтобы создать наборы из комбинаций опций).
2. Если модификации выставлять с ценником +к стоимости товара, то на фронте выставляется стоимость по последней опции.
Эти два пункта исключают возможность выставлять цены опциями в чекбоксах))
Могу предоставить тот же сайт, он пока не очень работает, можешь там поэкспериментировать, если нужно.
В любом случае есть ТП можно/ нужно писать туда по вопросам и тд…
Спасибо!
В msOptionsPrice.modification увидел параметр «toPlaceholder» с параметрами Да/Нет.
Замечательно, а как плейсхолдер-то называется в который сниппет сохраняет результаты?
Ведь самому указать название нельзя
Это банальная очепятка в типе свойства.
просто задайте название плейсхолдера в параметре toPlaceholder
Пишите в ТП
Приложите доступы к админке и ссылку на проблемный товар.
Спасибо!
Подскажите, пожалуйста! Как реализовать изменение цены не от количества, а от веса, с помощью данного модуля?
Например, 1 кг продукта стоит 500 рублей. пользователь вводит, что хочет 333 грамма и товар с соответствующей ценой добавляется в корзину.
Если поле вес предполагает свободное значение то можно реализовать через плагин.
Пишите в ТП, решим.
Спасибо!
При добавление в моификацию опции, отображались не все опции
joxi.ru/82Qpan0sj73Kem
Чтож полез в процессор «mgr/misc/option/getkeys.class.php», вывел массив в лог joxi.ru/1A5QnldhnYkE4A
Там получил все опции нормально.
Пошел дальше с мыслью, что где-то исключается и как вариант лимит стоит, посмотрел функцию getData(). Там установил лимит на 0 и начали отображаться все опции.
joxi.ru/12M7daECM9X6xr
Версия последняя.
у тебя на скрине этого не видно, есть она или отсутствует у опций с кол-ом значений > 10
Спасибо!
joxi.ru/D2PVZOJspybd3r
Опиши более детально что ты хочешь с этим сделать, спасибо!
Лучший пример — это ситуация:
Есть 10 неких опций, Тест 1-10. Спустя месяцы захотелось добавить опцию Тест 11, но так чтобы она отображался в карточке товара после опции Тест 3.
т.е.:
Вот я как то тебе задавал этот вопрос. Повторюсь, а зачем в списке опций для модификации, отображаются те опции которые вообще не должны быть у этой категории? joxi.ru/KAg7zleC4DBalA
т.е. не просто так же идет назначение опции для категории при ее создании в настройках ms2
Блин пока писал пост ты уже что-то сделал)))
ну добавил сортировку по умолчанию, вроде то и надо было.
А на фронте что-то надо поменять? какой параметр? т.к. там отображается в конце
Если чтото не пашет пиши дальше уже в ТП, будем разбираться.
Спасибо!
Есть возможность выводить в каталоге разные модификации товара (критерий размер-цена, как сделано в карточке товара на демо-сайте) с возможностью добавить их в корзину как отдельные товары?
Спасибо.
вы сейчас говорите о каталоге модификаций? Если да, то нет, на данный момент такой возможности нет. ТОлько если в каждом товаре запустить сниппет для вывода модификаций.
Клиент хочет следующее:
На странице каталога/категории есть несколько товаров, у каждого задана модификация размер-цена.
В каждой карточке выведенной в каталог сделать отдельными строками ввод количества и возможность заказа каждой из модификаций как отдельный товар в корзине.
Пример — есть пицца маргарита размером 32см, 40см и 50см. Я хочу заказать 3 маргариты 32см и 2 маргариты 40 см из каталога/категории товаров пицца.
Это реализуемо?
пример
По вопросам работы платных компонентов всегда можно (лучше) писать в ТП
Этим компонентом пока не пользовался, поэтому вопрос и возник, т.к. предположил что данный компонент такое может уметь делать.
Спасибо за подробный ответ! Как только согласуем ТЗ — в магазин за компонентом)
Скажите, есть ли возможность выводить отдельный набор изображений для каждой модификации? То есть не одно изображение на модификацию, а несколько (галерея модификации). Если нет, планируется ли добавить такой функционал? А если не планируете, можете ли рассмотреть возможность добавления такого функционала индивидуально?
Спасибо
, и . Все работает великолепно но загвоздка, в том, что когда выбираем штучный товар скажем «Роза .....» и упаковку для неё, то price меняется с учетом модификации ( и это правильно) но если нам нужна не одна, а скажем пять «Роза .....» то при изменении count, цена за каждый товар будет прибавляться с учетом модификации. Следовательно вопрос такой, как сделать чтобы цена с модификацией (упаковка), прибавлялась только один раз к данному товару (count = 1), а если этого товара нам нужно больше одного (count > 1), то цена добавляется без учета цены за эту модификацию(упаковка)? Подскажите пожалуйста решение или место где копать.
Возможно в данном случае с упаковкой нужно использовать чтото другое для модификации цены.
Напишите в ТП с указанием доступов к админке сайт и ссылкой на тестируемый товар. Посмотрю что можно сделать.
Спасибо!
Если вас это устраивает то отлично.
Ситуация следующая: у товара есть размеры XXS, XS, S, M, L, XL, XXL, XXXL.
При вызове msOptionsPrice.option все размеры сортируются только в алфавитном порядке, то есть: M, L, S, XS, XL, XXS, XXL, XXXL.
Параметр size:SORT_DESC меняет только направление, а size:SORT_ASC:SORT_NUMERIC, естественно, ничего вообще не меняет, т.к. тут буквенные размеры.
Как сделать, чтобы выводился порядок XXS, XS, S, M, L, XL, XXL, XXXL?
Вы определитесь, что вы хотите сортировать? На скрине модификации, ниже текст про опции…
Если речь о выводе опций, попробуйте вывести опции с помощью родного сниппета msOptions
пример:
выбор размера, влияет на цену и вес — это как у вас в примерах, всё отлично работает.
есть у меня ещё опции товаров, ключ p6 — Список с автодополнением, там разные значения так скажем.
а как сделать что бы они менялись при выборе размера, в модификации добавил
пробовал и так
и так
— написать js на событие msoptionsprice_product_action и сделать смену
подробности и вопросы задавайте в ТП, спасибо!
Я правильно понимаю что для своих полей надо просто добавить соответствующие дополнительные опции minishop2 и тогда они станут доступны в модификациях?
Планируется ли такое улучшение?
Галерея модификации уже давно есть joxi.ru/l2Z3kMWtwqYKpA
Пропишите в настройку msoptionsprice_window_modification_tabs
Для этого можно написать немного кода, например
рабочий пример тут s6200.h3.modhost.pro/6/12010.html
Подскажите, пожалуйста, как можно реализовать условие: если значения опций разные, то добавить в корзину два товара с разными параметрами, иначе один.
Например, у меня есть товар линз, если характеристики правого и левого глаза разные, то нужно добавить два товара один для левого, другой для правого.
Не думаю что данную задачу нужно решать с помощью данного компонента.
Вам стоит на странице товара — линза выводить две формы продукта и кнопку по которой вызывать сабмит у этих форм. В корзине будет то что в итоге пользвоатель выбрал.
пример
Добавляю в корзину модификацию. Модификация добавляется с ценой основного товара, а не модификации. В чем может быть причина?
Тест s15298.h10.modhost.pro/index.php?id=3
Корзина s15298.h10.modhost.pro/index.php?id=6
По вопросам работы платных компонентов следует писать в ТП.
Приложите доступы к админке сайта, посмотрю в чем дело.
Спасибо!
s15298.h10.modhost.pro/manager/
s15298
IjlV2lwWTRX2
Подскажите пожалуйста, как программно добавить модификацию товара в корзину. ТП не могу писать, прошел год с момента покупки.
Заранее спасибо.
У этого товара нет в некоторых цветах других покрытий и выводится цена карточки товара.
Пример:
krovlya-yuga.ru/products/keram_cherepica/czelnaya-cherepicza-creaton-seriya-ratio-hongeda/
черный цвет, покрытие глазурь — такой товар есть, а вот цвет черный, покрытие — натуральное — такого товара нет и выводится цена карточки товара. Кто сталкивался с таким?
Сценарий использования такой:
Интернет магазин. продает краски. Есть банка с краской, это один товар, у товара следующие опции:
Объем — 18 литров, 180 литров.
Цвета — Белый, черный, красный, синий.
Вопрос:
Может ли ваш плагин рассчитывать итоговую цену позиции сразу по двум опциям: объему и по цвету?
Например:
18 литров (100 руб) + синей цвет (50 руб) = 150 руб за позицию
180 литров (1000 руб) + красный цвет (100 руб) = 1100 руб за позицию
180 литров (1000 руб) + синий цвет (50 руб) = 1050 руб за позицию
Еще вопросы:
1. Как можно вывести цену выбранной комбинации на странице товара рядом с кнопкой «В корзину»?
2. В MiniShop2 заказы правильно сохранятся для распечатки заказа менеджерам?
Спасибо.
в стандартном варианте с слайдером фоторама всё работает
В товаре не появилась вкладка «Модификации».
Что за дела?
modstore.pro/packages/ecommerce/msoptionsprice2
по вопросам работы платных дополнений следует писать в ТП.
Спасибо!
Как отображать количество товаров в наличии? Как вообще поля называется? remains?
По вопросам работы платных дополнений пишите пожалуйста в ТП.
Спасибо.
обнаружилась проблема со спецсимволами в опциях.
т.е. например, символ "/" не воспринимается в значении опций — «120/220».
ввести такой параметр можно и он буден виден, но если указана зависимость одного параметра от другого, то выбрать его с списке select невозможно, такой параметр неактивен.
пример — proekt316.ru/truba-sendvich-1000-mm
тут, опция «Диаметр» зависит от опции «Толщина».
возможно решить проблему?
замените в чанке вывода опций
на
Есть ли решения, как использовать в управлении сайтом msOptionsPrice2 для удобства, но иметь разные страницы для каждой модификации? Выгрузка в маркет требует отдельной страницы для каждого товара, а без бубна я решений не обнаружил.
Даже на вашем демо-сайте.
1. Идём сюда — s6200.h3.modhost.pro/katalog/tovar1.html
Выбираем айфон цвета — «Белый», размер памяти — 256
yadi.sk/i/iaUKW-L9izOPqQ
И кладём в корзину.
Переходим на страницу корзины и видим старую цену: 13 645.74 руб
Тут всё ок.
2. Снова идём на эту же страницу с товаром.
Но теперь кладём в корзину саму модификацию — yadi.sk/i/YQJIsBoduyia7A
Переходим в корзину и видим что старая цена у нас совершенно другая — yadi.sk/i/2fD84ME5EajDvg
По логике, это скорей всего старая цена которая указана в поле old_price самого Minishop2
Точно так же, ваш модуль ведет себя и на моём сайте.
Он не отправляет старую цену модификации в корзину.
В корзине всегда выводится old_price из поля минишопа. — yadi.sk/i/XYFbAXVVoqs5Pg
bonzaznobЕсть ли возможность добавить кастомное поле в список модификаций, созданное через minishop2 Plugins?
В товаре без категории появляется, в других нет.
Вопрос снят. не все шаблоны указал в настройках.
Есть товар — диван. У него в качестве модификации есть выбор материала обивки под заказ (разный материал — разная наценка к базовой стоимости). На странице товара при клике на выпадающий список вариантов обивки надо, чтобы появлялись не просто текстовые значения (типа, красный, зеленый и т.д.), а изображения материала. Очень наглядно это представлено на сайте икеи (пример).
Можно ли средствами msOptionsPrice2 реализовать это?
И второй вопрос: можно ли сделать так, чтобы изображения для материала хранились и отображались отдельно от изображений самого товара?
prntscr.com/sco83t, а также установить public $showZeroCount в значние false
Вывожу так
Выводит 0
RostFailed to load resource: the server responded with a status of 404 (Not Found)
modification.window.js?v=2.5.0-pl:27 Uncaught TypeError: msoptionsprice.config.window_modification_fields.indexOf is not a function
at S.(modification.window.js?v=2.5.0-pl:27)
at Object.each (ext-base.js:21)
at msoptionsprice.window.modification.(modification.window.js?v=2.5.0-pl:22)
at h.Event.fire (ext-all.js:21)
at msoptionsprice.window.modification.fireEvent (ext-all.js:21)
at msoptionsprice.window.modification.render (ext-all.js:21)
at msoptionsprice.window.modification.show (ext-all.js:21)
at msoptionsprice.grid.modification.fn (modification.grid.js?v=2.5.0-pl:649)
at MODx.Ajax._runCallback (modx.js?v=fb0b0b89:652)
at MODx.Ajax.success (modx.js?v=fb0b0b89:611)
extra.css:1
Ждать приходится долго ответа, товар не стоит 990р.
RostRostДокументацию нормально напишите как msExtraFields, у многих вопросы.
А решений дождаться не реально всё через js у вас решается.
RostОчень негативно теперь отношусь к вашей продукции.
RostА то что продукт не качественный всё равно вам.
Чтоб цена отображалась модификации как на етом сайте www.zlatamebel.ua/ua/product/antonio-ug
и самое главное что цена вводится в доларах а отображається в гривне. СПАСИБО
Здесь видно, что сначала выводится 30 256р, а после заменяется на 10 064р.
Возможно ли как-то исправить этот баг?
Вопрос к @Володя почему так?
в данном варианте кода ругается на "+"
{'!pdoPage'|snippet: [
'element' => 'msProducts',
'tpl' => "@INLINE
{'!msOptionsPrice.modification'|snippet: [
'product' => {{+id}},
]}
"
]}
Инициализация прописана, классы для смены значения прописаны.
В консоли ошибок нет, в «Журнале ошибок» в MODX тоже ошибок нет, при переключении не обновляется значения
Прошу прощения, упустил параметр прописал его, все отлично работает.
prnt.sc/10utdxr
В чем может быть проблема?
Ребята, помогите пожалуйста.
вызываю [[!msOptionsPrice.modification]] для вывода существующих опций товара
zolotayacherepaha.ru/china/5/trexetazhnyij-pastyirskij-mednyij-splav-remen-buddyi-visit-dver-ukrasheniya-dvernoj-magazin-s-dvernyim-zvonkom-turistskie-zhivopisnyie-metallicheskie-kolokolchiki-ukrasheniya-alibaba.html
но вместо картинок опций выводится заглушка
Писал автору, но видимо у него нету времени, совсем.
мне кажется, причина в этом чанке
tpl.msOptionsPrice.modification
При обновлении курса необходимо пересчитать цену для каждой модификации, цена автоматом не пересчитывается.
Сейчас приходится проваливаться в каждый товар -> выбирать все модификации -> нажимать «Включить»
— тогда происходит обновление модификаций и цен в рублях.
Возможно есть какой то способ через консоль обновить все модификации? или настроить чтобы пересчитывалась цена в рублях для всех модификаций при обновлении курса автоматически.
PS: Обновление курса через модуль msMultiCurrency, CurrencyRate, курс обновляется через крон.
подскажите пожалуйста, может кто сталкивался такой проблемой?
при создании модификации (как на видео выше) в отчете выдает только эту запись:
[2022-04-19 18:04:23] (ERROR @ /home/site/public_html/core/components/msoptionsprice/processors/mgr/option/getlist.class.php: 190) PHP warning: Invalid argument supplied for foreach()
чтоб, было понятнее, запечатлел на видео проблему:
viraldoor.by/support/errore.mp4
msOptionsPrice2(msoptionsprice2-2.5.22-beta), я установил на MODX Revolution 2.8.3-pl.
Все работает отлично, кроме expander на Product modification tab, см. вложение.
, а модицировал только при выборе опции кликом… А то получается что первоначальная цена (цена товара дофолтовая) не доступна…
хотел бы узнать Володя @Володя больше не занимаетесь развитием/улучшением msOptionsPrice2?
вопросы такие:
— уход от jQuery
— по каждому товару из плитки запрос на сервер, лучше было бы один большой запрос
— джеквери чем неугодил?
— по плиткам это да актуально
Версия что сейчас в репозитории меня многим не устраивает и выпилить джеквери и переделать запрос по плиточкам по факту ничего кардинально не изменит.
Тенденция такая сейчас, что все компоненты переходят на чистый js. Меня тоже сподвигло перейти на чистый js, около полугода пишу. В начале было не очень) Ну и помимо тендеции это лишняя подключаемая библиотека, например у меня на сайте нигде нет jQuery и тут его придется подключить.
Расскажите что не так и какие планы в целом?
мне примерно через месяц понадобится msOptionsPrice2, и не хотелось бы попасть в ситуацию когда купил msOptionsPrice2 и на след день вышла msOptionsPrice3.
И в целом для магазина три основных компонента, miniShop2, mSearch2, msOptionsPrice2. Если miniShop2 развивается нет нет, то последние два «отстают», извините меня за душноту опять же оба подключают jQuery.
Заполняю модификацию на русском, все отображается до момента сохранения.
После сохранения в админке вижу замененные на знак вопроса все русские буквы, при этом на сайте все отображается нормально.
Также в файле core/config/config.inc.php должна быть выставлена нужная кодировка:
Проблема оказалась в кодировке столбцов таблицы msop_modifications, была указана latin1_swedish_ci.
Замена на utf8mb4_unicode_ci исправила ситуацию.
Пример:
Размер 80х190 см… 4500 руб
Размер 80х200 см… 4700 руб
Размер 90х190 см… 5900 руб
Размер 90х200 см… 6200 руб
и тд.
Есть два города. Возможно ли сделать так, чтобы при выборе города №2 ко всем ценам в модификациях добавлялась сумма, к примеру, +700 руб.?
https://ibb.co/tLMjFV5
https://ibb.co/5hqJBRx
https://ibb.co/pWwsQMZ
msOptionsPrice2 2.5.22-beta
Minishop2 3.0.7
Как же все таки вывести msOptionsPrice2 — чекбоксами?
Точнее они то выводятся, но работают криво, как писали выше. считает по последнему и всегда как будто активный висит какой то.
Как вывести цену модификации?
gist.github.com/vgrish/245de1f287a1263a30d81c386d4f7534
Наш сайт playplast.ru/products/teplica-agro-plyus.html
При переключение монтаж у нас не манятся старая цена, хотя условия сделаны.
Например выбираем ПОЛИКАРБОНАТ 4мм, 800гр + ДЛИНА 4 метра + МОНТАЖ да, должна старая цена манятся, но почему-то не меняется.
вот кусок кода который мы используем Помогите решить данную ситуацию
Старая цена остаётся та же, а новая меняется вот в чём загвозка, а должна ((
[[!msProducts?
&parents=`33`
&limit=`0`
&includeContent=`1`
&tpl=`msProductIndex`
&toPlaceholder=`catalog`
&includeThumbs=`250x250`
&includeTVs=`crop`
&innerJoin=`{«msCategory»: {«class»:«msCategory», «alias»:«msCategory», «on»:«msProduct.parent = msCategory.id»}}`
&sortby=`msCategory.menuindex ASC,msProduct.menuindex`
]]
При вызове [[!msOptionsPrice.initialize?]] в шаблоне каталога выводит /components/msoptionsprice/action.php 508 (Loop Detected)
В карточке товара, все работает отлично.
что делать хз(
Появилась ли полная документация по данному компоненту (msOptionPrice )?
Интересуют все события, и если есть события js и их описания.
По событиям — оно только одно на получение аякс запроса от коннектора.
Если не хотите описывать события — так и скажите.
И что документация к сожалению не появилась. Ну если она не появилась, то неужели сейчас вот появится? С учётом того что апгрейда не было несколько лет.
Я всегда рад помочь, но для этого мне нужно знать что вам конкретно необходимо.
Суть такая, что на всем сайте есть скидка 10%. Необходимо на лету выставить некоторым модификациям эту скидку в цену и отобразить еще и старую цену (которая является текущей ценой без скидки).
т.е: Реально ли повлиять на цену old_price, да еще и выставить на фронте в модификацию любое свое поле, а потом чтобы в js его на событии поймать?
А PR принимаете на новые возможности?
Если вы сформулируете точнее что вам надо — получите точнее ответ.
не вижу смысла, теперь только под MODX3.
Сам чанк