В админке заказа необходимо вывести:
Скриншот: http://prntscr.com/nfaiq6

Подскажите как вывести в order_cart_item.tpl характеристику товара у которой id 10.

<td>
        {if $product->hasImage()}
            <a href="{$product->getMainImage(800, 600, 'xy')}" rel="lightbox-products" data-title="{$item.cartitem.title}"><img src="{$product->getMainImage(36,36, 'xy')}"></a>
        {else}
            <img src="{$product->getMainImage(36,36, 'xy')}">
        {/if}
    </td>
    <td>
        {hook name="shop-orderview:cart-body-product-title" title=t('Редактирование заказа(админ. панель):Название товара в корзине заказа')}
            {if $product.id}
                <a href="{$product->getUrl()}" target="_blank" class="title">{$item.cartitem.title}</a>
            {else}
                {$item.cartitem.title}
            {/if}
                <br>
            {if !empty($item.cartitem.model)}{t}Модель{/t}: {$item.cartitem.model}{/if}
            {if $product.multioffers.use && $order->canEdit()}
                {$multioffers_values = unserialize($item.cartitem.multioffers)}
                <div>
                    {foreach $product.multioffers.levels as $level}
                        {foreach $level.values as $value}
                            {if $value.val_str == $multioffers_values[$level.prop_id].value}
                                <div class="offer_subinfo">
                                    {if $level.title}{$level.title}{else}{$level.prop_title}{/if} : {$value.val_str}
                                </div>
                            {/if}
                        {/foreach}
                    {/foreach}
                </div>
                <a class="show-change-offer btn btn-default">{t}изменить{/t}</a>

                <div class="change-offer-block unvisible">
                    <div class="multiOffers unvisible">
                        {foreach $product.multioffers.levels as $level}
                            {if !empty($level.values)}
                                <div class="title">{if $level.title}{$level.title}{else}{$level.prop_title}{/if}</div>
                                <select name="items[{$n}][multioffers][{$level.prop_id}]" class="product-multioffer " data-url="{adminUrl do="getOfferPrice" product_id=$product.id}" data-prop-title="{if $level.title}{$level.title}{else}{$level.prop_title}{/if}">
                                    {foreach $level.values as $value}
                                        <option value="{$value.val_str}" {if $value.val_str == $multioffers_values[$level.prop_id].value}selected="selected"{/if}>{$value.val_str}</option>
                                    {/foreach}
                                </select>
                            {/if}

                        {/foreach}

                        {if $product->isOffersUse()}
                            {* Комплектации к многомерным комлектациям *}

                            <select name="items[{$n}][offer]" class="product-offers unvisible">
                                {foreach from=$product.offers.items item=offer key=key}
                                    <option value="{$offer.sortn}" id="offer_{$n}_{$key}" class="hidden_offers" {if $offer.sortn == $item.cartitem.offer}selected="selected"{/if} {if $catalog_config.use_offer_unit}data-unit="{$product.offers.items[$key]->getUnit()->stitle}"{/if} data-info='{$offer->getPropertiesJson()}' data-num="{$offer.num}">{$offer.title}</option>
                                {/foreach}
                            </select>

                            {* Комплектации к многомерным комлектациям *}

                            <select class="product-offer-cost unvisible">{*Сюда будут вставлены цены комплектации*}</select>
                            <input type="button" value="OK" class="apply-cost-btn unvisible"/>
                        {/if}
                    </div>
                </div>
            {elseif $product->isOffersUse() && $order->canEdit()}
                <a class="show-change-offer btn btn-default">{t}изменить{/t}</a>

                <div class="change-offer-block unvisible">
                    <select name="items[{$n}][offer]" class="product-offer unvisible" data-url="{adminUrl do="getOfferPrice" product_id=$product.id}">
                        {foreach $product.offers.items as $key => $offer}
                            <option value="{$offer.sortn}" {if $offer.sortn == $item.cartitem.offer}selected="selected"{/if} {if $catalog_config.use_offer_unit}data-unit="{$product.offers.items[$key]->getUnit()->stitle}"{/if}>{$offer.title}</option>
                        {/foreach}
                    </select>
                    <select class="product-offer-cost unvisible">{*Сюда будут вставлены цены комплектации*}</select>
                    <input type="button" value="OK" class="btn btn-default apply-cost-btn unvisible"/>
                </div>
            {/if}

            {* Кнопка показа рекомендуемых или сопутствующих *}
            {if $order->canEdit() && $product.id && ($product->isHaveRecommended() || $product->isHaveConcomitant())}
                <a id="showRecommended{$n}" class="show-recommended" data-url="{adminUrl do="getRecommendedAndConcomitantBlock" order_id=$order.id ids=[$product.id]}" data-product-id="{$product.id}" data-id="{$n}"><span>{t}Показать доп. товары{/t}</span></a>
            {/if}
        {/hook}
        {if !in_array($product.amount_step,array('0', '1'))}<span class="amount_step">Рекомендуемый шаг изменения количества товара:{$product.amount_step} {$product->getUnit()->stitle}</span>{/if}

    </td>

<td>Код вывода значения характеристики id 10</td>

    <td>{$item.cartitem.barcode}</td>
    <td>{$item.cartitem.single_weight}</td>
    <td><input type="text" name="items[{$n}][single_cost]" class="invalidate single_cost" value="{$item.single_cost_noformat}" size="10" {if !$order->canEdit()}disabled{/if}></td>
    <td>
        <input type="text" name="items[{$n}][amount]" class="invalidate num" value="{$item.cartitem.amount}" size="4" data-product-id="{$product.id}" {if !$order->canEdit()}disabled{/if}>
        {if $catalog_config.use_offer_unit}
            <span class="unit">
                {$item.cartitem.data.unit}
            </span>
        {/if}
    </td>
    <td>
        <span class="cost">{$item.total}</span>
        {if $item.discount>0}<div class="discount">{t discount=$item.discount}скидка %discount{/t}</div>{/if}
    </td>
    <td class="r-w-space"></td>
</tr>

В данный момент через yml файлик нет возможности загрузить многомерные комплектации и вариации товара (цвет,размер).
Обычно в yml все варианты одного товара идут под единым group id.

Подскажите, кто сталкивался, как можно вывести поле характеристики товара в заказ напротив товара?

Polo Art пишет:

Мы можем, Константин. Делали такое не один раз.
Но не совсем так, как у вас, однако, это мелочи, добавить тот же бренд или валюту - без проблем.
https://webmaster.yandex.ru/tools/microtest/
https://screenshotscdn.firefoxusercontent.com/images/4fd3bc9f-ab95-4c01-8f5f-0d34a1dbb0c0.png

Напишите пожалуйста свой skype или telegram

Кто может реализовать и какая цена?

Тема современная, необходимо разметить по Schema.org карточку товара и каталог.

Карточка товара - http://prntscr.com/mtxvtn

Для категории:

количество товаров;
минимальная стоимость;
максимальная стоимость;
валюта.

Подскажите как вывести для комплектации статус наличия? Пример на фото - http://prntscr.com/mtkpye

Закусило Александр пишет:

Вам всегда доступна переменная {$category} в шаблоне списка товаров. Из которой можно всё извлечь по ней.

<pre>
{var_dump($category)}
</pre>
{$category.name}

Тоже самое и с товаром, внутри их перебора {$product}

Название - {$product.title}
Картинка - {$product->getMainImage()->getUrl(500, 500)}
Цена - {$product->getCost()}
Бренд - {$product->getBrand()->title}

Спасибо, а как из фильтра по цене вытащить значения
"lowPrice" : "*min цена товара*",
"highPrice" : "*max цена товара*",

Закусило Александр пишет:

Какой конкретно параметр у Вас не получается получить?

Для категории:

"name": "*Название категории*",
"offers":{
"@type": "AggregateOffer",
"lowPrice" : "*min цена товара*",
"highPrice" : "*max цена товара*",

Для товара:

"image": "*Изображение товара*",
"mpn": "артикул",
"brand" : {
    "@type" : "Brand",
    "name" : "Название бренда"
  },

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

Помогите пожалуйста с подстановкой значений.

Для категории:

<script type='application/ld+json'> {
"@context": "http://www.schema.org";,
"@type": "product",
"name": "*Название категории*",
"offers":{
"@type": "AggregateOffer",
"lowPrice" : "*min цена товара*",
"highPrice" : "*max цена товара*",
"priceCurrency" : "UAH"
},
"aggregateRating": {
"@type": "aggregateRating",
"ratingValue": "*средняя оценка*",
"reviewCount": "*кол-во оценок*",
"bestRating":"*максимальный рейтинг*"
}
}
</script>

Для товара:

<script type="application/ld+json">
{
"@context": "http://schema.org";,
"@type": "Product",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "*Средняя оценка товара*",
"reviewCount": "*Количество отзывов*"
},
"description": "*Описание товара*",
"name": "*Наименование товара*",
"image": "*Изображение товара*",
"mpn": "артикул",
"brand" : {
    "@type" : "Brand",
    "name" : "Название бренда"
  },
"offers": {
"@type": "Offer",
"availability": "http://schema.org/InStock";,
"price": "*Стоимость товара*",
"priceCurrency": "UAH"
},
"review": [
{
"@type": "Review",
"author": "*Имя автора отзыва*",
"datePublished": "*Дата публикации отзыва",
"description": "*Сам отзыв*",
"reviewRating": {
"@type": "Rating",
"bestRating": "*мах оценка*",
"ratingValue": "*оставленный рейтинг*",
"worstRating": "*min оценка*"}}]}
</script>
admin пишет:
Павел пишет:

Я все установил, но меня редиректит с локальной версии на внешний сайт. Как быть?
htaccess "родной"...

Вероятно у вас в админ. панели в разделе Управление->Сайты, у сайта установлен флаг "перенаправлять на основной домен", а основной домен прописан в боевой зоне. Если это так, то вам нужно установить поле redirect_to_main_domain=0 в таблице ...sites в БД, и очистить кэш браузера после этого.

Добрый день.
У меня ситуация обратная. Есть боевой сайт (лицензия ит.п.), мне надо развернуть его локальную копию (под Денвером). Скопировал файлы, развернул бэкап базы ,изменил config_auto.php и получил в результате сообщение: "Нарушение защиты. Скрипты не соответствуют базе данных".
Что я не так сделал и как это можно исправить?

Такая ошибка может быть только, если вы файлы развернули из дистрибутива, а базу данных перенесли из боевого сайта. Вам нужно все файлы перенести с вашего рабочего сервера и оттуда же взять базу, затем поправить config_auto и удалить папку /cache в корне.

Такая ошибка может также произойти, если поверх системы просто залить файлы из свежего дистрибутива(например, с целью обновления), обновление должно происходить из центра обновления в админ.панели.

1. Скопировал сайт на локалку
2. Импортировал базу данных
3. Прописал доступ к базе config_auto
4. Удалил cache

Все равно:  "Нарушение защиты. Скрипты не соответствуют базе данных"

а как сделать что бы бренды были кликабельные? (ссылки на бренд)

Вот такие настройки мы ставили
http://prntscr.com/m8c5mf
http://prntscr.com/m8c65h

Добрый день,

Возможно у кого то был опыт по настройке CloudFlare для RS ?

Интересует какие настройки и page rule выбирались что бы кеш не мешал оформлению заказов, так как при полном включение кеширования становиться почти не возможным сделать заказ (не срабатывают кнопки, корзина и т.д)

14

(5 ответов, оставленных в Вопросы по работе с системой)

Закусило Александр пишет:
"order_id": "?php echo $order.order_num ?",

В Smarty php echo и не будет вместо этого используются скобки {}.  https://www.smarty.net/docsv2/ru/

"order_id": "{$order.order_num}",
"email": "{$user.e_mail}",

Этот запрос выдаст дату доставки?

Это не запрос это вывод данных ORM объекта. Посмотрите, что в переменной delivery там будет в принципе понятно. Специально не даю полный код, чтобы разобрались немножко самостоятельно.

Трудно самостоятельно, без знания кода smile Был бы благодарен за готовый код, необходимо указать в поле "estimated_delivery_date" дату  на 5 дней больше от текущей (усреднили по всем способам доставки, так будет проще)

15

(5 ответов, оставленных в Вопросы по работе с системой)

Закусило Александр пишет:

Вам всегда на этой странице доступен объект заказа:

<pre>
{var_dump($order)}
</pre>

Соответственно номер можно получить:

{$order.order_num}

А доставку можно всегда достать так:

{$delivery=$order->getDelivery()}
<pre>
{var_dump($delivery)}
</pre>

Тоесть код должен быть таким :

<!-- НАЧАЛО кода модуля опроса -->
<script src="https://apis.google.com/js/platform.js?onload=renderOptIn"
  async defer>
