Minishop2. Как вывести ссылки на другие товары?
Здравствуйте!
Подскажите, пожалуйста, как бы реализовать вот такое переключение товаров на базе Minishop2:
P.S. Разный размер (объем) = разный товар
Думал сделать через связи, но тогда надо мудрить с доп. полем с размером (30/50/80/100) + в таком случае порядок отображения не пойму как зафиксировать. ++ как тогда сделать товару ссылку на самого себя…
Через опции вроде тоже не подходит — там же внутри товара опции реализуются, а надо, чтобы по нажатию происходило переключение на другой товар…
Каких-то дополнений, которые помогли бы решить задачу не нашел, хотя задача-то вроде тривиальная(
Подскажите, пожалуйста, делал ли так кто-нибудь и если да, то как.
Заранее благодарю
Подскажите, пожалуйста, как бы реализовать вот такое переключение товаров на базе Minishop2:
P.S. Разный размер (объем) = разный товар
Думал сделать через связи, но тогда надо мудрить с доп. полем с размером (30/50/80/100) + в таком случае порядок отображения не пойму как зафиксировать. ++ как тогда сделать товару ссылку на самого себя…
Через опции вроде тоже не подходит — там же внутри товара опции реализуются, а надо, чтобы по нажатию происходило переключение на другой товар…
Каких-то дополнений, которые помогли бы решить задачу не нашел, хотя задача-то вроде тривиальная(
Подскажите, пожалуйста, делал ли так кто-нибудь и если да, то как.
Заранее благодарю
Комментарии: 7
Как вариант, сделать ТВ с выборкой на пример по модели(судя по всему там разница как раз в литраже) и выводить как id и уже через снипет выводить ссылки на товар.
Так а если в настройках товара не задать товары, в группу которых он должен входить, как их потом выводить в шаблоне? Внутри 1ой категории будут десятки товаров и только по 3-4 нужно привязать друг к другу.
Можно, конечно, внутри *content чанком через pdoresources. Через migx еще в принципе можно, но это всё «костыли» какие-то…
Можно, конечно, внутри *content чанком через pdoresources. Через migx еще в принципе можно, но это всё «костыли» какие-то…
не совсем понятно. 30,50,80 и так далее это разные товары? в админке это 3 разных товара?
Создайте у товара ТВ поле. В него через запятую айдишники товаров, которые нужно показать дополнительно на странице товара. На странице получайте этот список айдишников и уже делайте с ними что хотите.
Создайте у товара ТВ поле. В него через запятую айдишники товаров, которые нужно показать дополнительно на странице товара. На странице получайте этот список айдишников и уже делайте с ними что хотите.
Да, конечно, разные — иначе бы просто через опции можно было реализовать.
Суть простая — как во многих интернет-магазинах, у товара перечислены его варианты цвета, например. Но не опцией, которую выбрал и всё, а переключением на URL этого товара. Выбрал красный — перекинуло на страницу красного, красный цвет активный, предыдущий и остальные цвета не активны.
Если я задам TV товару — как потом выделять текущий ресурс? Как на скрине. Через js и проверку URL? Да и не совсем понимаю какой тип TV-поля под это подойдет…
Суть простая — как во многих интернет-магазинах, у товара перечислены его варианты цвета, например. Но не опцией, которую выбрал и всё, а переключением на URL этого товара. Выбрал красный — перекинуло на страницу красного, красный цвет активный, предыдущий и остальные цвета не активны.
Если я задам TV товару — как потом выделять текущий ресурс? Как на скрине. Через js и проверку URL? Да и не совсем понимаю какой тип TV-поля под это подойдет…
в большинстве cms ок это делается как раз не разными товарами, а одним. В одном товаре делается зависимость стоимости от каких-то опций. В битриксе это например — торговые предложения. В diafan — торговые зависимости. Для modx тоже есть такой компонент, вроде вот этот — modstore.pro/packages/ecommerce/msoptionsprice2
Но можно и просто — стандартном текстовом ТВ перечислить через запятую айдишники.
Так у вас основная проблема — это всего лишь как выделить активный элемент? Ну это меньшая из проблем. Хотя бы как вы написали — через url. Можно вывести ссылки через сниппет pdoMenu и он сам добавит активному элементу класс active. Или написать свой сниппет, который будет сравнивать айдишник ресурса с айдишником из ТВ и если совпало добавлять ему класс active
Но можно и просто — стандартном текстовом ТВ перечислить через запятую айдишники.
Так у вас основная проблема — это всего лишь как выделить активный элемент? Ну это меньшая из проблем. Хотя бы как вы написали — через url. Можно вывести ссылки через сниппет pdoMenu и он сам добавит активному элементу класс active. Или написать свой сниппет, который будет сравнивать айдишник ресурса с айдишником из ТВ и если совпало добавлять ему класс active
«В битриксе это например — торговые предложения.»
Ну просто интересно, через костыли, вида:
Ну просто интересно, через костыли, вида:
<?
$curDir = trim($APPLICATION->GetCurDir(),'/');
$arCur = explode('/',$curDir);
$last = end($arCur);
$tpl = (strpos($last,'offer-')===false || strpos($curDir,'/f/')) ? "product/#ELEMENT_CODE#/" : "product/#ELEMENT_CODE#/#PID#/";
?>
Вызов компонента<?
$APPLICATION->IncludeComponent(
"bitrix:catalog",
"main",
array(
...
"SEF_URL_TEMPLATES" => array(
"sections" => "catalog/",
"section" => "catalog/#SECTION_CODE#/",
"element" => $tpl,
"compare" => "compare.php?action=#ACTION_CODE#",
"smart_filter" => "catalog/#SECTION_CODE#/filter/#SMART_FILTER_PATH#/apply/",
),
...
),
false
);?>
А в result_modifier еще офферы отдельно обрабатывать для SEO?
Вот про pdoMenu я и не подумал — попробую, спасибо — интересный вариант.
Минус данного подхода в том, что мне нужно вручную заполнить TV-поля ID-шниками этих связанных товаров для (как в примере) всех 4ех товаров, что не удобно, дольше и могут возникать ошибки.
Если более удобного решения нет, мне кажется более правильно, в данном случае, использовать связи 1 к 1 двусторонние, а эти «30», «50», «80» и т.д., подтягивать уже при выводе из TV просто как свойство конкретного товара…
Минус данного подхода в том, что мне нужно вручную заполнить TV-поля ID-шниками этих связанных товаров для (как в примере) всех 4ех товаров, что не удобно, дольше и могут возникать ошибки.
Если более удобного решения нет, мне кажется более правильно, в данном случае, использовать связи 1 к 1 двусторонние, а эти «30», «50», «80» и т.д., подтягивать уже при выводе из TV просто как свойство конкретного товара…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.