Последние темы


Авто генератор большой карты сайта напрямую из базы СРОЧНО

  • ЧТО ЕСТЬ: Стоит Modx Revo + Shopkeeper
    Каждый ресурс это товар. На данный момент всего 51198 ресурсов. 70% архивные товары, но они должны все равно висеть, так как в любой момент что то может появится в наличии и поэтому они не удаляются и не отключается их публикация. Просто меняется статус на странице товара и он не показывается в общем каталоге, но его можно найти в архиве товаров.

    ПРОБЛЕМА: В общем нужно защититься от ботов яндекса и гугла, так как они валят всю нагрузку на сайт в 4-5 раза в течение длительного времени, пока они бегают по всему сайту. Стандартные приложения modx или сторонние сервисы не позволяют сгенерировать карту сайта, так как не все страницы генерируется и создается большая нагрузка.

    ЧТО НУЖНО: Нужна обычная карта сайта в xml, скорее всего разделенная на части, например по 40 тыс единиц в каждом, и запускать автоматически ее генерирование например раз в неделю. Соответственно нужно создать sitemap.xml со ссылкой на две основных карты сайта где все и содержится.
    Не включать только в список не опубликованные ресурсы.

    Делов то на пару часов.

  • Участник @medvedgoff написал в Авто генератор большой карты сайта напрямую из базы СРОЧНО:

    ЧТО НУЖНО: Нужна обычная карта сайта в xml, скорее всего разделенная на части, например по 40 тыс единиц в каждом, и запускать автоматически ее

    В чем проблема сделать несколько карт и указать границы выгрузки?
    Не знаю есть ли в getProducts limit и offset, но у pdoSitemap точно есть.

    Дальше в robots укажите:
    Sitemap: https://site/map.xml
    Sitemap: https://site/map2.xml

    или одну карту, но через протокол

    https://www.sitemaps.org/ru/protocol.html#index

  • @slaad pdositemap и прочие пробовал, просто виснет при генерации sitemap или вообще не грузит. Нужно генерировать отдельно от modx напрямую из базы. Так как сами понимаете разом открыть 50 тыс ресурсов в modx жесть.
    А тут нужно что бы был скрипт который сгенерировал и сохранил в независимый файл xml карту сайта, что бы при открытии уже открывалась сохраненная версия. По крону хорошо бы раз в неделю обновлять его.

  • @medvedgoff
    Сразу видно не читатель))

    Я ведь не предлагаю все 50 к тащить в один заход. Вам нужно разбить это на 10 карт по 5 тыс задав limit и offset.

  • Есть решение, который генерирует xml карты сайта + родительскую. В виде файлов. Делалось для сайта у которого 20 000 товаров. Могу допилить сделать что бы работало по cron.

    Стукните в ПМ.

  • @slaad Я прочитал. Но не допер до вашей идеи. По сути все просто 😃

    Сейчас запили 7 доков по 8 тыс в каждом. Будем ждать, как отреагирует яндекс и гугл на это.

  • Вчера нормально открывал доки и по 8 тыс. Сегодня уже 502 при открытии и 4 тыс. Только по 3 тыс. Хост видимо снижает возможные ресурсы. Из за перегрузов. Или хз почему так. Хост timeweb

  • Нужно смотреть что за ошибка. И смотреть как ресурсы расходуются.
    Сделайте запрос хостеру.
    Возможно вас плавно к другому тарифу подталкивают))

  • Я укзал страницы https://mstrok.ru/api/sitemap.xml

 

Последние комментарии

  • Z

    Спасибо, действительно проще создать отдельно.

    Читать далее
  • Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]].

    Можно не использовать [[+addit_data]], а выводить параметры по-отдельности.

    Цитата из документации:

    [[+shk_любой доп.параметр]] - любой доп. параметр, выбранный при добавлении товара в корзину (из [[+addit_data]]), например [[+shk_param1]].
    Если параметры сделаны в виде чекбоксов, то чтобы вывести отдельно каждый из них, нужно добавлять индекс (номер от нуля) для параметров следующих за первым.
    Пример: [[+shk_param1]], [[+shk_param1_1]], [[+shk_param1_2]] ...
    [[+shk_любой доп.параметр_price]] - цена доп.параметра. Пример: [[+shk_param1_price]].

    Читать далее
  • Z

    Доброго времени суток. Не могу разобраться, как передать данные migx-поля в корзину в плейсхолдер без "дублирования" в [[+addit_data]]
    Суть в чем: У меня есть 2 цены у товара (со скидкой и без скидки) Форма для отправки в корзину:

    <form action="[[~[[*resource_id]]? &scheme=`abs`]][[*alias]].html" method="post"> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="price_old__[[*id]]__add" value="[[*price_old]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> Цена: <span class="shk-price">[[!*price:shk_curr_rate:num_format]]</span> Старая цена - <span class="shk-price-old">[[+price_old]]</span> [[!+shk_currency]] </div> <div class="padding-lr-30"> <h5>Дополнительные услуги</h5> [[*param1]] </div> <div class="product-price"> <button class="btn btn-lg btn-primary" type="submit" class="shk-but">В корзину</button> </div> </form>

    Данные со "старой ценой" в корзину попадают нормально и выводится в нужном месте в плейсхолдере:
    [[+shk_price_old]]
    Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]]. Как сделать чтобы старая цена не выводилась в [[+addit_data]]? Или может я как то не правильно передаю MIGX-параметр в корзину ? Заранее спасибо.

    Читать далее
  • Фотографии, как я понял, это второй вопрос. Я по нему пока ничего не отвечал и не просил информации. Это не отменяет того, что в вашем конфиге есть ошибка, о которой я писал выше. Не нужно задавать разные вопросы в одной теме, чтобы не было путаницы.
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее