Не добавляется товар в корзину ошибка 500

Вдруг при добавлении товара в корзину стала возникать ошибка 500 в файле assets/components/shopkeeper3/connector_fe.php. В логах на сервере ничего нет при этом и в админке Modx тоже. В чем может быть проблема?

Разобрался с чем связано. Связано дело было с таким вот плагином канонической переадресации (он делает редирект для ресурса контейнера если в адресной строке ввести адрес например site.ru/containerpage на страницу site.ru/containerpage/ для исключения дублей, так как стандартная настройка не работает сейчас у самой modx):

<?php
if ($modx->event->name != 'OnLoadWebDocument') {return;}

$uri = $modx->resource->get('uri');
$request = ltrim(urldecode($_SERVER['REQUEST_URI']), '/');
if (strpos($request, '?') !== false) {
	list($request, $params) = explode('?', $request);
}
else {
	$params = '';
}

if (!empty($request) && mb_strtolower($request, 'UTF-8') != mb_strtolower($uri, 'UTF-8')) {
	if (!empty($params)) {
		$uri .= '?' . $params;
	}
	$modx->sendRedirect($uri, array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}

Может кто подскажет как его доработать, чтобы корзина shopkeeper 3 стала работать с ним (добавление товаров). Думаю он всем будет полезен, так как и на демо сайте дубли для ресурсов контейнеров есть, а это минус для seo.

плагином канонической переадресации

Впервые слышу такое понятие. Есть понятие - каноническая ссылка. Переадресация там не нужна.

https://support.google.com/webmasters/answer/139066?hl=ru

@Andchir Беру сведения из modx friendly_urls_strict и там указано что будет редирект на канонический URI, вот он и не работает никогда, даже если настройка включена. Об этом даже уже давно есть запись на github у modx. Google кстати тоже ругается на это, как на дубли. Говорю о своем сайте. Есть ресурсы контейнеры и у них ссылка работает как site.ru/контейнер/ так и site.ru/контейнер. В данном случае title и так далее одинаковые и для Google и Яндекс это дубли. Настройка friendly_urls_strict должна делать в данном случае редирект с site.ru/контейнер на ресурс site.ru/контейнер/ но modx не делает этого. Вот этот плагин и решает эту проблему, но он конфликтует с shopkeeper, так как повешен на тоже событие OnLoadWebDocument, вешал на событие OnWebPagePrerender и тогда нормуль. На демо сайте shopkeeper данная проблема дублей тоже есть, кстати.

@Andchir И по вашей ссылке на документацию Google переадресация с кодом 301 (редирект) там в рекомендациях есть.

@anton83 Добрый день, а что это за плагин такой? Если дадите ссылочку, постараюсь с кодом на выходных разобраться.

Тут вроде просто все.

@slaad https://modx.pro/help/5105/ А плагин я уже описал, что нужен для seo, чтобы устранить для поисковиков дубли типа site.ru/index.php site.ru/ресурс_контейнер и одновременная доступность site.ru/ресурс_контейнер/. Системные настройки modx данную проблему не утсраняют. Modx игнорирует получается системную настройку friendly_urls_strict, хотя для таких случаев, как site.ru/ресурс_контейнер для ресурсов контейнеров должен делать с включенной настройкой friendly_urls_strict редирект на site.ru/ресурс_контейнер/. Этот плагин и устраняет этот недостаток, но на событии OnLoadWebPage конфликтует с shopkeeper (товары не добавляются в корзину)

Событие не правильно указал только OnLoadWebDocument.

Участник @anton83 написал в Не добавляется товар в корзину ошибка 500:

@Andchir И по вашей ссылке на документацию Google переадресация с кодом 301 (редирект) там в рекомендациях есть.

Не вижу там слова "рекомендация". Это только один из вариантов. А я пишу про другой вариант, без переадресации https://support.google.com/webmasters/answer/139066?hl=ru#2

Понятия "каноническая переадресация" нет. Есть два варианта: переадресация с заголовком 301 и каноническая ссылка.

@Andchir Хорошо, не правильно выразился. Плагин реализует 301 редирект на канонический адрес.

Плагин реализует каноническую ссылку через 301 редирект.

Опять не правильно.

Вдруг при добавлении товара в корзину стала возникать ошибка 500 в файле assets/components/shopkeeper3/connector_fe.php. В логах на сервере ничего нет при этом и в админке Modx тоже. В чем может быть проблема?

Значит плохо ищите. 500 это обычная ошибка на сервере, она должна быть в логах на сервере. Так же можно попробовать в админке включить режим debug.

@Andchir В логах на сервере ничего не отображает. Выяснил только одно, что если включить на событие OnWebPagePrerender то нормально тогда.

С сервером у меня у хостера не настроено было логирование. Сделал. Выдает такую вот ошибку:
PHP Fatal error: Uncaught Error: Call to a member function get() on null in /home/s/shamarus/nobleedge.ru/public_html/core/cache/includes/elements/modplugin/68.include.cache.php:4
Stack trace:
#0 core/model/modx/modscript.class.php(70): include()
#1/core/model/modx/modx.class.php(1608): modScript->process()
#2 /assets/components/shopkeeper3/connector_fe.php(22): modX->invokeEvent('OnLoadWebDocume...')
#3 {main}
thrown in /core/cache/includes/elements/modplugin/68.include.cache.php on line 4
В файле shopkeeper на строке 22 так вызов события системного идет $modx->invokeEvent("OnLoadWebDocument");
Конфликт получается идет.

Выше вы писали:

Выяснил только одно, что если включить на событие OnWebPagePrerender то нормально тогда.

Если всё нормально, то почему вы продолжаете писать в этой теме?

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.