Судя по всему, ничего переопределять не понадобится. Я уже результат получил на уровне нгинкса. Сейчас последние штрихи в плагине делаю. Больше с правилами для нгинкса провозился, я же не сисадмин.

Ты сможешь это сделать?

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

и уже nginx выбирать что modx стандартно кеширует! 1. Стандартный кеш документа нафиг не нужен, потому что там много хлама. 2. Нгинкс не обрабатывает php.

обработчик менять на файловый, получать страничку и запихивать уже в memcache Нафига такой изврат? Зачем данные туда-сюда гонять? Переопределять — это создать свой кеш-провайдер, расширяющий базовый, и туда добавить, к примеру, метод setPureCode() то есть сохранять как есть, а не совать в return;

Ольга Ивановна, у вас при изменении способа доставки ничего не пересчитывается. То есть в заказе (именно в сумме) стоимость доставки вообще не учитывается. В сумму входит только сумма стоимости товаров. Но ошибка действительно была — сумма товаров не правильно подсчитывалась (без учета количества одинаковых товаров). Сейчас этот поправил и приходит корректная сумма. А доставка — это отдельно.

переопределять? я смутно представляю что это… но я думаю логика такая — обработчик менять на файловый, получать страничку и запихивать уже в memcache

так не пойдет, ты стандартно его засунул… тогда можно было вообще плагин не писать, а просто обработчик переключить на cache.xPDOMemCached, и уже nginx выбирать что modx стандартно кеширует!

В таком случае наверно лучше использовать OnWebPageComplete. Это самое последнее событие, и как видишь, без учета закеширован или нет. public function _postProcess() { if ($this->resourceGenerated && $this->getOption('cache_resource', null, true)) { if (is_object($this->resource) && $this->resource instanceof modResource && $this->resource->get('id') && $this->resource->get('cacheable')) { $this->invokeEvent('OnBeforeSaveWebPageCache'); $this->cacheManager->generateResource($this->resource); } } $this->invokeEvent('OnWebPageComplete'); } Черновой код плагина: <?php switch($modx->event->name){ case 'OnWebPageComplete': $key = "resource/".$modx->resourceIdentifier; $output = & $modx->resource->_output; $modx->cacheManager->set($key, $output); break;

default:;

} Но сейчас еще буду проверять насколько этот кеш годится. Ведь там php return. Скорее всего надо будет переопределять кеш-провайдер, чтобы сохранять чистый HTML.

Я поняла в чем дело с ошибкой. Это действительно ошибка не в корзине, а в неправильном копировании её данных (а именно, суммы в последней строчке «Стоимость заказа без учета стоимости доставки»), в письмах-ответах заказчику и нам о заказе. Так как базы по заказам на сайте нет, то мы знаем о заказе только из письма, поступившего нам на е-мейл, а в нем-то как раз сумма заказа неправильная. Это все только в случае, если в заказе, т.е. в корзине меняется количество единиц товара. На сайте в корзине при пересчете она подсчитывается правильно, а в письмах нам и заказчику уходит старая сумма заказа, которая была до пересчета. Попробуйте сделать заказ себе на е-мейл, измените там количество единиц товара, пересчитайте сумму, а потом проверьте, что вам пришло на е-мейл. там-то и будет ошибка.