Не работает сниппет в чанке товара

Необходимо вывести завышенную стоимость товара(только визуальная функция). В карточке товара выводится нормально, а в если вызвать в чанке продукта, для отображения для всех товаров в каталоге, то ошибка error 500

В карточке товара вывожу завышенную цену так:

Вывод:
[[FakePrice? &id=`[[*id]]`]]
Чанк:
[[+fake]]
Сниппет:
<?php
//получаем параметры
$id = $modx->resource->get('id');
$product = $modx->getObject('msProduct', $id);
$price = $product->get('price');

$option = $modx->getObject('msProduct', 655);
$fake_price = $option->get('fake_price.value');

$chank = $modx->getOption('tpl', $scriptProperties, 'tpl.FakePrice');

//подсчитываем
if($fake_price != 0){
    $fake = $price + $fake_price;
}

//устанавливаем плейсхолдеры
$modx->setPlaceholder('fake', $fake);

//возвращаем чанк с установленными плейсхолдерами
$output = $modx->getChunk($chank);

//показываем результат
echo $output;
Денис
05 марта 2021, 17:11
modx.pro
558
0

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

Артур Шевченко
05 марта 2021, 21:32
0
Если и в чанке вот такой вызов
[[FakePrice? &id=`[[*id]]`]]
то в чанке нет [[*id]], там надо так вызывать
[[FakePrice? &id=`[[+id]]`]]
    Денис
    06 марта 2021, 11:05
    0
    Вызывал так,
    error 500
    отдает
      Артур Шевченко
      06 марта 2021, 11:20
      +1
      $id = $modx->resource->get('id'); удали.
        Денис
        06 марта 2021, 11:33
        0
        Помогло, спасибо бро)
          Артур Шевченко
          06 марта 2021, 11:35
          0
          надеюсь ты понял почему?
            Денис
            06 марта 2021, 11:40
            0
            пытался вызвать id текущей страницы в сниппете а через параметр передавал id товара, поэтому на карточке товара работало так как id совпадал
Роман
09 марта 2021, 12:03
0
if($fake_price != 0)
Вот это лишнее, или нужно
$modx->setPlaceholder('fake', $fake);
убрать под IF
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    8