Товары minishop2 для турбо страниц XML яндекс

Опишу как создать XML файл для загрузки турбо страниц в яндекс вебмастер за 2 минуты 10 секунд.
Александр Иванов
30 апреля 2020, 08:59
modx.pro
1
774
+3

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

Александр Иванов
30 апреля 2020, 08:59
+1
1. Создаём новый документ с типом содержимого XML

2. В поле «Содержимое» вставляем
[[!msProducts?
&parents=`<strong>ЗДЕСЬ ID КАТЕГОРИЙ ЧЕРЕЗ ЗАПЯТУЮ</strong>`
&limit=`0`
&tplWrapper=`tpl.xml.msProduct.wrapper`
&tpl=`tpl.xml.msProduct.row`
&includeContent=`1`
]]

3. Создаем 5 чанков

3.1 tpl.xml.msProduct.wrapper
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-11-01 17:22">
    <shop>
        <name>[[++site_name]]</name>
        <company>[[++site_name]]</company>
        <url>[[++site_url]]</url>
        <email>[[++emailsender]]</email>
        <currencies>
            <currency id="RUR" rate="1"/>
            <currency id="USD" rate="80"/>
        </currencies>
        <categories>
            [[!pdoMenu?
            &parents=`<strong>ЗДЕСЬ ID ГЛАВНОЙ КАТЕГОРИИ</strong>`
            &displayStart=`1`
            &tplStart=`tpl.xml.category`
            &level=`0`
            &templates=`<strong>ЗДЕСЬ ID ШАБЛОНА КАТЕГОРИЙ</strong>`
            &showUnpublished=`1`
            &tplWrapper=`tpl.xml.categoryWrapper`
            &tplOuter=`@INLINE [[+wrapper]]`
            &tpl=`tpl.xml.category`
            ]]
        </categories>
        <offers>
            [[+output]]
        </offers>           
    </shop>
</yml_catalog>

3.2 tpl.xml.categoryWrapper
[[+output]]

3.3 tpl.msGalleryListMini
medium — это размер фотки, от минишопа
{if $files}
{foreach $files as $key => $file}
<picture>{$file['medium']}</picture>
{/foreach}
{/if}

3.4 tpl.xml.category потребуется fenom, ну можете условия написать на modx
<category id="[[+id]]"{if $parent && $parent!=<strong>ЗДЕСЬ ID ШАБЛОНА КАТЕГОРИЙ</strong>} parentId="[[+parent]]"{/if}>[[+menutitle:default=`[[+pagetitle]]`]]</category>[[+wrapper]]

3.5 tpl.xml.msProduct.row
самое главное, это оффер товара, сюда можете вписывать условия из документации турбо страниц
напишу в комментах, если нужно будет, либо сами попробуйте, ну как в карточке выводите, так и сюда, через foreach наверно
<offer id="[[+id]]">
<price>[[+price:replace=` ==`]]</price>
<currencyId>RUR</currencyId>
<categoryId>[[+parent]]</categoryId>
{$_modx->runSnippet('msGallery', ['tpl' => 'tpl.msGalleryListMini','product' => $id])}
<store>false</store>
<pickup>true</pickup>
<delivery>true</delivery>
<name>[[+pagetitle]]</name>
<!-- можно написать условие для очистки контента, или вставить description-->
<description><![CDATA[ [[+content]] ]]>
</description>
<url>[[++site_url]][[+uri]]</url>
<delivery-options>
<!-- общие условия курьерской доставки -->
</delivery-options>
</offer>

ну и всё, ссылка на xml это тот документ, который мы создавали вначале
Aleksandr Huz
30 апреля 2020, 14:02
+1
Плюсанул. Когда появиться рейтинг перенесешь в «Готовые решения».
    Александр Иванов
    30 апреля 2020, 16:05
    0
    3.4
    ID Главной категории

    3.5
    Свойства записывайте в параметр
    <param name="Вес">[[+weight]]</param>
    например
    как это делаете в карточке товара
    и тег strong поубирайте, где вставлять айдишники нужно
      Баха Волков
      01 мая 2020, 09:17
      +1
      Я один вижу это сюр? Какие готовые решения?!

      Чтобы вы понимали, человек вызывает pdoMenu который делает выборку и строит дерево и указывает такие параметры и шаблоны чтобы не было дерева, вопрос: Зачем нужен тогда pdoMenu?
        Александр Иванов
        01 мая 2020, 09:23
        -1
        Ну первое что пришло в голову, там дерево и не нужно, ты прав, что дерева не будет, будет обычный список
        Но мне это решение быстрее всего пришло в голову, так как XML, дерево строится по parentid
        Если есть решение получше, напишите его
          Александр Иванов
          01 мая 2020, 10:11
          -1
          Это называется
          — Видишь дерево?
          — Нет.
          — И я не вижу, а оно — есть
          Баха Волков
          01 мая 2020, 09:21
          +1
          3.1

          <yml_catalog date="2019-11-01 17:22">

          Правильно ли я понимаю, что дата генерации файла нужно будет проставлять вручную?

          3.2

          Пункт просто идеален
            Александр Иванов
            01 мая 2020, 09:28
            -1
            Нет, её не обязательно обновлять, оно и так работает, но вы можете прописать

            <yml_catalog date="[[!+nowdate:default=`now`:strtotime:date=`%Y-%m-%d %R`]]">

            про пункт, согласен, идеально.
            friden
            17 июня 2020, 23:15
            0
            Здравствйте, Александр! Я нашёл ваш modx.pro/help/20167 способ добавления турбо страниц для miniShop2.

            Однако, возникает проблема:
            error on line 31 at column 69: Opening and ending tag mismatch: meta line 0 and head

            Я так понимаю, что-то не так с тегами и хотел спросить, можно каким-то образом получить общий вывод готового файла, дабы увидеть, где вообще проблема произошла? А то ведь нет ни одного созданного при добавлении файла с 39 строками и я не особо понимаю в каком файле искать.
              Александр Иванов
              17 июня 2020, 23:40
              0
              1.
              <strong> и </strong>
              нужно везде убрать и заменить id на ваши
              2. файлы и не будут создаваться никакие,
              3.общий файл — это документ из пункта 1
              (его ссылку нужно вставлять в вебмастер)
              4.pdoTools должен быть установлен
                friden
                17 июня 2020, 23:51
                0
                Ааа, спасибо. PDOTools вроде установлен, перепроверю. Но должен же этот общий xml-файл открываться по ссылке? У меня выдаёт ошибку.
              Евгений
              16 мая 2021, 00:53
              0
              This page contains the following errors:
              error on line 47 at column 113: EntityRef: expecting ';'
              Below is a rendering of the page up to the first error.
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                13