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

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

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

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

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

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

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

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

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

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
    0
    спасибо ) а как лучше хранить это все? Так то можно все товары создавать в одном каталоге товаров, но тогда будет мешанина, одни товары скрыты, другие видно, товаров гора.

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

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

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

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

      В магазин заходишь — там разноцветные телефоны стоят вместе на полочках — чтобы ассортимент был виден. Тут так же, мне кажется.
    Виктор Руденко
    31 января 2017, 18:35
    0
    Подскажите пожалуйста как вывести связанные товары товара в категории (нужно отобразить доступные цвета товара в категории) связь типа многие ко многим — основной товар показывается в меню, остальные нет
      Виктор Руденко
      31 января 2017, 18:47
      0
      Брал такой вывод из самого товара — не работает!
      [[!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
    0
    Как вариант использовать связь 1 ко многим.
    Делать карточку товара (товар с описанием основных свойств товара ) и снипетом выводить связанные товары в которых можно держать доп галереи и уникальные свойства (табами или как захочешь можно гет пейдж под это настроить) В структуре каталога можно отображать только карточки товаров, единственное если товаров много будут проблемы в последующем управлением товарами связанные товары будут все в вперемешку.

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

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

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

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

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

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