Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Следить
Главная
18:13
29 янв
#
?
написал:

С каждым обновлением движка дописываю персональные изменения в коде. Решил выложить некоторые из них, может кому-то будут интересны следующие мелкие доработки:


Поле гарантии для Яндекс.Маркет

У некоторых прайсовых агрегаторов и каталогов на подобие Яндекс.Маркета или Хотлайна имеется требование, чтобы каждый товар сопровождался атрибутом "гарантия". Для реализации этого параметра необходимо дописать несколько строк в файл /objects/Pricelist.php

Найти строки:

// читаем список незапрещенных на сайте и для экспорта в Яндекс.Маркет и незакрытых от чужих товаров
$query = 'SELECT ' . $dbtable_prods . '.`category_id`, '
                   . $dbtable_prods . '.`model`, '
                   . $dbtable_prods . '.`pcode`, '
                   . $dbtable_prods . '.`url`, '
                   . $dbtable_prods . '.`url_special`, '

и добавить под ними:

                   . $dbtable_prods . '.`guarantee`, '

Затем найти строки:

    // поправляем поля изображений
    if (isset($item->large_image) && ($item->large_image == '') && isset($item->small_image)) $item->large_image = $item->small_image;
    $this->db->products->unpack_images($item);

и добавить над ними:

    // добавляем информацию о гарантии
    echo '        <warranty>' . $this->string_escape($item->guarantee, FALSE) . "</warranty>\r\n";



Модификация скрипта автозаполнения META-тегов

Автоматическое заполнение МЕТА-тегов в новых товарах - очень замечательная функция, когда товаров очень много и возиться с заполнением онных просто некогда. Но благодаря одинаковому описанию товаров одной линейки, отличающихся либо цветом, либо иным незначительным параметром, МЕТА-тег Description заполняется идентично на нескольких страницах. Это в свою очередь вредит SEO. Чтобы немного изменить МЕТА-описание товара, можно вначале добавить наименование товара, которое уникально, и таким образом избавимся от дублей.
Для этого нам необходимо исправить одну строку в файле
/admin/design/common_parts/meta.htm

Строка 160. Дописать в строке name + ' - ' +

    ...
    object.value = Generate_MetaDescription(name + ' - ' + text);
    ...
    ...



Исправление "бесплатной" доставки в заказах

В случае если вы осуществляете доставку в другие города, и для этого пользуетесь услугами соответствующих компаний, в способах доставки можно указать все эти компании. Так как тарифы на доставку меняются в зависимости от множества факторов, их точный расчет и включение в стоимость заказа не представляется возможным. И обычно в таких случаях указывается нулевая стоимость, плюс сопроводительный текст о том, что заказчик самостоятельно оплачивает услуги доставки при получении товара. И уже кажется что вопросов возникнуть не должно, но все же находятся клиенты, которые увидев в письме, подтверждающем заказ, надпись "бесплатно" напротив способа доставки, отнимают драгоценное время менеджеров, выяснением этого "спорного вопроса".

Нам не остается ничего больше, кроме как внести изменения в следующие файлы:

Страница заказа на сайте
/design/common_parts/order_htm.tpl

Строка 162. Убираем слово "бесплатно" и {else} перед ним:

    ...
    {if $order->delivery_price > 0}
        {($order->delivery_price * $currency->rate_from / $currency->rate_to)|string_format:"%1.2f"} {$currency->sign|escape}
    {else}
        бесплатно
    {/if}
    ...

Шаблон письма о заказе
/admin/design/default/html/email_order_to_admin.htm

Строка 526. Убираем слово "бесплатно" и {else} перед ним:

    ...
    {if $post->delivery_price > 0}
        {($post->delivery_price * $currency->rate_from / $currency->rate_to)|string_format:"%1.2f"|replace:",":"."} {$currency->sign|escape}
    {else}
        бесплатно
    {/if}
    ...
Примечание. В зависимости от версии движка и используемого шаблона на сайте, некоторые номера строк, и наименования файлов могут отличаться, так что вносите исправления внимательно, чтобы не повредить работу сайта в целом.
16:07
30 янв
#
?
EraUa написал:

Спасибо за советы!

Второй для меня как раз очень актуален, т.к. слово бесплатно сбивает людей с толку.

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

17:12
30 янв
#
?
bakar написал:

Хак мета тегов по делу накатан. Респект.

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

13:39
10 фев
#
?
написал:

Ранее я писал как добавить поле гарантии для Яндекс.Маркет, точнее для файлов yandex.xml, которые формирует магазин. Единственный недостаток такого подхода в том, что это поле появится во всех файлах этого типа (yandex_1.xml, yandex_2.xml, yandex_3.xml, и т.д.). Как выяснилось сам Яндекс Маркет не приемлет такого поля, искренне считая его критической ошибкой! На просьбу "проигнорировать поле при парсинге" ответили, что не умеют. =(

Теперь ломаю голову, как сделать так, чтобы это поле не появлялось в каком-нибудь файле, например yandex_5.xml.

Так, кажется понял... Для того чтобы определенный канал, скажем 5, не имел этого поля, нужно к ранее добавленной строке с тегами добавить проверку:

// добавляем информацию о гарантии
if ($num != 4) {
    echo '        <warranty>' . $this->string_escape($item->guarantee, FALSE) . "</warranty>\r\n";
}

if ($num != 4) - цифра "4" по тому, что отсчет начинается с "0".

Кстати, просьба к модератору форума, поправьте код в первом посте, там пропали теги <warranty>.

18:55
17 мар
#
написал:

Еще одно наблюдение, с чем столкнулись на днях. Ранее по инструкции Яндекс.Маркет тег local_delivery_cost был описан так:

    local_delivery_cost    Стоимость доставки данного товара в своем регионе.
                           Необязательный элемент.


Тег мог располагаться как до тега offers (товарные предложения) и в этом случае действовать как единая стоимость доставки для всех предложений, так и располагаться внутри конкретного предложения (тега offer), обозначая стоимость доставки именно этого товара.

В силу необязательности элемента, файл http://сайт/yandex.xml импортировался нормально и при отсутствии тега цены доставки. Теперь Яндекс стал ругаться на все товары, если в прайс-листе не выведен общий тег над списком товарных предложений или такой тег не выведен внутрь предложений:

    Ошибка: Отсутствует или некорректная стоимость доставки у предложения:
            http://сайт/products/.... (строка NNN, столбец NN)


Так что в метод вывода яндексового прайс-листа, что находится в файле http://сайт/objects/Pricelist.php, нужно добавить строку:

    // добавляем стоимость доставки
    echo "        <local_delivery_cost>0</local_delivery_cost>\r\n";


Строку располагаем либо над строкой вывода тега offers (лучше всего), либо в тело вывода тега offer (что несколько увеличит размер файла).

В обновленной версии движка этот момент будет учтен.

19:24
17 мар
#
написал:

Уточнение: Яндекс начинает ругаться на описанное выше только в ситуации, когда в параметрах размещения указано, что стоимость доставки брать из прайс-листа магазина.

Настройки
    Параметры размещения
        Основные параметры
            ...
            ...
        Интернет-магазин
            ...
            Стоимость доставки в своём регионе*    Используются данные из прайс-листа  [изменить]
            ...
            ...
        Точки продаж
            ...

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.