"shopkeeper3" вывести данные о заказе после оформления

Добрый вечер!
Подскажите каким образом в "shopkeeper3" вывести данные о заказе после оформления.
Находил где то плагин для этого, но сейчас не могу найти.
Вывести нужно номер заказа и что купили.
Помогите пожалуйста. Заранее благодарю.

<?php
$modx->addPackage('shopkeeper3', $modx->getOption('core_path').'components/shopkeeper3/model/');
$order = $modx->getObject('shk_order', [[!+shk.id]]);
if( !$order ){
    return '';
}
$purchases = $modx->getCollection('shk_purchases', array('order_id' => $order->id));
foreach ($purchases as $p) {
   echo "
        <li>Номер Вашего заказа — <b>№ [[!+shk.id]]</b></li>
        <li>Данные заказа — {$p->get('name')} 
        ";
}

Написал вот что.
Подскажите, как сделать так, что бы не дублировались строки, если в заказе более одной позиции. при таком решении выводится вот что

Номер Вашего заказа — № 1
Данные заказа — All about me. №6. My flooring
Номер Вашего заказа — № 1
Данные заказа — Freeze-frame

как вывести разобрался, правда костыльно
при таком сниппете выводятся данные о заказе №1 , что поправить что бы работало как нужно.

Подскажите, как сделать так, что бы не дублировались строки, если в заказе более одной позиции

Убрать строку с номером заказа из цикла.

$order = $modx->getObject('shk_order', [[!+shk.id]]);

И это работает? Удивительно...

Надо создать сниппет в админке и передавать в него ID заказа через параметры.

[[!my_snippet?order_id=`[[!+shk.id]]`]]

Или брать из плейсхолдера, который уже доступен.

//Это в коде сниппета
$order_id = $modx->getPlaceholder('shk.id');
<?php
$modx->addPackage('shopkeeper3', $modx->getOption('core_path').'components/shopkeeper3/model/');
$order_id = $modx->getPlaceholder('shk.id');
if( !$order ){
    return '';
}
$purchases = $modx->getCollection('shk_purchases', array('order_id' => $order->id));

foreach ($purchases as $p) {
   echo "
        <li>Номер Вашего заказа — <b>№ [[!+shk.id]]</b></li>
        <li>Данные заказа — {$p->get('name')} 
        ";
}

так вообще не работает.

Так это всё у меня получилось реализовать, с мучениями правда. Вроде работает правильно.
Теперь другой вопрос, как вывести дополнительные параметры.
Вот в этом коде, куда что вставить? options ставил, но там массив выходит, вот его как то преобразовать нужно я так понимаю, но как???

<?php
$modx->addPackage('shopkeeper3', $modx->getOption('core_path').'components/shopkeeper3/model/');
$order_id = $modx->getPlaceholder('shk.id');
$order = $modx->getObject('shk_order', $order_id);
if( !$order ){
    return '';
}
$purchases = $modx->getCollection('shk_purchases', array('order_id' => $order->id));
echo "<li>Номер Вашего заказа — <b>№ $order_id</b></li>";
echo "<li>Данные заказа — ";
foreach ($purchases as $p) {
   echo ", <a href='[[~{$p->get('p_id')}]]'>{$p->get('name')}</a> ({$p->get('count')} шт.)";
}

Вы пользовались поиском по форуму? По-моему где-то был готовый сниппет или какие-то куски.

@CSite Блин, можнож это в более цивильный вид перевести.
Например в поле "Данные заказа" тег li открывается но не закрывается.
По хорошему еще использовать return вместо echo и завернуть ответ в $modx->setPlaceholder('placeholder', $item);

Я вроде весь форум перерыл, кусками и собрал это)
в php не силён.

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.