Новости

Как передать изображение в заказ (письмо)

  • Добрый день!

    У товара есть TV параметр "goods-image1". Добавил его в "savePurchasesFields".
    На странице оформления заказа, всё работает хорошо. Вывод делаю так:
    shopCartRow

    <tr class="cart-order">
        <td align="left">
    	<b><a href="[[+url]]"><img src="[[+goods-image1]]"/><br/>[[+name]]</a></b> 
    ***
    

    Но когда пытаюсь вывести изображение в тексте письма, в чанке orderDataRow,

    <tr class="cart-order">
        <td>
    		<img src="[[+goods-image1]]" width="150" height="150" alt="[[+name]]"/>
            <b>[[+name]]</b>
        </td>
    ***
    

    в письме приходит

    <img src="[[+goods-image1]]" width="150" height="150" alt="Товар1"/>
    

    Пробовал гуглить, читал документацию, искал по форуму. Проблему так и не удалось решить. Кто - нибудь знает, как можно передать в письмо ссылку на изображение?

  • @Mikhail все должно работать как вы описали.
    Приведите настройки SHK которые используете на странице заказа и укажите какую версию ШК используете?

  • @slaad Версия ShopKeeper последняя: 3.2.5-pl
    На странице заказа делаю вызов так:

    [[!FormIt?
    &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`
    &submitVar=`order`
    &emailTpl=`shopOrderReport`
    &fiarTpl=`shopOrderReport`
    &emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ`
    &fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"`
    &emailTo=`[[++emailsender]]`
    &fiarReplyTo=`[[++emailsender]]`
    &fiarToField=`email`
    &emailFrom=`[[++emailsender]]`
    &emailFromName=`[[++emailsender]]`
    &fiarFrom=`[[++emailsender]]`
    &redirectTo=`7`
    &validate=`address:required,fullname:required,email,phone:required`
    &errTpl=`<br /><span class="error">[[+error]]</span>`
    ]]
    
    [[!Shopkeeper3@cart_order_page]]
    [[!$shopOrderForm]]
    

    Содержимое shopOrderForm:

    [[!shkOptions?
    &get=`delivery,payments`
    &post_name=`shk_delivery,payment`
    &toPlaceholders=`1`
    &pl_prefix=`shkopt_`
    &tpl=`select_option`
    ]]
    ***
    

    Содержимое набора параметров cart_order_page:

    TVsaveList
     
    additParamSource
     
    allowFloatCount
    Нет
     
    animCart
    Да
     
    cartRowTpl
    shopCartRowMy
     
    cartTpl
    @FILE shopCart.tpl
     
    changePrice
    Да
     
    className
    
    modResource
     
    counterField
    Нет
     
    counterFieldCart
    Да
     
    currency
    руб.
     
    debug
    Нет
     
    excepDigitGroup
    Да
     
    fieldPrice
    price
     
    flyToCart
    helper
     
    fromParentHeight
    1
     
    fromParentList
     
    goToOrderFormPage
    Нет
     
    groupBy
     
    hideOn
     
    jsScript
    1
     
    lang
    ru
     
    noConflict
    Нет
     
    noCounter
    Нет
     
    noJQuery
    Нет
     
    noLoader
    Нет
     
    orderDataTpl
    @FILE orderData.tpl
     
    orderFormPageId
    1
     
    packageName
     
    pluralWords
     
    processParams
    0
     
    prodCont
    div.shk-item
     
    savePurchasesFields
    goods-image1
     
    style
    default
     
    tplPath
    core/components/shopkeeper3/elements/chunk
    

    Содержимое чанка shopCartRowMy:

    <tr class="cart-order">
        <td align="left">
    	<b><a href="[[+url]]"><img src="[[+goods-image1]]" width="150" height="150" alt="[[+name]]"/><br/>[[+name]]</a></b> [[+addit_data]]</td>
        <td>[[+price]] [[+currency]]</td>
        <td>
            <input class="shk-count" type="text" size="2" name="count[]" maxlength="3" title="изменить количество" value="[[+count]]" />
        </td>
        <td align="right">
            <a href="[[+url_del_item]]" title="Удалить" class="shk-del"><img src="assets/components/shopkeeper3/web/css/default/delete.gif" width="17" height="17" alt="Удалить" /></a>
        </td>
    </tr>
    

    Содержимое чанка orderDataRow:

    <tr class="cart-order">
        <td>
    		<img src="[[+goods-image1]]" width="150" height="150" alt="[[+name]]"/>
            <b>[[+name]]</b>
        </td>
        <td>
            [[+addit_data:default=`&mdash;`]]
        </td>
        <td>
            [[+count]] шт.
        </td>
        <td>
            [[+price]] [[+currency]]
        </td>
    </tr>
    

    Результат: На странице оформления заказа, изображение отображается, а в письме приходит

    <img src="[[+goods-image1]]" width="150" height="150" alt="Товар1"/>
    

    Системные настройки shopkeeper:

    shk3.currency
    руб.
     
    shk3.currency_default
    1
     
    shk3.first_status
    1
     
    shk3.mail_contacts_row_tpl
    mailContactsRow
     
    shk3.mail_order_data_row_tpl
    orderDataRow
     
    shk3.mail_order_data_tpl
    orderDataOuter
     
    shk3.property_sets
    cart_catalog,cart_order_page
    

    Есть идеи, что может быть не так?

  • Надо добавить домен вашего сайта
    <img src="http://mysite.com/[[+goods-image1]]" width="150" height="150" alt="[[+name]]"/>

  • @Andchir Добавил. Теперь на почту приходит

    <img src="http://mysitename.ru/[[+goods-image1]]" width="150" height="150" alt="Товар1"/>
    

    Есть ещё идеи?

  • @Mikhail
    Идей нет.
    У меня в отдельной таблице, возможно поэтому работает.

    По параметрам, cart_order_page
    className modResource Лучше оставить пусто.
    Не вижу orderDataRowTpl в настойках, но он по умолчанию должен быть и раз меняется, значит все ок.

  • @slaad А в отдельной таблице, где? Можете подробнее рассказать?
    Я попробую также сделать.

  • @Mikhail это потребует изменения всей структуры сайта. не думаю, что вам это нужно.

    Инфомация вот : Тут

    И не факт, что это решит проблему. По хорошему лучше залезть в модули ШК и поискать, где обрабатывается orderDataRowTpl посмотреть, что там.

    И кстати, проверьте на демо сайте, какие там настройки.

  • @slaad Спасибо. Проверю.

  • @slaad Большое спасибо за помощь. Выкачал демо версию, посмотрел как там всё настроено и нашёл причину, по которой не работал вывод изображения в письме. У меня параметр "savePurchasesFields" был заполнен значением "goods-image1" только в наборе параметров "cart_order_page".
    Когда я заполнил параметр "savePurchasesFields" в наборе параметров "cart_catalog", всё заработало, и письма стали приходить с изображениями 🙂 (p.s. смайлик тут какой-то страшный)

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

  • @Andchir Спасибо. Этот вопрос уже решён 5 дней назад (см. мой последний коммент 5 дней назад). Эту тему тоже можно отмечать как Solved 🙂

 

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

  • M

    @Andchir
    Да, в TM2 в админке фильтр age включен. Все данные из TV подтянулись, все норм.

    Читать далее
  • В компоненте в админке фильтры есть?

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

    Ломаю голову над запуском Tagmanager2 на простом сайте с выводом обычных item-ов для последующей фильтрации. Делую все по инструкции. Запустил tmCatalog, все отображается:

    [[!tmCatalog? &cache=`1` &elementClass=`modSnippet` &element=`getProducts` &tpl=`filtr_tpl` &sortbyTV=`age` &sortdirTV=`ASC` &parents=`3` &limit=`0` &debug=`0` ]]

    Чанк вывода каждого itema имеет следующий вид:

    <div class="col-xl-4" style="padding-left: 5px; padding-right: 5px; float: left;"> <div class="post-02 post-02__style-02 js-post-effect"> <div class="post-02__media"> <a href="[[~[[+id]]]]"> [[getImageList? &tvname=`slider` &docid=`[[+id]]` &limit=`1` &tpl=`@CODE:<img src="[[+slide]]" alt="[[+alt]]" />` ]] </a></div> <div class="post-02__body"> <h2 class="post-02__title"><a href="[[~[[+id]]]]">[[!pdoField? &id=`[[+id]]` &field=`name`]]</a></h2> <div class="post-02__department">[[!pdoField? &id=`[[+id]]` &field=`seo_tag`]]</div> <div class="post-02__content"> <div class="post-02__description"> [[pdoField:ellipsis=`200`? &id=`[[+id]]` &field=`specification`]] <ul> <li><span class="primary-color">Age</span>[[!pdoField? &id=`[[+id]]` &field=`age`]]</li> <li><span class="primary-color">Dress Size</span>[[!pdoField? &id=`[[+id]]` &field=`dress_size`]]</li> <li><span class="primary-color">Height</span>[[!pdoField? &id=`[[+id]]` &field=`height`]] cm</li> <li><span class="primary-color">Weight</span>[[!pdoField? &id=`[[+id]]` &field=`weight`]] kg</li> </ul> </div> <a class="post-02__link" href="[[~[[+id]]]]">View detail</a> </div> </div> </div> </div>

    filter.js имеет следующий вид. Пока решил фильтровать только числовое значение age:

    config: { filters_cont: '#filters',//Селектор оберточного элемента блоков с фильтрами sortby: 'pagetitle',//Имя поля сортировки по умолчанию sortdir: 'asc',//Направление сортировки по умолчанию numeric: ['age'],//Имена доп. полей с числовыми значениями multitags: [''],//Имена доп. полей с множественными значениями guard_key: '#',//Разделитель для множественных значений products_cont: '#products',//Селектор контейнера с выводом товаров filter_slider: 'div.range-slider',//Селектор слайдеров (ползунок для числовых значений) filter_slider_cont: 'div.filter_slider',//Селектор контейнера со слайдером pages_cont1: '#pages',//Селектор контейнера с постраничной навигацией pages_cont2: '#pages2',//Селектор второго контейнера с постраничной навигацией. Если нет, оставить пустым. active_page_selector: '.current',//селектор номера текущей страницы внутри контейнера (pages_cont) filters_type: 'default',//Тип фильтрации. Возможные значения: // default (показ числа товаров по каждому фильтру и блокирование пустых вариантов), // only_block (только блокирование пустых париантов), // none (не показывать цифры и не блокировать) filter_delay: 700,//Задержка до отправления запроса на сервер (сбрасывается после каждой отметки фильтра) price_field: 'price',//Название поля или TV цены товара multi_currency: true,//Мультивалютность включить / выключить (true/false) base_url: '/', ajax_url: 'assets/components/tag_manager2/connector_fe.php', ajax_loader: 'assets/components/tag_manager2/img/ajax-loader2.gif' },

    Все скрипты подключи вручную, все отображается внизу страницы, проверял.
    Сам tmFilters не отображается хоть убей. Вывожу:

    <div id="filters"> [[tmFilters? &filterNumericTpl=`tm2_filterNumericTpl` &filterNumericOuterTpl=`tm2_filterOuterTpl` &jsScript=`0` &jsMap=`1` &filtersType=`filters` ]] <form action="[[~[[*id]]]]" method="get"> <input type="hidden" name="page_id" value="[[*id]]" disabled="disabled" /> [[+filters]] <button id="clear" class="btn btn-danger btn-sm" type="button" onclick="tmFilters.resetFilters(); return false;">Сбросить</button> </form> </div>

    При выводе на странице выводится только кнопка. Фильтров как и не существует. Я понимаю, если бы кривенько вывелись чанки с фильтром и он не фильтровал, здесь же сам фильтр никак не хочет выводиться в бэкенд. Кто с таким сталкивался? Куда копать?

    Читать далее
  • @Andchir Спасибо!!!
    Все перепробовал кроме [[+note]]
    В письме со статусом отправлен, чтобы трек-номер отправлять покупателю. Все работает. Еще раз спасибо.

    Читать далее