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


Как вывести любой tv указанный в savePurchasesFields в письме покупателю

  • Не могу понять как вывести в письме покупателю значение tv которое было прописано в настройках Shopkeeper 3 в параметре savePurchasesFields. Помогите разобраться.

  • Как пробовали?

  • @Andchir У меня есть tv articul, где прописывается артикул товара. В savePurchasesFields он прописан и в корзине выводится через плейсхолдер [[+articul]], в письме покупателю пытался выводить и так [[+articul]] и так [[+tv.articul]]. В обеих случаях не выводится. Плюс в базу данных в строку modx_shopkeeper3_orders и modx_shopkeeper3_purchases ни один из параметров прописанных в savePurchasesFields не сохраняется, кроме стандартных от shopkeeper таких как price, delivery и т.д Просто хочу еще артикул товара выводить в чанке home.tpl для вывода в поле редактирования заказа и информации о заказе.

  • Какая версия Шопкипера?

  • @Andchir Последняя 3.2.4, версия modx 2.5.1, версия php 7.0.8

  • Мало информации. Покажите все настройки и все необходимые чанки. "savePurchasesFields" надо заполнять во всех наборах параметров, которые используются в вашем магазине.

  • @Andchir Во всех наборах параметров и задано. Товары в каталоге выводятся следующим образом:

    [[!getPage? &elementClass=`modSnippet` &element=`getProducts` &fromParentList=`id,parent` &limit=`12` &includeTVs=`1` &processTVs=`1` &includeContent=`1` &tpl=`productTpl` &pageLimit=`5` &pageActiveTpl=`[[$paginationActiveTpl]]` &pageFirstTpl=`[[$paginationFirstTpl]]` &pageLastTpl=`[[$paginationLastTpl]]` &pagePrevTpl=`[[$pagePrevTpl]]` &pageNextTpl=`[[$pageNextTpl]]` &sortby=`createdon` &sortdir=`DESC`]]
    <br clear="all" />
    <div class="text-center">
        <ul class="pagination">
            [[!+page.nav]]
        </ul>
    </div>
    

    Чанк товара:

    <div class="item product shk-item col-xs-12 col-sm-6 col-md-4 col-lg-4">
        <div class="thumbnail">
            [[getImageList? &tvname=`image` &tplFirst`imageTpl` &tplLast=`imageTpl` &limit=`1` &docid=`[[+id]]` &includeTVs=`1` &processTVs=`1` &totalVar=`img_total`]]
                <div class="caption">
                    <h4 class="group inner list-group-item-heading"><span class="text-warning">[[+tv.articul]]</span>, <span class="text-warning">[[+tv.trademark]]</span>, [[+description:default=`[[+pagetitle:ucfirst]]`]]</h4>
                            <div class="row">
                                <div class="col-xs-12 col-md-6">
                                    <p class="price shk-price">[[+tv.price:num_format]]&nbsp;<i class="fa fa-rouble"></i></p>
                                </div>
                                <div class="col-xs-12 col-md-6">
                                    <a class="btn btn-info btn-block" href="[[~[[+id]]? &scheme=`abs`]]" data-toggle="tooltip" title="Перейти к подробному описанию товара"><span class="hidden-md">Подробнее</span>&nbsp;<i class="fa fa-angle-double-right fa-lg"></i></a>
                                </div>
                                [[-!compare? &comparePageId=`738` &minProducts=`1` &targetActiveClass=`active` &toCompare_tpl=`toFavoritesTpl`]]
                            </div>
                            <div class="row">
                            </div>
                </div>
                <!-- END CAPTION-->
        </div>
            <!-- END: THUMBNAIL-->
    </div>
    [[+num:mod=`3`:is=`0`:then=`<div class="clearfix visible-md-block"></div>`:else=``]]
    [[+num:mod=`3`:is=`0`:then=`<div class="clearfix visible-lg-block"></div>`:else=``]]
    

    Параметры малой корзины [[!Shopkeeper3@smallCart?propertySetName=smallCart]], большой корзины [[!Shopkeeper3@myShopkeeper?propertySetName=myShopkeeper]]. В обеих случаях параметры savePurchasesFields="articul,image,currency,productDescription,tint,manufacture,trademark,weight,material,volume".
    На странице контактных данных вызов сделан так:

    [[!Personalize? &yesChunk=`logedInUserStepwizardTpl` &noChunk=`anonimousUserStepwizardTpl` &allowedGroups=`Покупатели` &ph=`personalize.name` &firstName=`1`]]
    [[-!$stepwizard]]
    [[!Shopkeeper3@myShopkeeper?propertySetName=`myShopkeeper`]]
    [[!FormIt?
    &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect,FormItSaveForm`
    &submitVar=`order`
    &validate=`fullname:required,phone:required,email:required,city:required,street:required,house_number:required,flat_number:required,zip_code:required`
    &emailTpl=`myShopOrderReport`
    &fiarTpl=`myShopOrderReport`
    &emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ`
    &fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"`
    &emailTo=`[[++emailsender]]`
    &emailFrom=`[[++emailsender]]`
    &fiarReplyTo=`[[++emailsender]]`
    &fiarFrom=`[[++emailsender]]`
    &fiarToField=`email`
    &redirectTo=`37`
    &errTpl=`<br /><span class="error">[[+error]]</span>`
    ]]
    [[$shopOrderForm2]]
    

    Сама форма оформления заказа такая:

    <form class="form-horizontal" id="shopOrderForm" method="POST" action="[[~[[*id]]]]">
    <fieldset>
        <input type="text" name="nospam:blank" value="" style="display:none;" />
        <input type="hidden" name="order" value="1" />
        [[!Personalize? &yesChunk=`logedInUsersTpl` &noChunk=`loginFormTpl` &allowedGroups=`Покупатели` &ph=`personalize.name` &firstName=`1`]]
        <div class="setup-content" id="step-2">
            <div class="form-group">
                <label class="control-label col-md-4" for="fullname">Ваша Ф.И.О.</label>
                <div class="col-md-6">
                    <input type="text" class="form-control" id="fullname" name="fullname" placeholder="Иванов Иван Иваныч" required="" value="[[!+fi.fullname:default=`[[!+modx.user.id:userinfo=`fullname`]]`:ne=`0`:show:ucwords]]"/>
                    <div>[[!+fi.error.fullname:ucwords]]</div>
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-md-4" for="phone">Ваш телефон</label>
                <div class="col-md-6">
                    <input type="tel" class="form-control" id="phone" name="phone" placeholder="+7(926)-900-70-39"  pattern="((8|[+]?7)[- ]?)?([(]?[0-9]{3}[)]?[- ]?){1}([0-9]{1}[- ]?){6}[0-9]{1}" required="" value="[[!+fi.phone:default=`[[!+modx.user.id:userinfo=`phone`]]`:ne=`0`:show]]"/>
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-md-4" for="email">Ваш Email</label>
                <div class="col-md-6">
                    <input type="email" class="form-control" id="email" name="email" placeholder="mail@mail.ru" required value="[[!+fi.email:default=`[[!+modx.user.id:userinfo=`email`]]`:ne=`0`:show]]"/>
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-10">
                    <button type="button" class="btn btn-success pull-right btn-lg nextBtn" id="validateBtn">Продолжить&nbsp;<i class="fa fa-arrow-circle-right"></i></button>
                </div>
            </div>
        </div>
        <div class="setup-content" id="step-3">
            <div class="form-group">
                <label class="control-label col-md-4" for="fieldDelivery">Способ доставки</label>
                <div class="col-md-6">
                    <select class="form-control" name="shk_delivery" id="fieldDelivery">
                        <option value=""></option>
                        [[!+shkopt_delivery]]
                    </select>
                </div>
            </div>
            <div class="form-group">
                <script>
                    $(function () {
                	$('[name="city"]').kladr({
                		type: $.kladr.type.city
                	});
                });
                </script>
                <label class="control-label col-md-4" for="city">Ваш город</label>
                <div class="col-md-6">
                    [[!cityselect? &tpl=`orderFormCitySelectTpl`]]
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-md-4" for="street">Ваша улица</label>
                <div class="col-md-6">
                    <input type="text" class="form-control" id="street" name="street" pattern="^[А-Яа-яЁё\s]+$" required="" placeholder="Столыпина" value="[[!+fi.street:default=`[[!Profile]][[!+street]]`:ne=`0`:show]]"/>
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-md-4" for="house_number">Номер дома</label>
                <div class="col-md-6">
                    <input type="number" class="form-control" id="house_number" name="house_number" required="" placeholder="30" value="[[!+fi.house_number:default=`[[!Profile]][[!+house_number]]`:ne=`0`:show]]"/>
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-md-4" for="flat_number">Номер квартиры</label>
                <div class="col-md-6">
                    <input type="number" class="form-control" id="flat_number" name="flat_number" required="" placeholder="38" value="[[!+fi.flat_number:default=`[[!Profile]][[!+flat_number]]`:ne=`0`:show]]"/>
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-md-4" for="zip_code">Почтовый индекс</label>
                <div class="col-md-6">
                    <input type="number" class="form-control" id="zip_code" name="zip_code" pattern="[0-9]{6}" required="" value="[[!+fi.zip_code:default=`[[!+modx.user.id:userinfo=`zip`]]`:ne=`0`:show]]"/>
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-10">
                    <button type="button" class="btn btn-success pull-right btn-lg nextBtn" id="validateBtn2">Продолжить&nbsp;<i class="fa fa-arrow-circle-right"></i></button>
                </div>
            </div>
        </div>
        <div class="setup-content" id="step-4">
            <div class="form-group">
                <label class="control-label col-md-4" for="fieldPayment">Способ оплаты</label>
                <div class="col-md-6">
                    <select name="payment" class="form-control" id="fieldPayment">
                        <option value=""></option>
                        [[!+shkopt_payments]]
                    </select>
                </div>
            </div>
            <div class="form-group">
                <label class="control-label col-md-4" for="message">Комментарий к заказу</label>
                <div class="col-md-6">
                    <textarea class="form-control" name="message" id="message" class="textfield" rows="5">[[!+fi.message]]</textarea>
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-10">
                    <input type="hidden" name="shopOrderForm" value="submit">
                    <button type="submit" class="btn btn-success pull-right btn-lg" id="shopOrderForm_btn" value="Submit">Завершить оформление заказа&nbsp;<i class="fa fa-arrow-circle-right"></i></button>
                </div>
            </div>    
        </div>
    </fieldset>
    </form>
    
  • Самое главное не показали. Чанк куда вставляете [[+articul]]

  • @Andchir Так обычный чанк OrderDataRow

    <tr class="cart-order">
        <td>
            <b><a href="[[+url]]">[[+name]]</a></b>
        </td>
        <td>
            [[+articul]]
        </td>
        <td>
            [[+addit_data:default=`&mdash;`]]
        </td>
        <td>
            [[+count]] шт.
        </td>
        <td>
            [[+price]] [[+currency]]
        </td>
    </tr>```
  • В базу данных ни один из моих прописанных в savePurchasesFields параметров articul,image не сохраняется

  • Возможно дело в том, что в параметрах SHK нужно обязательно заполнить поле "className". Если товары это ресурсы MODX, то значение будет "modResource".

  • @Andchir Товары ввиде ресурсов MODX. Данный параметр className в настройках указан со значением modResource уже и для малой корзины и для большой.

  • @anton83

    Данный параметр className в настройках указан со значением modResource уже и для малой корзины и для большой.

    Тогда у меня нет больше версий. Я только что проверил, у меня работает.

    Единственный вариант тут:
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом/2

  • @Andchir Разобрался в чем дело. Оказывается будет сохранять в БД только в одном случае если данные tv указать в наборе параметров Shopkeeper 3 по умолчанию (они по умолчанию заблокированы). Интересно это ошибка или так и должно быть?

  • @anton83 сказал Как вывести любой tv указанный в savePurchasesFields в письме покупателю:

    @Andchir Разобрался в чем дело. Оказывается будет сохранять в БД только в одном случае если данные tv указать в наборе параметров Shopkeeper 3 по умолчанию (они по умолчанию заблокированы). Интересно это ошибка или так и должно быть?

    savePurchasesFields нужно заполнять во всех наборах параметров, которые используются (которые указаны в настройках системы).

 

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

  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

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

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

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

    Участник @Jokerit написал в TagManager2 отображает в фильтре удаленные значения TV-полей:

    tmRefresh

    Так и не смог найти как включить

    Читать далее