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


Записки велосипедиста №3. Печать заказов из под админки (простая версия).

  • Добрейшего времени суток. Решил предложить один из самых простых вариантов для печати заказа из под админки. Чуть позже будет "продвинутая" система с плюшками, вроде печати нескольких заказов
    Attention/внимание/увага/piesardzība - решение простое, ничего не сломает. Но предупреждаю - оно колхозное.

    Шаг №1
    Открываем /assets/components/shopkeeper3/mgr/css/shk-style.css и вставляем в конец файла:

    @media print {           
        #modx-header, #modx-leftbar, #x-plain-bwrap, #ext-gen21, .amod-container-b, .modal-footer, .nav-tabs, .modal-header {
        display: none !important;
            
        }
        
        #modx-content {
        width: 100% !important;
        left: 0px !important;
        }
               
        .modal-content {
            border: none !important;
            box-shadow: none !important;
        }
    }
    

    Шаг №2
    Открываем /core/components/shopkeeper3/templates/home.tpl , находим строку 297 (перед </uib-tabset>) и вставляем код:

    <!-- печать заказа -->
                <uib-tab heading="Печать" onclick="window.print();">
                    
                    <div id="print_field">
                         <div style="page-break-after: always;">
                            <h1>Заказ {{data.order.id}}</h1>
                            <table class="table table-bordered">
                               <thead>
                                  <tr>
                                     <td style="width: 50%;">Данные заказчика</td>
                                     <td style="width: 50%;">Информация о заказе</td>
                                  </tr>
                               </thead>
                               <tbody>
                                  <tr>
                                     <td style="width: 50%;">
                                       <span ng-repeat="item in data.order.contacts">
                                            <b>{{item.label}}:</b>
                                            {{item.value}} <br>
                                        </span> 
                                     </td>
                                     <td style="width: 50%;">
                                        <b>Время добавления</b> {{data.order.date}}<br>
                                        <b>№ Заказа</b> {{data.order.id}}<br>
                                        <b>Способ оплаты</b> {{data.order.payment}}<br>
                                        <b>Способ доставки</b> {{data.order.delivery}}<br>
                                     </td>
                                  </tr>
                               </tbody>
                            </table>
            
                            <table class="table table-bordered">
                               <thead>
                                  <tr>
                                     <td><b>#</b></td>
                                     <td><b>ID товара</b></td>
                                     <td><b>Товар</b></td>
                                     <td><b>Параметры</b></td>
                                     <td class="text-right"><b>Количество</b></td>
                                     <td class="text-right"><b>Цена за единицу</b></td>
                                  </tr>
                               </thead>
                               <tbody>
                                   <tr ng-repeat="item in data.order.purchases">
                                            <td>{{$index+1}}</td>
                                            <td>{{item.p_id}}</td>
                                            <td>{{item.name}}</td>
                                            <td>
                                                <div ng-repeat="opt in item.options">{{ opt[0] }}</div>
                                            </td>
                                            <td>{{item.count}}</td>
                                            <td>{{item.price | number: 2}}</td>
                                        </tr>
                                  <tr>
                                     <td class="text-right" colspan="5"><b>{{data.order.delivery}}</b></td>
                                     <td class="text-right">{{data.order.delivery_price}} {{data.order.currency}}</td>
                                  </tr>
                                  <tr>
                                     <td class="text-right" colspan="5"><b>Итого</b></td>
                                     <td class="text-right">{{data.total_price | number: 2}} {{data.order.currency}}</td>
                                  </tr>
                               </tbody>
                            </table>
                         </div>
                      </div>
                    
                </uib-tab>
                <!-- печать заказа -->
    

    Получается вот такой результат:
    0_1488808041431_2.png
    0_1488808023904_1.png

  • А если заказов много, то этот вариант не подходит

  • Участник @JaGGer написал в Записки велосипедиста №3. Печать заказов из под админки (простая версия).:

    А если заказов много, то этот вариант не подходит

    Почему?

  • @Andchir Если товаров много, то и на документе A4 например не вмещаются все товары а новые страницы Chrome не создал

  • @JaGGer
    Теперь понятно, выше вы писали "если заказов много". Заказы и товары это разные вещи.

  • @Andchir Согласен! Прошу прощения, ошибся 😊

 

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

  • Z

    Спасибо, действительно проще создать отдельно.

    Читать далее
  • Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]].

    Можно не использовать [[+addit_data]], а выводить параметры по-отдельности.

    Цитата из документации:

    [[+shk_любой доп.параметр]] - любой доп. параметр, выбранный при добавлении товара в корзину (из [[+addit_data]]), например [[+shk_param1]].
    Если параметры сделаны в виде чекбоксов, то чтобы вывести отдельно каждый из них, нужно добавлять индекс (номер от нуля) для параметров следующих за первым.
    Пример: [[+shk_param1]], [[+shk_param1_1]], [[+shk_param1_2]] ...
    [[+shk_любой доп.параметр_price]] - цена доп.параметра. Пример: [[+shk_param1_price]].

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

    Доброго времени суток. Не могу разобраться, как передать данные migx-поля в корзину в плейсхолдер без "дублирования" в [[+addit_data]]
    Суть в чем: У меня есть 2 цены у товара (со скидкой и без скидки) Форма для отправки в корзину:

    <form action="[[~[[*resource_id]]? &scheme=`abs`]][[*alias]].html" method="post"> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="price_old__[[*id]]__add" value="[[*price_old]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> Цена: <span class="shk-price">[[!*price:shk_curr_rate:num_format]]</span> Старая цена - <span class="shk-price-old">[[+price_old]]</span> [[!+shk_currency]] </div> <div class="padding-lr-30"> <h5>Дополнительные услуги</h5> [[*param1]] </div> <div class="product-price"> <button class="btn btn-lg btn-primary" type="submit" class="shk-but">В корзину</button> </div> </form>

    Данные со "старой ценой" в корзину попадают нормально и выводится в нужном месте в плейсхолдере:
    [[+shk_price_old]]
    Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]]. Как сделать чтобы старая цена не выводилась в [[+addit_data]]? Или может я как то не правильно передаю MIGX-параметр в корзину ? Заранее спасибо.

    Читать далее
  • Фотографии, как я понял, это второй вопрос. Я по нему пока ничего не отвечал и не просил информации. Это не отменяет того, что в вашем конфиге есть ошибка, о которой я писал выше. Не нужно задавать разные вопросы в одной теме, чтобы не было путаницы.
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее