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

Дополнение: Minishop2

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

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


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

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

Комментарии (12)

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

      после грохнуть кеш…
      1. gerasechkin 16 августа 2017, 14:08 # 0
        Так и делаю, хотелось оптимизировать работу с кэшем.
        Неужели все сбрасывают кэш при изменении цены на 1 товар?
        1. Володя 16 августа 2017, 14:27 # 0
          Неужели все сбрасывают кэш при изменении цены на 1 товар?
          возможные варианты:
          — грохать весь кеш
          — грохать кеш конкретного обновляемого ресурса
          1. gerasechkin 16 августа 2017, 14:33 # 0
            Вариант с некешированным плейсхолдером на Fenom как нибудь можно реализовать?
            1. Володя 16 августа 2017, 14:49 # 0
              Вариант с некешированным плейсхолдером на Fenom как нибудь можно реализовать?
              да вы смотрите как у вас вызван сам сниппет…
              1. gerasechkin 16 августа 2017, 15:00 # 0
                Все просто, только не снипет, а чанк.
                {include 'msProduct_content'}
                как я понимаю, самым подходящим решением будет: обернуть часть HTML в инлайн чанк?
                Можно ли инлайн чанк сделать некешируемым?
                1. Володя 16 августа 2017, 15:31 # 0
                  ну раз у вас нет сниппета, то тут данные берутся из кеша.
                  см коммент modx.pro/help/13074/#comment-85512
        2. 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.

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