К содержанию

minishop2. Разные цвета

Прочитал «управление связами товаров», но все равно не до конца понял как мне это реализовать.

Можете объяснить как сделать разные цвета для товара?

Структура такая — Категория (контейнер) — Подкатегория (контейнер) — Товар (категория с товарами).
В категории с товарами товары с разными цветами на фото, но с одной ценой и др характеристиками.

Я сделал так — создал связь — многие к одному. По логике — много цветов, один товар.

Правильно ли все что я сделал выше и как быть дальше?
Нужно:
Переходя в категорию с товарами, вывести только один цвет и его характеристики.И внутри у этого товара ссылки на другие цвета из этой же категории.

как лучше сделать в этом случае?
Андрей
Андрей
23 апреля 2013, 19:13
modx.pro
6 818
Реклама

Комментарии: 14

Василий Наумкин
Василий Наумкин Администратор
24 апреля 2013, 07:59
Как это ты, не будучи особым читателем, прочитал? Видимо про логику свзяей не прочитал?

1. Создать связь «многие ко многим», ибо связываются товары, а не их параметры. Много товаров, у них равнозначная связь, главного нет.

2. Сделать простейший плагин для поля color — чтобы превратить его в обычное текстовое.

3. Спрятать ненужные товары при выводе каталога, отметитив «не показывать в меню».

4. На странице товара вывести ссылки на другие товары группы сниппетом msProducts:
[[!msProducts?
	&link=`номер связи по цвету`
	&master=`[[*id]]`
	&resources=`-[[*id]]`
	&tpl=`tpl.Link.color`
]]

И простейший чанк tpl.Link.color
<a href="[[~[[*id]]]]">[[+pagetitle]] ([[+color]])</a>

Если сделаешь всё внимательно и правильно — будет работать. Возможно, вызов сниппета на странице придётся поправить — я еще не особо это проверял.
    Андрей
    Андрей Старожил
    24 апреля 2013, 16:09
    спасибо ) а как лучше хранить это все? Так то можно все товары создавать в одном каталоге товаров, но тогда будет мешанина, одни товары скрыты, другие видно, товаров гора.

    Лучше делать для каждого товара категорию товаров (и внутри категории уже цвета) и с ней и работать, ну в случае с цветом, или класть все товары все цвета в одну категорию?

    p.s я был особым читателем, срок уже прошел, счет пополнить надо) а документы я давно уже на телефон скинул )
      Василий Наумкин
      Василий Наумкин Администратор
      24 апреля 2013, 17:22
      Все товары хранить как обычно, в нужных категориях.

      В админке видно будет, какие скрыты, а какие нет, да и поиск в наличии.

      Просто логично подумай — это же тоже товар, только с другим цветом. У него должен быть свой артикул, может быть другая цена и т.д. Я бы и скрывать не стал, сделал бы только вывод ссылок в карточке.

      В магазин заходишь — там разноцветные телефоны стоят вместе на полочках — чтобы ассортимент был виден. Тут так же, мне кажется.
        Андрей
        Андрей Старожил
        24 апреля 2013, 19:42
        Так то да )
      Виктор Руденко
      Виктор Руденко Старожил
      31 января 2017, 18:35
      Подскажите пожалуйста как вывести связанные товары товара в категории (нужно отобразить доступные цвета товара в категории) связь типа многие ко многим — основной товар показывается в меню, остальные нет
        Виктор Руденко
        Виктор Руденко Старожил
        31 января 2017, 18:47
        Брал такой вывод из самого товара — не работает!
        [[!msProducts:toPlaceholder=`items-color`?
        &tpl=`tpl.msProductsColor.row`
        &link=`3`
        &master=`[[*id]]`
        &resources=`-[[*id]]`
        &parents=`0`
        ]]
        [[+items-color:!empty=`<h2>Другие цвета</h2>
        <div class="row ms2_product">
        [[+items-color]]
        </div>`]]
      Мордынский Николай
      24 апреля 2013, 10:53
      Как вариант использовать связь 1 ко многим.
      Делать карточку товара (товар с описанием основных свойств товара ) и снипетом выводить связанные товары в которых можно держать доп галереи и уникальные свойства (табами или как захочешь можно гет пейдж под это настроить) В структуре каталога можно отображать только карточки товаров, единственное если товаров много будут проблемы в последующем управлением товарами связанные товары будут все в вперемешку.

      Тут нужна кнопочка в списке товароров — показать связанные товары или вкложеность связей надо делать(но это уже инициатива от Василия должна быть)
        Андрей
        Андрей Старожил
        06 мая 2013, 15:16
        Прочитал статью про то как преобразовать поле color — сделал. Цвета есть.

        А как вывести все цвета в категории товаров? Т.е чтобы это было как фильтр.
        Но чтобы цвета не повторялись (чтобы были только уникальные)
          Мордынский Николай
          06 мая 2013, 23:05
          выбрать все id товаров с нужным родителем
          выбрать из таблицы опций товаров все уникальные цвета у которых id товара входит в результат первой выборки уникальность проверяется DISTINCT

          Может что то с join намутить можно но я в них плохо разбираюсь
            Андрей
            Андрей Старожил
            06 мая 2013, 23:17
            никак иначе эту задачу не решить? т/е предложение xpdo?

            А возможно ли такое — создать свой сниппет — обратиться к сниппету msProducts — получить все цвета в категории товаров. И потом сделать array_unique на полученный массив ?)
              Василий Наумкин
              Василий Наумкин Администратор
              07 мая 2013, 07:24
              bezumkin.ru/modx/minishop2/solutions/1160/ — вторая выборка твоя.
                Андрей
                Андрей Старожил
                07 мая 2013, 13:13
                спасибо =)
                  Андрей
                  Андрей Старожил
                  07 мая 2013, 14:54
                  И последний вопрос по поводу цветов) я вывел все цвета. Как теперь фильтровать товары?

                  Товары в категории имеют следующую структуру — есть одинаковые товары, но с разными цветами. Один из них отображается в общем каталоге. Другие скрыты.

                  Я думаю вывести ссылками названия цветов. И при нажатии на ссылку — должны отобразиться скрытые документы выбранного цвета…
                    Андрей
                    Андрей Старожил
                    07 мая 2013, 15:19
                    все, разобрался. все просто:
                    [[!msProducts?where=`{"Data.color":"зеленая"}` &showHidden=`1`]]
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            14