Как вывести любой 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 нужно заполнять во всех наборах параметров, которые используются (которые указаны в настройках системы).



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