К содержанию

Вывести содержимое товара через сниппет Minishop

Пытаюсь вывести в теле страницы содежимое товара. Описанный ниже код в контенте обычной страницы ничего не выводит. Что я делаю не так? Подскажите, как это сделать.
[[msProducts?resourses=`5`&tpl=`msProduct.content`&includeContent=`1`&includeTVs=`1`]]
Алексей
Алексей
16 апреля 2015, 14:00
modx.pro
7 626
Реклама

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

Виталий Киреев
Виталий Киреев Проверенный
16 апреля 2015, 17:35
resources
    Алексей
    Алексей Старожил
    16 апреля 2015, 17:43
    Исправил опечатку, но сниппет всё равно ничего не возвращает. Эта конструкция вообще рабочая? Если шаблон обычный (пустой)…
      Володя
      Володя Эксперт
      16 апреля 2015, 17:50
      parents укажите 0
        Алексей
        Алексей Старожил
        16 апреля 2015, 18:03
        [[msProducts?&parents=`0`&resources=`5`&tpl=`msProduct.content`&includeContent=`1`&includeTVs=`1`]]
        Тоже не работает. Проблема в шаблоне. Сниппет не хочет парсить плейсхолдеры шаблона просмотра товара. Без указания шаблона, товар выводится как в категории. Как указать сниппету, что нужно показать товар, а не список товаров. Может быть, в параметре class нужно что-то передать?
    Алексей
    Алексей Старожил
    16 апреля 2015, 20:01
    Вообще ничего не понимаю. Где документация, описание параметров, пара примеров хотя бы…
    В ходе экспериментов выяснилось, что ни msOptions, ни галерея не выводятся, а на их месте пишется «This resource is not instance of msProduct class.»
    Даже если передаю имя класса msProduct… Если использовать в шаблоне стандартные поля и контент, то сниппет вообще валится и ничего не возвращает.

    Выборка элементарная, а примера нигде нет. Судя по изученным выборкам нужно джоинить какие-то дополнительные таблицы. Какие именно не ясно. Какие плейсхолдеры они дадут неясно. Может кто-нибудь пояснить мне как сделать такую элементарную вещь? Как сам minishop то выводит товар?

    Вообще реально ли вывести товар на обычной странице? Мне кажется, что msProducts использует текущий id, а не тот, который я ему передаю.
      Василий Наумкин
      Василий Наумкин Администратор
      16 апреля 2015, 20:16
      Вообще нет документации, даже Яндекс первой ссылкой не выводит, да? yandex.ru/yandsearch?text=msproducts. Ну тогда можно поискать в Google — там тоже первой ссылкой www.google.ru/search?q=msproducts.

      [[$msProduct.content]] предназначен для вывода на странице товара. Не для вызова в msProducts, нет.

      Для него предназначен чанк tpl.msProducts.row. Если хочется вывести товар как на его собственной странице, но через msProducts, то чанк, о ужас! нужно изменить. Ну или указать свой собственный.

      Как указать сниппету, что нужно показать товар, а не список товаров.
      msProducts выводит список товаров, что бы ты ему не указал.

      Зачем вообще выводить один товар на странице другого ресурса, если у него есть своя собственная страница? Я такой про user-case за четыре года существования miniShop2 и не слышал даже.
        Алексей
        Алексей Старожил
        16 апреля 2015, 20:50
        Мне нужно настроить вывод сниппета для подгрузки товара в окно быстрого просмотра товара. Сниппета для вывода одного товара в пакете я не нашел, поэтому решил использовать этот.

        Что касается страницы bezumkin.ru/modx/minishop2/snippets/917/, то там только список таблиц для связи. О полях этих таблиц и доступных плейсхолдерах ничего не сказано. Вот вы говорите, что нужно изменить чанк. Но где найти список доступных плейсхолдеров?

          Василий Наумкин
          Василий Наумкин Администратор
          16 апреля 2015, 21:31
          Нигде не нужно искать список, да и нет его, учитывая, что можно присоединять таблицы и указывать любые поля для выборки.

          Просто укажи пустой tpl:
          [[!msProducts?
          	&parents=`0`
          	&tpl=``
          ]]
      Алексей
      Алексей Старожил
      16 апреля 2015, 21:26
      Разобрался. Потребовалось передать id товара внутренним сниппетам msGallery и msOptions
        Евгений
        Евгений Старожил
        29 июня 2016, 07:28
        на всякий: передать id это так:
        [[!msGallery?product=`[[+id]]`]]
        у меня другой вопрос: вывел я на странице категории таким образом товары с дополнительными фотками, но главная фотка грузиться только для 1 товара, у остальных- лого с штрихкодом MS2. Понятно, что из дефолтового шаблона msGallery для каждого товара выводиться mainImage, а их на странице может быть только одна. Возник вопрос: как задать для вызова msGallery на странице категории другие шаблоны? Попробовал добавлять &tpl в вызов- не сработало.
        Править дефолтные шаблоны не могу- они используются на странице товара. Есть ли возможность задать кастомный шаблон для вызова msGallery в шаблоне для pdoPage (вызов ниже)
        [[!pdoPage? &element=`msProducts` &tpl=`tpl.msProductsTP.row`]]
          Евгений
          Евгений Старожил
          29 июня 2016, 07:40
          Пардон, заглянул на страницу параметров сниппета и все вопросы отпали- можно задать свой tplOuter и tplRow
          Виталий
          Виталий Старожил
          09 августа 2016, 04:29
          Из шаблона вызываю:
          [[!msProducts?
          &parents=`[[*id]]`
          &tpl=`tpl.msProduct.content`
          &showLog=`1`
          ]]
          В чанке есть вызов:
          [[!msGallery?product=`[[+id]]`]]
          Выводит только первую галерею, второй продукт не выводит, выполнение прекращается, на страницу выводит только кусок кода из чанка галереи. Версия Minishop 2.4
          Что исправить?
            Антон
            Антон Старожил
            13 декабря 2016, 14:16
            Исправили?
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            13