COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Pelmen

opencart.pro
  • Публикации

    84
  • Зарегистрирован

  • Посещение

  • Days Won

    2

Изменения репутации

  1. Upvote
    Pelmen получил репутацию от Влад в Благодарность Pikitos   
    Очень хорошая поддержка шаблона. Сотрудничаем давно
  2. Upvote
    Pelmen изменил репутацию WarStyle в Отзывы с фото   
    SEO CMS
  3. Upvote
    Pelmen изменил репутацию klaus в Модуль Export/Import Tools для 2.х после импорта делает поле "Главная категория" пустой   
    Там в разных местах код вставляется, поэтому я выкладываю файл. И я делаю пошагово (пока только стикеры. 
    Я делаю стикеры по аналогии с категориями. Категории в полученном при экспорте файле перечисляются через запятую в одной ячейке таблицы - вот я так-же пытаюсь вывести стикеры. Я понимаю что этого не достаточно, так как в этом случае нет никокой информации о позициях стикеров. Но я ещё раз уточню, что я не ищу готового решения "на блюдечке с голубой каёмочкой", и делаю все поэтапно (чтобы ошибки не накапливались).

    export_import.php

    Версия  export/import tool 3.10
    Здесь уже есть все метатеги, главные категории, description_mini и description_bottom 
    Там где я вставлял код для стикеров я его прокоментировал  //stiker
  4. Upvote
    Pelmen изменил репутацию satyr в Розыгрыш ключа OPENCART.PRO   
    Кнопка "Обновить кэш модификатора" в шапке, рядом с остальными кэшами.
  5. Upvote
    Pelmen изменил репутацию Adems в Микроразметка "рейтинг товаров"   
    Рекомендую перед изменением файлов cделать Бекап (хотя-бы тех которые изменяете).
    Микроразметка данных:
    Разметка "Хлебных крошек"

    Ищем файлы:
    catalog\view\theme\ваша тема\template\product\product.tpl
    catalog\view\theme\ваша тема\template\product\category.tpl
    catalog\view\theme\ваша тема\template\product\special.tpl
    catalog\view\theme\ваша тема\template\product\manufacturer_list.tpl
    catalog\view\theme\ваша тема\template\product\manufacturer_info.tpl
    catalog\view\theme\ваша тема\template\blog\latest.tpl
    catalog\view\theme\ваша тема\template\product\article.tpl
    catalog\view\theme\ваша тема\template\ information\sitemap.tpl
    catalog\view\theme\ваша тема\template\ information\information.tpl
    catalog\view\theme\ваша тема\template\ information\contact.tpl
     
    Далее в этих файлах ищем 3 я строка:
    <ul class="breadcrumb">
        <?php foreach ($breadcrumbs as $breadcrumb) { ?>
        <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
        <?php } ?>
    </ul>

    Меняем на:
    <ul itemscope itemtype="http://schema.org/BreadcrumbList" class="breadcrumb">
        <?php $i = 1; foreach ($breadcrumbs as $key => $breadcrumb) { ?>
          <?php if($i == count($breadcrumbs)){ ?>
            <li><?php echo $breadcrumb['text']; ?></li>
          <?php }else{ ?>
            <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" href="<?php echo $breadcrumb['href']; ?>"><span itemprop="name"><?php echo $breadcrumb['text']; ?></span></a><meta itemprop="position" content="<?php echo $key+1; ?>" /></li>
          <?php } ?>
        <?php $i++; } ?>
      </ul>
     
    Данный код одновременно меняет стандартный вывод крошек делая последнею крошку не активной и вносит саму разметку.
    Обязательно! Далее нам нужен файл /catalog/language/russian/russian.php

    Меняем содержимое $_['text_home']   = '<i class="fa fa-home"></i> '   на   '<i class="fa fa-home"></i><span class="displayn"> Главная</span>';
    Если вы желаете скрыть надпись главная в стили css дописываем .displayn {display:none;}
    "Главная" или нет кому как надо.
     
    Проверяем здесь:
    https://developers.google.com/structured-data/testing-tool/
    https://webmaster.yandex.ua/microtest.xml
     
    Разметка товара
    Открываем файл: catalog\view\theme\ваша тема\template\product\product.tpl
    Ищем: <div class="container">
    Обозначаем, что в этом блоке будет находится разметка товара: <div class="container" itemscope itemtype="http://schema.org/Product">
     
    Размечаем адрес страницы через ссылку хлебных крошек.
    <link itemprop="url" href="<?php echo $breadcrumb['href']; ?>" />
     
    Размечаем картинку

    Ищем блок изображений в шаблоне:
    <ul class="thumbnails">
      <?php if ($thumb) { ?>
      <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
     
    Обозначаем основное изображение с помощью itemprop="image":
     
      <ul class="thumbnails">
      <?php if ($thumb) { ?>
      <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img itemprop="image" src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
     
    Ищем описание и размечаем как itemprop="description":
    Само описание будет тут: <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div>
    Размечаем:
    <div itemprop="description" class="tab-pane active" id="tab-description"><?php echo $description; ?></div>
     
    Далее нам нужно указать название товара.
    Ищем:
    <h1><?php echo $heading_title; ?></h1>
    Заменяем на:
    <h1 itemprop="name"><?php echo $heading_title; ?></h1>
     
    Следующая цель - обозначить цену itemprop="price":
    Для этого находим:
    <li>
    <h2 itemprop="price"><div itemprop="priceCurrency" content="RUB"><?php echo $price; ?></div></h2>
    </li>
    Меняем на:
    <li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
      <h2 itemprop="price"><div itemprop="priceCurrency" content="RUB"><?php echo $price; ?></div></h2>
    </li>
    Обратите внимание на: content="RUB" Для гривны это: content="UAH"
     
    Есть маленький нюанс в связи с выводом цены и валюты в Opencart, поскольку цена выводится в виде: 4360грн. (нет возможности выделить тегом отдельно сами цифры исключив грн ) то валидатор гугл делает предупреждение о неверном формате, подчёркиваю что предупреждение, но индексирует и отображает в виде 4360 грн. правильно.

    Указание модели, бренда:
    Бренд:
    Ищем <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li>
    Меняем на:
    <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><span itemprop="brand"><?php echo $manufacturer; ?></span></a></li>
    Модель:
    Ищем: <li><?php echo $text_model; ?> <?php echo $model; ?></li>
    Меняем на: <li><?php echo $text_model; ?> <span itemprop="model"><?php echo $model; ?></span></li>
     
    Размечаем рейтинг товаров:
    Ищем           
    <div class="rating">
                <p>
                  <?php for ($i = 1; $i <= 5; $i++) { ?>
                  <?php if ($rating < $i) { ?>
                  <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span>
                  <?php } else { ?>
                  <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span>
                  <?php } ?>
                  <?php } ?>
                  <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a>
                  </p>
                <hr>
                <!-- AddThis Button BEGIN -->
                <div class="addthis_toolbox addthis_default_style"><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a> <a class="addthis_button_tweet"></a> <a class="addthis_button_pinterest_pinit"></a> <a class="addthis_counter addthis_pill_style"></a></div>
                <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-515eeaf54693130e"></script>
                <!-- AddThis Button END -->
              </div>
              
              Меняем на:
              
              <div class="rating" itemprop = "aggregateRating" itemscope itemtype = "http://schema.org/AggregateRating">
                <p>
                  <?php for ($i = 1; $i <= 5; $i++) { ?>
                  <?php if ($rating < $i) { ?>
                  <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span>
                  <?php } else { ?>
                  <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span>
                  <?php } ?>
                  <?php } ?>
                  <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a>
                </p>
                  <meta itemprop = "ratingValue" content="<?php echo $rating; ?>">
                  <meta itemprop = "worstRating" content="1">
                  <meta itemprop = "bestRating" content="5">
                  <meta itemprop = "reviewCount" content="<?php echo $review_count; ?>">
              <hr>
                <!-- AddThis Button BEGIN -->
                <div class="addthis_toolbox addthis_default_style"><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a> <a class="addthis_button_tweet"></a> <a class="addthis_button_pinterest_pinit"></a> <a class="addthis_counter addthis_pill_style"></a></div>
                <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-515eeaf54693130e"></script>
                <!-- AddThis Button END -->
              </div>
                
    В файле:
    catalog\controller\product\product.php
    Ищем:
    $data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']);
    И после этой строки добавляем:
    $data['review_count'] = (int)$product_info['reviews'];
     

    Разметка свединий об организации:
    <div itemscope itemtype="http://schema.org/Organization">
      <span itemprop="name">Сюда вставляем название организации</span> © 2011-2015 <br/>
        <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        Адрес:
        <span itemprop="streetAddress">Указываем улицу и номер дома</span>
        <span itemprop="addressLocality">Указываем город</span>, <span itemprop="postalCode">Вписываем почтовый индекс</span>
      </div>
      Телефоны:<span itemprop="telephone">Телефон №1</span>, <span itemprop="telephone">Телефон №2</span>,<br/>
      Электронная почта: <span itemprop="email">Вписываем e-mail</span> <br/>
    </div>
     
    Этот код вставляете в любое место на сайте, я это сделал в шаблоне контакты. Всё индексируется и отображается.
     
    Делал на стандартном шаблоне.
  6. Upvote
    Pelmen изменил репутацию Adems в Микроразметка "рейтинг товаров"   
    Есть пару изменений касательно разметки Цена товара:
     
    В связи с предупреждением о неверном формате цена. Необходимо вывести еще одно значение цены без указания валюты и размечать его:
     
    В файле catalog\controller\product\product.php
    Ищем: $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
     
    После добавляем новую переменную без указания валюты:
    $data['price_int'] = ($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
     
    И выводим её с разметкой в шаблоне товара после <h2 class="page-product"><?php echo $price; ?></h2> (старую разметку убираем).
    Выглядеть блок с разметкой цены будет так:
    <li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
          <h2 class="page-product"><?php echo $price; ?></h2>
          <span itemprop="priceCurrency" content="UAH"><meta itemprop="price" content="<?php echo $price_int; ?>" /></span>
    </li>
     
    Тоже делаем с товарами по акционной цене (этот момент был упущен).
    В файле catalog\controller\product\product.php
    После:
    $data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
     
    Добавляем:
    $data['special_int'] = ($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
     
    И выводим в шаблоне товара, выглядеть будет так:
    <li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <h2 class="page-product"><?php echo $special; ?></h2>
        <span itemprop="priceCurrency" content="UAH"><meta itemprop="price" content="<?php echo $special_int; ?>" /></span>
     </li>
     
    Разметка полностью валидна, без ошибок и предупреждений, индексируется, проверил.
     
     
    Не забудьте о content="UAH" для рубля это content="RUB"
  7. Upvote
    Pelmen изменил репутацию Fedka в Как сделать вывод у товаров в наличии   
    Я у себя на сайтах вывожу после проверки
    <?php if ($price) { ?> Имеет вид, примерно:
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <span itemprop="price" content="1000.00">1,000.00</span> <span itemprop="priceCurrency" content="UAH">ГРН.-</span> <link itemprop="availability" href="http://schema.org/InStock" /> </div>  
  8. Downvote
    Pelmen изменил репутацию RHCk в Состояние на складе   
    Что-то не то у вас с товаром происходит. Скоропорт?)
  9. Upvote
    Pelmen изменил репутацию admin в Оплата и оповещение   
    в контроллер заказа и в контроллер модуля смсок загляните в принципе туда это можно добавить
    подробней можно тут увидеть все что было затронуто для смс
    https://github.com/ocshop/ocshop/commit/064756c61e50754e2d1affdc9557627fffaf8015
  10. Upvote
    Pelmen изменил репутацию admin в Замена иконки корзины   
    конечно проще :-) можно еще и свой фонт авесом написать :-)
    но если серьезно из разряда попробовать
    смотрите стиль фонт авесома найдите там корзину и переназначьте ему стиль от нужной
  11. Upvote
    Pelmen получил репутацию от admin в По кнопке "купить" добавлять товар в корзину и сразу переходить в оформление заказа.   
    В общем, добавил переход по ссылке через
    location.href = 'index.php?route=checkout/simplecheckout&group=1';
  12. Upvote
    Pelmen изменил репутацию admin в Релиз OPENCART.CMS 2.1.0.2   
    Релиз OPENCART 2.1.0.2.1
    История изменения версий

    В версии CMS и PRO
     
    Новое:
    Макеты в производителях Улучшен фильтр в административной части Исправления:
    Мелкие правки перевода Правки макетов блога Мелкие правки шаблона блога Правки поиска в административной части Правки кэш менеджера и другие  
    В сборке все файлы уже исправлены но для упрощения обновления можно использовать архив с обновлением данного релиза.


    Все купившие OPENCART.PRO могут получить Бесплатные обновления на http://liveopencart.ru/

    Для новых покупателей цена остается прежней и составляет 750 рублей.

    Как обновиться?
    В обоих версиях есть архивы update_pro_2_1_0_2.1.zip и update_cms_2_1_0_2.1.zip
    1. Делаем Бэкап файлов и базы данных
    2. Заливаем все из архива update_pro_2_1_0_2.1.zip или update_cms_2_1_0_2.1.zip
    3. Переходим http://site.com/install и выполняем обновление
     
    Для тех у кого установлен vqmod:
     
    1. Если Вы меняете index.php между обновлениями не забудьте сделать БЕКАП перед очередным обновлением, как правило в этом файле меняется только версия, сравните этот файл из архива обновления с вашим текущим
    2. Если у вас работает VQMOD, встраивающийся в index.php, перед обновлением временно отключите его, переименовав файл vqmod/xml/vqmod_opencart.xml, например, в такой vqmod/xml/vqmod_opencart._xml_
    3. После обновления верните ваши изменения index.php (включая строки vqmod'а, если были) и переименуйте файл vqmod/xml/vqmod_opencart._xml_ обратно в vqmod/xml/vqmod_opencart.xml
     
    ВНИМАНИЕ!!!
    В следующий релиз войдет модуль "Турбо" и сборка подорожает до 1000 рублей, соответственно рекомендуем тем кто планирует приобретение сделать это сейчас, тем кому нужны дополнительные лицензии не забывать про имеющуюся у вас скидку на следующие покупки.
  13. Upvote
    Pelmen изменил репутацию savage4pro в Изображение опций в каталоге товаров + другие вопросы   
    http://www.opencart.com/index.php?extension_id=7959&route=extension/extension/info
    http://www.opencart.com/index.php?route=extension/extension/info&extension_id=11581
     
     
    на языке по умолчанию
    если языков несколько и они должны быть в ПС, делайте мультимагазин, для каждого языка свой домен
  14. Downvote
    Pelmen изменил репутацию sergm87 в интеграция с 1С   
    товары выгружаются но некорректно -  у некоторых количество  0 и цена 0. хотя в выгрузке есть и цена количество. Часть товаров выгружается корректно
  15. Upvote
    Pelmen изменил репутацию Vlad00071 в интеграция с 1С   
    Разговор не о чём.
    Логи ошибок где??? Какая 1с конфигурация ,какой движок версия?
    Да и в обще тема не к этому форуму. Есть конкретно модуль выгрузки , тема поддержки ... все вопросы туда.
  16. Upvote
    Pelmen изменил репутацию savage4pro в Произвольные ссылки в дизайн-меню   
    указывать вместе с доменным именем сайта, что не всегда приемлимо
     
    с произвольными ссылками в меню пока, к сожалению, все не совсем так, как хотелось бы

    поэтому временно (до выхода обновления по меню) для себя решил данную задачу изменением шаблона, в котором оно выводится
    например, в дефолтном шаблоне оно выводится в /catalog/view/theme/default/template/common/header.tpl
    мое решение такое
    заменить
    <?php foreach ($categories as $category) { ?> <?php if ($category['children']) { ?> <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a> <div class="dropdown-menu"> <div class="dropdown-inner"> <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?> <ul class="list-unstyled"> <?php foreach ($children as $child) { ?> <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </div> <a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div> </li> <?php } else { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> <?php } ?>на
    <?php foreach ($categories as $category) { ?> <?php $showHref = false; $tmpHref = explode('index.php?route=', $category['href']); if (isset($tmpHref[1]) && !empty($tmpHref[1])) { $showHref = true; if (substr($tmpHref[1], 0,1)=='/') { $category['href'] = $tmpHref[1]; } } else if (isset($tmpHref[0])) { $tmpHrefPath = str_replace('/', '', parse_url($tmpHref[0],PHP_URL_PATH)); if (!empty($tmpHrefPath)) { $showHref = true; $category['href'] = $tmpHref[0]; } unset($tmpHrefPath); } $category['href'] = html_entity_decode($category['href']); ?> <?php if ($category['children']) { ?> <li class="dropdown"><a href="<?php echo ($showHref)?$category['href']:''; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a> <div class="dropdown-menu"> <div class="dropdown-inner"> <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?> <ul class="list-unstyled"> <?php foreach ($children as $child) { ?> <?php $showHrefChild = false; $tmpHrefChild = explode('index.php?route=', $child['href']); if (isset($tmpHrefChild[1]) && !empty($tmpHrefChild[1])) { $showHrefChild = true; if (substr($tmpHrefChild[1], 0,1)=='/') { $child['href'] = $tmpHrefChild[1]; } } else if (isset($tmpHrefChild[0])) { $tmpHrefChildPath = str_replace('/', '', parse_url($tmpHrefChild[0],PHP_URL_PATH)); if (!empty($tmpHrefChildPath)) { $showHrefChild = true; $child['href'] = $tmpHrefChild[0]; } unset($tmpHrefChildPath); } $child['href'] = html_entity_decode($child['href']); ?> <li><a href="<?php echo ($showHrefChild)?$child['href']:''; ?>"><?php echo $child['name']; ?></a></li> <?php unset($tmpHrefChild); unset($showHrefChild); ?> <?php } ?> <?php if ($showHref) { ?> <li role="separator" class="divider"></li> <li><a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </div> </div> </li> <?php } else { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> <?php unset($tmpHref); unset($showHref); ?> <?php } ?>после этого можно использовать произвольные ссылки в меню в более удобоваримом виде, т.е. добавлять как сео-ссылки типа "/auto" (такие ссылки должны начинаться на слэш), так и относительные типа "product/product&path=20&product_id=35" (они будут в итоге слеплены со стандартным началом: "сайт.ру/index.php?route=", или сразу можно в полном виде добавлять)
     
    но если где-то еще меню выводить, то либо надо и там похожую канитель выписывать, либо решать уже по-человечески - правкой контроллера
     
    ах да, чуть не забыл, при такой замене кода шаблона, можно вообще ссылки не указывать для верхних пунктов меню, в этом случае они будут работать как табы и после дочерних пунктов также не будет пункта "Смотреть Все ..."
    и там же немного изменен вывод этого пункта, в виде более логичном - как продолжение списка, вместо имеющегося по дефолту прекращения списка и расположения ссылки следующим после него элементом, правда, вероятно, стили несколько покосятся, и придется вам либо вернуть этот кусочек на дефолтный, либо поправить стили, не уверен, у меня просто стили по ходу пишутся, поэтому сходу сказать, что в css надо для этого менять, а что нет, не смогу
  17. Upvote
    Pelmen изменил репутацию savage4pro в Произвольные ссылки в дизайн-меню   
    Версия 2.1.0.1.2
     
    Дизайн -> Меню
    добавление "Произвольных ссылок" приводит к небольшому вороху ошибок
    в итоге js-ом создается пункт, который можно, конечно, редактировать и уже сохранить, но это как-то неправильно
     
     
     
    при этом создается новая запись menu_id в таблице menu, но не добавляется запись в таблицу menu_description
    метод add класса ModelDesignMenu, по всей видимости писали разные люди, или один, но с перерывом на какое-нибудь радостное событие
     
    вариант решения
    /admin/model/design/menu.php:77-82
    заменить
    $query = new stdClass(); $query->rows = array(); foreach ($languages as $language) { $query->rows[] = array('name' => $data['name'], 'language_id' => $language['language_id']); }на
                $data['menu_desc'] = array();            foreach ($languages as $language) {                $data['menu_desc'][] = array('name' => $data['name'], 'language_id' => $language['language_id']);            }