Цена товара в зависимости от выбранного ТВ [решено]
Доброго дня, нужна помощь.
Ни разу не писал плагины, но полагаю без этого здесь не обойтись.
Есть ТВ с возможными значениями:
Задача сделать так, чтобы в родное поле price (minishop2) в админке подставлялось значение товара с наименьшей ценой.
во фронтенде пока вывожу костылём:
Ни разу не писал плагины, но полагаю без этого здесь не обойтись.
Есть ТВ с возможными значениями:
@EVAL $output = $modx->runSnippet('pdoResources',array(
'parents'=> $modx->resource->parent,
'resources'=> -$modx->resource->id,
'tpl'=>'@CODE:[[+pagetitle]]==[[+id]]',
'showUnpublished'=>'1',
'limit'=>'0',
'depth'=>'0',
'hideContainers'=>'1',
'outputSeparator'=>'||'));
return '' . $output;В админке я чекбоксами выбираю подходящие товары.Задача сделать так, чтобы в родное поле price (minishop2) в админке подставлялось значение товара с наименьшей ценой.
во фронтенде пока вывожу костылём:
{if $template == 5}
{set $my}
{$clothes | replace :'||':','}
{/set}
{$_modx->runSnippet('!msProducts', [
'parents'=> $parent,
'resources'=> $my,
'tpl'=>'@INLINE: {$price} руб.',
'showUnpublished'=> 1,
'limit'=> 1,
'depth'=> 0,
'sortby' => '{"price":"ASC"}',
'hideContainers'=> 1,
'toPlaceholder'=> 'res',
])}
[[+res:empty=`<small>нет в наличии</small>`]]
{else}
{$price} {'ms2_frontend_currency' | lexicon}
{/if} Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Пытаюсь понять как пишутся плагины, для этого делаю что-то простое, например, при сохранении документа с шаблоном 5 нужно прибавить к цене 100 р. делаю вот таким образом:
но при сохранении страницы бесконечная загрузка и в журнале ошибок ничего. на каком шаге ошибка, пока не пойму.
Наверное стоит ещё сказать зачем такой костыль, когда есть дополнения типа msoptionsprice2 и другие.
Дело в том, что я делаю загрузку каталога с помощью msync. Так как в каталоге 1с размеры и цвета товаров — это отдельные товары, а на сайт я такое вываливать не хочу — я создаю товар с шаблоном 5 и через TV, с возможными значениям (описан в начале) назначаю ему нужные товары. В целом всё работает, но цену приходится назначать руками и следить за её изменениями.
Решение вижу в том, чтобы через плагин подставить значение товара из той самой ТВ с наименьшей ценой, при сохранении документа.
Если у кого будет минутка, направьте пожалуйста, а пока ковыряю дальше.
Пробую ваш код:
системное событие поменял на OnDocFormSave. Ресурс сохраняется нормально, но никаких изменений и в журнале ошибок пусто. Существует ли какой-то способ поиска ошибок в таком случае? как в сниппетах showLog например
Ошибки можно записывать в журнал ошибок Управление — Отчеты — Журнал ошибок
массив пустой —
хотя
выдаёт правильные id причём с разделителем запятая: 2689,2690,2691,2692,2693,2951,2952
Рабочий плаин:
Благодарен вам! И научили как и за меня написали.