Как много всяких параметров системных)))) Я с ним ни разу не сталкивался. Что-то предметное сказать можно только при доступе в админку.

Проверка на GET чтобы если отправили форму не кешировалась страница с ответом. Но это как раз и не стоит делать. Ведь GET — это в том числе и постраничность и прочие моменты, включая гет-поиск. Все, что не должно кешироваться — надо выносить в Ajax. Либо предусматривать какой-то GET-параметр типа nocache=1, чтобы явно указывать, что ее кешировать не надо. Если добавится в запрос этот параметр, для нгинкса это уже будет новый адрес, и он отправит запрос на MODX. MODX не сформирует полный кеш страницы в мемкеш, а значит и нгинкс все время будет отдавать не кешированную страницу.

<?php switch($modx->event->name){ case 'OnWebPageComplete': if (!empty($modx->resource) && $modx->resource->get('cacheable') && $modx->resource->get('published') && $modx->resource->_output != '' && $_SERVER['REQUEST_METHOD'] == 'GET' ) { $key = 'index.php?'; $key .= str_replace('&', '&',($_SERVER['QUERY_STRING'])); $modx->log(1, "Key: '{$key}'"); $modx->cacheManager->set($key , $modx->resource->_output); } break; default:; } Проверка на GET чтобы если отправили форму не кешировалась страница с ответом. $key = 'index.php?'; Чтобы ключ был красивее. Modx его все равно модифицирует. в $this->key . '/' . $key; $this->key это системная настройка cache_key Так что если cache_key = site.com Тогда в конфиге nginx пишем set $memcached_key "site.com$uri?$args";

хорошо спасибо

Значит больше ничем просто так не сможем помочь. Может быть что угодно. Могу только предложить платную помощь на вашем сервере (по нашему прайсу — 500 руб/час). Скорее всего за час (максимум два) все это решается. Если интересно, присылайте доступы к админке в личку.

не работает( а логах php ничего нет по ошыбкам( может что нудно от modx api а php файле подключить?

Возможно случайно добавился HTML. Убрал из листинга. В итоге, чистый вызов mail() работает или нет? С проблемой разобрались?

какойо еще html код? это форумский редактор тут сам это вставил

В общем, проблема была как раз там, где я и предполагал. Дело в том, что вэбовский процессор по соображениям безопасности выл дописан таким образом, что получить данные можно только по заказам текущего пользователя. Следовательно, нет пользователя — нечего и получать. А вот получение прочих заказов предполагалось делать через mgr-процессоры, к которым априори внимание по безопасности должно быть выше, то есть использовать их надо очень аккуратно. Но вот в новой версии движка как раз вот этот участок мы и проглядели. Если помнишь, мы ведь все процессоры перевели в папку processors/basket/(web|mgr), а тут еще просто processors/web. Все это явно указывает, что там не по новой системе. Переработается это только в новой версии магазина, а пока просто код-патч шаблона: {* Оплата *} {$modx->regClientCSS("{$template_url}css/robokassa.css")}

{if !$smarty.get.order_id} <h3 class="error">Не был указан ID заказа</h3> {else}

{* Пытаемся получить заказ *}
{assign var=params value=[
    "order_id"  => $smarty.get.order_id
    
]}

{*processor action="web/orders/getlist" ns="basket" params=$params assign=result*}


{processor action="basket/mgr/orders/products/getdata" ns="basket" params=$params assign=result}

{if $result.success && $result.object}

    {*assign var=order value=$result.object[0]*} 
    
    {assign var=order value=$result} 
    
    {snippet name="robokassa.getButton" params="shp_order=`{$smarty.get.order_id}`&out_sum=`{$order.sum}`"}
    
{else}
    <h3 class="error">Не был получен заказ</h3>
{/if} 

{/if} Исправленное закомментрировано. Сравни с текущим шаблоном (с ошибкой).