Продукт как партия элементов (но элементы все одинаковые) и solidus_product_assembly
Я использую Solidus для приложений интернет-магазина, и я пытаюсь обращаться с продуктами, которые продаются как пакеты товаров. У меня есть Продукт "Кусок бумаги" со значением количества на складе, и я продаю эти листы только по 50.
Пункт "Кусок бумаги" хранится отдельно на моем складе, но никогда не продается отдельно.
Я имею в виду два возможных решения:
Я видел, что могу создать "Пакет" OptionType, назначить его для моего продукта, а затем создать вариант со значением типа опции, установленным на 50. Но я не нашел способа связать количество запасов моих отдельных листов бумаги с подсчет количества моих упаковок по 50 штук, что я и хочу сделать.
Я попробовал надстройку solidus_product_assembly, который позволяет использовать продукты в качестве пакета других продуктов. Похоже, что это решение работает лучше, так как оно обрабатывает стандартное обновление assembly_parts продукта. Моя проблема здесь с запасом моего сборочного продукта: мне кажется, я должен установить его вручную, здесь не выполняется автоматический расчет в зависимости от наличия других продуктов. Может я что то пропустил? На данный момент я переопределяю метод total_on_hand Spree::Product, чтобы справиться с этим, среди нескольких других настроек.
Поскольку в моем случае у меня никогда не будет более одного assembly_part в сборочном продукте, кто-нибудь думает о лучшем решении или это, как я думаю, самый очевидный способ справиться с этим?
1 ответ
У нас похожая ситуация. Мы сделали размеры, связанные с продуктом. В коде переднего конца мы отображаем установленный размер и принимаем количество в качестве заданного количества. Цена, которую мы показываем ОС для отдельного товара, вы можете показать его для всего набора в соответствии с вашими требованиями. Во время размещения заказа просто умножьте заданное значение на заказанное количество. Вам нужно будет добавить немного кода JavaScript и переопределить немного кода контроллера из внешнего интерфейса, чтобы получить правильное количество с точки зрения набора. Кроме того, где бы вы ни отображали количество для конечного пользователя, обновляйте его в терминах набора. Также просто еще один совет, из бэкэнда можно изменить заказ, и если количество изменяется на какое-то значение, не делимое на заданный размер, чем отображать количество в единицах.
На бэкэнде вы можете указать количество в единицах. Я бы посоветовал не вносить никаких изменений, чтобы остальная часть кода была обновляемой и достаточно стабильной.