[msAddLinked] Опции товара с изменением цены

Описание
Добавление связанных товаров в виде дополнительных опций с увеличением цены добавляемого товара.В любой форме добавления товара в корзину можно выводить дополнительные товары, которые будут добавлены в качестве опций с последующим увеличением цены.
В корзине возле товара выводятся добавленные опции.
ВАЖНО: в списке связанных выводятся только те товары, для которых в связях текущий товар или указанный сниппету msAddLinked.input является главным.
Сниппет msAddLinked.input
Предназначен для вывода списка связанных товаров и полей ввода. По умолчанию выводятся чекбоксы, но, в теории, можно задать любой тип, поддерживаемый атрибутом type тэга input.Проверена корректная работа типов text, number. Если в этих полях ввода указывать число, опции к товару в корзине будут добавлены в соответствующем количестве.
Параметры
| Название | Значение по умолчанию | Описание | &tpl | tpl.msAddLinked.input | Чанк оформления | &product | 0 (Текущий товар) | ID главного товара | &link | 0 (Все связи) | ID связи | &inputType | checkbox | Тип поля ввода для каждого связанного товара | &priceTarget | #price | Селектор HTML элемента для вставки измененной цены | &priceOrigTarget | #msal_price_original | Селектор HTML элемента для получения изначальной цены | &fieldName | pagetitle | Поле ресурса для вывода названия | &toPlaceholder | 0 | Если указан этот параметр, то результат будет сохранен в плейсхолдер, вместо прямого вывода на странице |
|---|
Сниппет msAddLinked.info
Предназначен для вывода в корзине и в письмах списка добавленных к товару опций.Параметры
| Название | Значение по умолчанию | Описание | &tpl | tpl.msAddLinked.input | Чанк оформления | &key | 0 (Текущий товар) | Ключ элемента в корзине | &fieldName | pagetitle | Поле ресурса для вывода названия |
|---|
Пример вызова:
[[!msAddLinked.info? &option=`[[+option.msal]]`]]Системные настройки
| Название | Значение по умолчанию | Описание | &msal_frontend_js | [[+jsUrl]]web/default.js | Путь к файлу JS | &msal_variable | msal | Название переменной в опциях |
|---|
Заключение
Компонент отправлен на модерацию в магазин, скоро будет доступен для покупки по символической цене — 490 руб.Создан по заказу Stan Ezersky, за что ему большое спасибо.
Обновлено 04.08.2016
Добавлен демо-сайт: https://demo.compaero.ru/
Немного изменен принцип сохранения опций в корзине и в заказе, смотрите в документации.
Комментарии: 136
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Кто не понял, что за компонент и что он делает, представьте, у вас есть категории товаров «Цветы» и «Дополнительные товары» (упаковка, плёнка, бумага, лента, верёвка, тесьма и т.п.).
Имеем карточку товара «Роза красная», к которому через связи привязаны дополнительные товары. Кроме того, что мы можем стандартно набрать роз по количеству, мы ещё с помощью этого компонента можем собрать полноценный оформленный букет не выходя из карточки товара — через связи выводятся «Дополнительные товары» — каждый товар с чекбоксом, отметив который, изменится общая цена.
В корзине будет виден основной товар с выбранными дополнениями.
Также, есть возможность добавлять с количеством.
Какое отличие от modstore.pro/packages/ecommerce/mssetincart?
Неплохо бы увидеть демо.
Демо бы.
Почему бы не скинуть адрес этого сайта по кроватям?
В каком виде опции хранятся? Можно выборку по ним делать?
Опции, которые предлагаются для добавления — обычные товары MS2, привязанные через стандартный механизм связей. Можно их дополнить картинками и описаниями, создав под них отдельную страницу — появится смысл в основном товаре названия сделать ссылками на эти страницы с подробным описанием.
link 1: Синяя подсветка фар — Зеленая подсветка фар — Желтая подсветка фар
link 2: Синяя подсветка дна — Зеленая подсветка дна — Желтая подсветка дна
link 3: Гос номер
link 4: Обивка 1 — Обивка 2 — … — Обивка 10
?
Если да, то как реализуется?
Вызывать каждый раз msAddLinked.input?
И еще я не совсем понял про тип опции.
Это обычные товары, но в корзинке показываются только в виде доп. опций к основному товару?
Можно их вывести в виде отдельных товаров?
Посмотрите компонент в работе.
Да, здесь отдельно для каждой связи нужно будет вызвать сниппет. Важно: все опции, даже в рамках разных связей, будут взаимодополняющими. В качестве решения Вы можете добавить скрипт, который при выборе любой опции сразу будет блокировать для выбора все остальные группы опций.
Наверно нужно блокировать остальные опции внутри каждой группы? Самое простое — радиокнопки поставить на каждый линк.
Например, чтобы нельзя было выбрать одновременно и синюю и зеленую подсветку фар, но можно было выбрать подсветку дна и номер.
Да, можно и так.
1) Добавлена ссылка на демо-сайт
2) Актуализирована информация о сниппетах (внесены небольшие изменения в пакет)
Компонент обновлен в магазине.
P.S. Ошибся веткой, но всё же
Вот мой чанк:
Подскажите, можно ли доработать функционал данного компонента, для реализации схемы как на Озоне.
www.ozon.ru/context/detail/id/135892866/
Т.е. Комплект продается с некоторой скидкой от общей стоимости?
По какой формуле должна высчитываться скидка? Скорее всего, это можно будет доработать в рамках поддержки.
Либо только на основной продукт. Важно, чтоб цена комплекта была ниже, чем сумма цен всех товаров по отдельности. Ну и эта скидка может быть разной от комплекта к комплекту.
Но я постараюсь уточнить требуемый функционал.
1) За каждую опцию добавляется фиксированная величина скидки
2) У каждой опции своя величина скидки
Скидки применяются к стоимости набора или только к стоимости товара, сумма выбранных является полной скидкой.
Предложил заказчику выбрать из трех вариантов реализации:
1. Зафиксировать скидку для любого комплекта. (создается любой комплект, и от стоимости комплекта отнимается допустим 10%)
2. Устанавливать конкретную скидку в момент создания комплекта (создается конкретный комплект с указанием конкретной скидки 500 р, и от стоимости конкретного комплекта отнимается эти 500 р.)
3. Для каждого дополнительного товара в комплекта устанавливать свою величину скидки, которая будет вычитаться из общей стоимости комплекта.
(создается комплект в котором главный товар А 2000, дополнительный товар Б 1000 и ему назначается скидка 200 р, дополнительный товар С 5000 и ему назначается скидка 100 р. И от стоимости комплекта 2000+1000+500 отнимается скидка товара Б 200 р. и скидка товара С 100р Т.е. 2500-200-100= 2200 р.)
Заказчик выбрал Третий вариант.
Удалось, в скором времени загружу обновление.
АнтонС помощью Вашего компонента, те товары, что выведены в виде связей при добавлении в корзину будут туда попадать как раз в виде опций к конкретному основному товару?
Чекбоксы
Инпуты
Рэйдио
Допиливать ничего не надо, я заказывал этот компонент под свои задачи и многое предусмотрел, разработчик отлично дополнил.
Вот пример
Вызов msAddLinked.input в шаблоне-карточке ms.Product в формате Fenom с опциями+простой вызов
Вызов msAddLinked.info в таких-же форматах.
Чем проще система установки и эксплуатации, тем больше это дополнение будет пользоваться спросом из-за своей простоты, напишите пожалуйста разжёванный пример для «ЧАЙНИКОВ»
Поскольку стандартный синтаксис поддерживается и в fenom чанках, Вы спокойно можете копировать примеры из документации. Если что-то не заработает, пишите в поддержку в магазине, тк может потребоваться доступ к админке.
а в чанке изменить
Изменения внес, скоро загружу обновленный пакет.
Позже проверю, спасибо.
demo.compaero.ru/smartphones/smartfon-apple-iphone-6-64gb,-serebristyij.html
В теории — хорошо, на практике не проверялось. Если не заработает, напишите в поддержку — докрутим.
Можно ли данным компонентом реализовать изменение цены в зависимости от веса?
Нет, такая возможность не предусмотрена.
в документации приведен такой код:
видимо эти изменения сделаны недавно?
подскажите рабочий код в моем случае.
если я заменяю мой код на Ваш, то ничего не выводится.
Прошлая версия работала.
Но эта версия не правильно суммирует Цену товара и опции к ней
Если косяк с несколькими опциями сохранится, в поддержку магазина скиньте доступ к админке сайта.
Все правильно работает, и опции правильно складываются.
Сейчас попробую 0.3.5 поставить — посмотрю как в ней будут опции складываться
Вам на почту доступ скинуть?
Позже на тестовом повторю ситуацию, скорректирую.
Вот что выдает yadi.sk/d/CSZnTnPw3MijtB
modx.pro/store/12490-support-extension-from-add-on-authors/
joxi.ru/Vm6RRWJTxbEKNm
Проверял вот на этой странице
Сохраняются ли выбранные параметры в личном кабинете пользователя и в каком формате приходит это все на почту?
2. Можно, если изменить чанк вывода опций и добавить в него вызов сниппета с генерацией галереи/выборкой картинки
3. Сохраняются в JSON-формате. Для вывода в человеческом виде есть специальный сниппет
вопрос: можно ли сделать так, чтобы товары, которые крепятся в виде опций, нельзя было купить по отдельности? ну то есть, я знаю что можно, но сделан ли этот функционал в самом дополнении?
Вынесите такие товары в отдельный раздел и не показывайте их покупателю. Для еще большей надежности можно добавить плагин на событие msOnBeforeAddToCart.
Добавьте апострофы.
Насколько я понял это дополнительные опции. С каким параметрами создавать эту опцию?
Помимо связей есть возможность указать раздел с опциями через &parents= и/или отдельные ресурсы через &resources=
НА входе ВХОДЕ принимаются любые параметры, которые потом для выборки передаются в pdoTools.
Компонент снова в продаже: modstore.pro/packages/integration/msaddlinked
Можно ли выводить только те товары в связях, которые опубликованы?
msAddLinked.input вроде нормально отрабатывает.
Может изменился вызов сниппета в новой версии ms2?
В техподдержке не отвечают.
Спасибо Михаилу.
В чанке catalog цену заворачиваю в Но ничего не работает. Что я делаю не так?
Если же Вы добавите в корзину из каталога, то товар будет добавлен вместе с опциями, стоимость рассчитается правильно.
1. Доп. опции — НЕ отдельные товары, как я понял. Список доп.опций настраивается на карточке товара? А их Название — Стоимость?
2. Можно ли как-то сделать один список для 30 товаров из 100 (по родителю, например).
2. Можно. Для сниппета msAddLinked.input, который используется для вывода опций, поддерживаются параметры pdoResources.
а реально добавить опции товара для модификации msOptionPrice2?
Понятно, что связь применяется для самого товара. А вот как применить их для модификаций?
Например, для синего телефона выводить синий чехол, а для красного — красный.
Вывод опций для модификаций Вы можете реализовать самостоятельно, так как скрипт компонента работает с любыми полями ввода, имеющими определенный класс.
В параметре &fieldDiscount сниппета msAddLinked.input указывается название TV товаров-опций, в котором содержится величина скидки при добавлении данной опции.
Тогда Вам нужен компонент msOptionsPrice2.
В опции видеокарты. Цену вывожу [[+price]].
Все равно при выборе опции не переключает цену.
Вот же стоит.
Не могу понять, как сделать радиокнопки, т.е. что писать в параметр name: если я пишу name="{$input.input_name}" — то получается у всех радиокнопок разные имена и они не взаимоисключают другу-друга… если задаю им одинаковое имя, например name=«test» — то они работают как надо, но в корзину ничего не попадает…
Помогите пожалуйста.