Последние темы


"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 не силён.

 

Последние комментарии

  • @Yiliy

    то есть без имени

    Видимо потому что у вас отключено, а в XML алиаса я не увидел

    //автоматически генерировать псевдоним (alias) при импорте //false - выключено; true - генерировать с переводом в транслит; 'notranslit' - генерировать без перевода в транслит. $cf_config['imp_autoalias'] = false;

    Читать далее
  • Y

    Проблема была оказывается в том, что оно не видело
    <Title>pagetitle</Title>
    Я поменял на
    <Title><item>pagetitle</item></Title>
    и все импортировалось успешно но теперь в каталогах вместо url ресурсов отображается /сайт/каталог/.html
    то есть без имени и после перехода на страницу товара появляется ошибка 403

    Читать далее
  • M

    Поменялся дизайн.
    Новая корзина, всплывающие окна и прочие фишки сверстаны. Нужно переподключить, разобраться с возможным конфликтом JS.
    Что, где и как лежит -- покажу.

    Скайп mas_hate

    Читать далее
  • В $cf_config['imp_xml_structure'] должен быть XML, который в файле повторяется. Также нужно настроить
    параметр $cf_config['imp_xml_itemsparent_path']. Покажите полный файл, который импортируете.

    Читать далее