Чтобы обновить цену на товар нужно сбросить кэш?

Всем хорошего дня.
После загрузки прайсов немного меняются цены товаров, естественно, что после переоценки и до сброса кэша цены на сайте старые.

Вот так выводим цены в чанке:
<span class="price-product" itemprop="price"> {$price} </span><span class="price-product">руб.</span>


Как то можно сделать {$price} некэшируемым?
Или нужно оборачивать в еще один чанк?

Кто как делает?
gerasechkin
16 августа 2017, 10:48
232
0

Комментарии: 12

gerasechkin
16 августа 2017, 13:52
0
Хотел добавить:
Вроде как конструкция:
[[!+price]]
должна помочь, но не работает.
Володя
16 августа 2017, 14:03
0
После загрузки прайсов

после грохнуть кеш…
gerasechkin
16 августа 2017, 14:08
0
Так и делаю, хотелось оптимизировать работу с кэшем.
Неужели все сбрасывают кэш при изменении цены на 1 товар?
    Володя
    16 августа 2017, 14:27
    0
    Неужели все сбрасывают кэш при изменении цены на 1 товар?
    возможные варианты:
    — грохать весь кеш
    — грохать кеш конкретного обновляемого ресурса
      gerasechkin
      16 августа 2017, 14:33
      0
      Вариант с некешированным плейсхолдером на Fenom как нибудь можно реализовать?
        Володя
        16 августа 2017, 14:49
        0
        Вариант с некешированным плейсхолдером на Fenom как нибудь можно реализовать?
        да вы смотрите как у вас вызван сам сниппет…
          gerasechkin
          16 августа 2017, 15:00
          0
          Все просто, только не снипет, а чанк.
          {include 'msProduct_content'}
          как я понимаю, самым подходящим решением будет: обернуть часть HTML в инлайн чанк?
          Можно ли инлайн чанк сделать некешируемым?
gerasechkin
16 августа 2017, 17:20
0
Ради эксперимента:
Пишу в отдельный кэш свой маленький снипет, который выводит цену:
{set $option=['xPDO::OPT_CACHE_KEY' => 'price']}
  	{if !$price = $_modx->cacheManager->get($_modx->resource.id,$option)}
		{set $price = $_modx->runSnippet('GetPrice.1', ['tpl' => 'tpl.Price','showLog' => 0])}
	        {set $null = $_modx->cacheManager->set($_modx->resource.id, $price, 86400, $option)}
	{/if}
{$price}
Все хорошо, но хочу чтобы он писался в отдельную директорию, чтобы после загрузки прайсов можно было почистить эту директорию ну или переформировать этот кэш после загрузки.

Не работает вот это:
{set $option=['xPDO::OPT_CACHE_KEY' => 'price']}
на php выглядит вот так:
$options = array(  xPDO::OPT_CACHE_KEY => 'users_data',);
Просто ради интереса хочу реализовать на Fenom.

    Володя
    16 августа 2017, 17:29
    0
    к чему такие сложности?
    сделайте все в сниппете и просто его вызывайте.
    Володя
    16 августа 2017, 17:32
    0
    joxi.ru/8An3qWgtj9Zodr
    а у вас
    'xPDO::OPT_CACHE_KEY'
gerasechkin
16 августа 2017, 17:32
0
Хочется управлять кэшем, не более. =)
Как в синтаксисе fenom обратиться к
xPDO::OPT_CACHE_KEY
?
Все уже перепробовал, не получается.