</script>

<script>
  window.renderOptIn = function() { 
    window.gapi.load('surveyoptin', function() {
      window.gapi.surveyoptin.render(
        {
          // ОБЯЗАТЕЛЬНО
          "merchant_id":"номер мерчанта",
          "order_id": "?php echo $order.order_num ?",
          "email": "?php echo $user.e_mail ?",
          "delivery_country": "UA",
          "estimated_delivery_date": "?php echo $delivery=$order->getDelivery() ?",

          // НЕОБЯЗАТЕЛЬНО
          "opt_in_style": "OPT_IN_STYLE"
        }); 
     });
  }
</script>
<!-- КОНЕЦ кода модуля опроса -->

Этот запрос выдаст дату доставки?

 "estimated_delivery_date": "?php echo $delivery=$order->getDelivery() ?",

16

(4 ответов, оставленных в Вопросы по работе с системой)

тоже интересуюсь как сделать, буду благодарен за ответ.

Мануал google по добавлению кода

https://support.google.com/merchants/an … authuser=0

Изменяемый файл: сайт\тема\moduleview\shop\checkout\finish.tpl

И вопрос: где взять номер заказа "order_id" , и предполагаемую  дату доставки "estimated_delivery_date".

В способах доставки прописаны сроки доставки, но они не выводятся на "сайт/checkout/confirm/" так же как и номер заказа.

Код:

<!-- НАЧАЛО кода модуля опроса -->
<script src="https://apis.google.com/js/platform.js?onload=renderOptIn"
  async defer>
</script>

<script>
  window.renderOptIn = function() { 
    window.gapi.load('surveyoptin', function() {
      window.gapi.surveyoptin.render(
        {
          // ОБЯЗАТЕЛЬНО
          "merchant_id":"номер мерчанта",
            "order_id": "ORDER_ID",
          "email": "?php echo $user.e_mail ?",
          "delivery_country": "UA",
          "estimated_delivery_date": "YYYY-MM-DD",

          // НЕОБЯЗАТЕЛЬНО
          "opt_in_style": "OPT_IN_STYLE"
        }); 
     });
  }
</script>
<!-- КОНЕЦ кода модуля опроса -->
<!-- НАЧАЛО кода языка опроса -->
<script>
  window.___gcfg = {
    lang: 'ru'
  };
</script>
<!-- КОНЕЦ кода языка опроса -->

18

(3 ответов, оставленных в Вопросы по работе с системой)

Логика работы модуля SEO контроль с чпу фильтром

Текущая ситуация:
1. На каждой категории есть:
- H1 название категории
- свой текст в блоке "описание"
- мета данные "Title" "Description"
Вид ссылки категории:                  site.com/category/category_name/

Вид ссылки категории + ЧПУ фильтр:     site.com/category/category_name/filter_1/filter_2/
Что происходит: фильтрует товары в заданной категории по нужным условиям, при этом остаться текст в блоке "описание" и H1
из изначальной категории site.com/category/category_name/

Что необходимо:

1. Если для ЧПУ url фильтра не прописаны данные в модуле SEO контроль:
  1.1 Убирать текст в блоке "описание"
  1.2 Убрать H1 (реализовано)

2. Если для ЧПУ url фильтра прописаны данные в модуле SEO контроль:
  2.1 Заменить исходный текст в блоке "описание" на текст из блока "seo описание" (реализовано)
  2.2 Заменить H1 на данные из модуля "SEO контроль" "SEO H1" (реализовано)


Реализация для п.1.2 п2.2

В файле list_products.tpl в вашей теме делаем изменения

           

<h1 class="m-t-0 hidden-xs hidden-sm">{moduleinsert name="\SeoControl\Controller\Block\Seoh1" default=$category.name}</h1>

Реализация п2.1

В файле list_products.tpl в вашей теме делаем изменения


  {$seo_content={moduleinsert name="\SeoControl\Controller\Block\Seotext"}}
{if !empty($seo_content)}
<article class="catalog-description">{$seo_content}</article>
{else}
        {if $category.description && $paginator->page == 1 && $THEME_SETTINGS.cat_description_bottom}<article class="catalog-description">{$category.description}</article>{/if}
        {/if} 

Остался вопрос по реализации п.1.1 , возможно кто то сможет помочь или подсказать как реализовать.