msOptionsPrice.modification как получить продукты с одинаковым значением параметра модификации
Я использую msoptionsprice2 с msOptionsPrice.modification.
Продукт имеет следующую структуру:
Платье с модификациями(options): цвет, размер, коллекция.
например:
ПлатьеА(Красное, XL, Летняя коллекция)
ПлатьеА(Синий, XL, Летняя коллекция)
ПлатьеB(Красное, L, Летняя коллекция)
ПлатьеB(Красное, XL, зимняя коллекция)
Как получить все товары (платья из определенной коллекции)?
например: Летнюю коллекцию?
что-то вроде этого:
Продукт имеет следующую структуру:
Платье с модификациями(options): цвет, размер, коллекция.
например:
ПлатьеА(Красное, XL, Летняя коллекция)
ПлатьеА(Синий, XL, Летняя коллекция)
ПлатьеB(Красное, L, Летняя коллекция)
ПлатьеB(Красное, XL, зимняя коллекция)
Как получить все товары (платья из определенной коллекции)?
например: Летнюю коллекцию?
что-то вроде этого:
[[!msOptionsPrice.modification?
&where=`{"collection":"Летняя коллекция"}`
]]
Комментарии: 11
Я бы на вашем месте хорошо подумал, а точно ли коллекция это свойство товара, которое должно быть в модификации. А в текущей раскладке скорее всего только свой сниппет писать, который сделает нужную выборку из БД.
да, вы правы насчет коллекции, но в текущей структуре с использованием модификаций другого пути нет. В коллекции может быть продукт всех цветов, но также может быть продукт определенного цвета. Я не вижу другого пути.
Доброе утро. Можно использовать параметр byOptions
{'!msOptionsPrice.modification'|snippet: [
'byOptions' => [
'collection' => 'Летняя коллекция'
]
]}
ps. пардон. все модификации это не даст, а только первую подходящую.
Вот так должно сработать
[[!msOptionsPrice.modification?
&where=`[ "Option.key = 'collection' AND Option.value = 'Летняя коллекция'" ]`
]]
Я уже пробовал это, но он возвращает: [msOptionPrice] The resource with id= is not instance of msProducts.
Если я добавлю &product = product_id оно работает.
Но мне нужно получить список всех продуктов(из модификаций), принадлежащих определенной коллекции.
Если я добавлю &product = product_id оно работает.
Но мне нужно получить список всех продуктов(из модификаций), принадлежащих определенной коллекции.
если вы вызываете сниппет не на странице товара обязательно нужно указать идентификатор
&product=`[[+id]]`
Моя проблема:
1. я не хочу запустить этот snippet со страницы продукта
2. когда я запускаю этот snippet, мне нужно получать результаты всех модификаций продукта с одним и тем же ключом Option.key.
и
у меня такое впечатление, что snippet msOptionsPrice.modification возвращает данные только для конкретного продукта, но мне нужно что-то вроде, например:
1. я не хочу запустить этот snippet со страницы продукта
2. когда я запускаю этот snippet, мне нужно получать результаты всех модификаций продукта с одним и тем же ключом Option.key.
и
&product=`[[+id]]`
не поможет, оно возвращает то же предупреждение:"[msOptionPrice] The resource with id= is not instance of msProducts." и я думаю, что это нормально, у меня такое впечатление, что snippet msOptionsPrice.modification возвращает данные только для конкретного продукта, но мне нужно что-то вроде, например:
[[pdoResourses? &parents=`47` &where=`{'class_key' : 'msCategory'}'
Это вернет информацию обо всем, что находится под родительским номером 47. не поможет, оно возвращает то же предупреждение:"[msOptionPrice] The resource with id= is not instance of msProducts." и я думаю, что это нормально,либо у вас неверно указан параметр product, либо в плейсхолдере [[+id]] не идентификатор продукта. ЧУдес не бывает.
Наверное я не так ясно выразился (мой русский не на высоком уровне).
Например, у меня есть следующие 3 продукта(3 разных продукта одной категории (а не 3 модификации одного продукта)):
ТоварА(ID:1)------>(с 3 модификациями)
1. модификация1: цвет1, размер, коллекцияА
2. модификация2: цвет2, размер, коллекцияА
3. модификация3: цвет3, размер, коллекцияB
ТоварB(ID:2)------>(с 2 модификациями)
1. модификация1: цвет3, размер, коллекцияА
2. модификация2: цвет1, размер, коллекцияB
ProductC(ID:3)------>(с 2 модификациями)
1. модификация1: цвет3, размер, коллекцияА
2. модификация2: цвет1, размер, коллекцияА
Поэтому мне нужно использовать snippet
чтобы получить все товары, входящие в коллекциюА.
он должен вернуть следующий список:
ТоварA, цвет1, размер, коллекцияA
ТоварA, цвет2, размер, коллекцияA
ТоварB, цвет3, размер, коллекцияA
ТоварC, цвет3, размер, коллекцияA
ТоварC, цвет1, размер, коллекцияA
Например, у меня есть следующие 3 продукта(3 разных продукта одной категории (а не 3 модификации одного продукта)):
ТоварА(ID:1)------>(с 3 модификациями)
1. модификация1: цвет1, размер, коллекцияА
2. модификация2: цвет2, размер, коллекцияА
3. модификация3: цвет3, размер, коллекцияB
ТоварB(ID:2)------>(с 2 модификациями)
1. модификация1: цвет3, размер, коллекцияА
2. модификация2: цвет1, размер, коллекцияB
ProductC(ID:3)------>(с 2 модификациями)
1. модификация1: цвет3, размер, коллекцияА
2. модификация2: цвет1, размер, коллекцияА
Поэтому мне нужно использовать snippet
[[!msOptionsPrice.modification?
&where=`[ "Option.key = 'collection' AND Option.value = 'коллекциюА'" ]`
]]
например, в строке меню:чтобы получить все товары, входящие в коллекциюА.
он должен вернуть следующий список:
ТоварA, цвет1, размер, коллекцияA
ТоварA, цвет2, размер, коллекцияA
ТоварB, цвет3, размер, коллекцияA
ТоварC, цвет3, размер, коллекцияA
ТоварC, цвет1, размер, коллекцияA
да, так уже понятней.
для такого варианта не получится использовать msOptionsPrice.modification. Нужно писать свой сниппет для выборки. Или как то использовать pdoResourses
для такого варианта не получится использовать msOptionsPrice.modification. Нужно писать свой сниппет для выборки. Или как то использовать pdoResourses
Хорошо, я попробую, спасибо, что уделили время
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.