Opencart 3 генерация sitemap.xml для большого количества товара

Так получилось, что sitemap.xml у OpenCart это слабое место. Его расширение по умолчанию, при каждом запросе генерирует эту карту сайта дергая базу данных, при том что xml это просто статика, для которой дергать php и не нужно, ну а если у вас тысячи товаров, как на моем демо магазине (>2500), то карта сайта даже никогда не отработает.

Я сильно не стал выдумывать решение, все достаточно просто, нужно просто карту сайта сгенерировать в корень и чтобы nginx её отдавал как обычный статический файл. Для этого я скопировал старое расширение с новым именем и добавил просто вывод в файл в корень сайта.

Так же обратите внимание на строки

Изначально они не экранируются, карта сайта собирается строкой а не объектом, и если в названии есть амперсанды, то ваша карта сайта станет сразу невалидной.

Дальше я добавил консольный скриптик и поставил его на крон, для запуска контроллера и генерации карты сайта раз в сутки, чего вполне на мой взгляд достаточно.

PS. Не забываем с .htaccess убрать строку, которая по адресу /sitemap.xml запускает выполнение контроллера.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *