• Как настроить канонические URL Opencart?

    opencartbot
    @opencartbot
    OpenCart web developer
    Откройте файл catalog\controller\product\category.php
    найдите там строку
    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical');

    замените ее на это
    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical');

    После этого обновить кеш модификаторов в админке.
    Ответ написан
    Комментировать
  • Как вставить тег в head по условию в контроллере категории?

    opencartbot
    @opencartbot
    OpenCart web developer
    Нужно сделать комплекс доработок.
    В файле system/library/document.php
    добавить обработчики:
    private $myTag = array();
    public function addMyTag($var) {
    	$this->myTag[] = $var;
    }
    public function getMyTag() {
    	return $this->myTag;
    }

    В файле catalog/controller/common/header.php добавить получение данных:
    $data['myTag'] = $this->document->getMyTag();
    В файле catalog/view/theme/*/template/common/header.twig
    в нужное место в блоке head добавить вывод html-кода:
    {% for tag in myTag  %}
    {{ 'любой ваш html код или переменная '~tag }}
    {% endfor %}

    Теперь из контроллера категории можно передавать данные в head этой строкой:
    $this->document->addMyTag($var);
    Ответ написан
    Комментировать
  • Настройка SMTP OpenCart?

    opencartbot
    @opencartbot
    OpenCart web developer
    В папке /catalog/controller/mail/
    в каждом из файлов нужно подставить свой email в строке:
    $mail->setFrom($this->config->get('config_email'));

    Пример:
    $mail->setFrom('shop@mail.com');

    Или оформить эту замену ocmod-модификатором, а нужный email прописать в какое-тот свободное поле из настроек магазина и оттуда получать его.
    Ответ написан
    Комментировать
  • Как изменить url html sitemap opencart 3?

    opencartbot
    @opencartbot
    OpenCart web developer
    Очень просто. Откройте в админке раздел Дизайн : SEO URL и добавьте там новую запись:
    в поле Запрос: information/sitemap
    в поле Ключ: sitemap
    Ответ написан
    Комментировать
  • Open cart не работает нормально после переноса сайта что делать?

    opencartbot
    @opencartbot
    OpenCart web developer
    Что-то вы уже намутили в конфигах, однозначно.
    Восстановите конфиги с оригинальной сборки. Пропишите правильно адрес сайта. Если у вас сайт на https, то абсолютно все ссылки на сайт в конфигах должны быть c https и должны заканчиваться слешем.
    Проверьте таблицу oc_setting в базе данных, а именно значения, где key = config_url и config_ssl, там должен быть прописан адрес сайта и он должен заканчиваться слешем, например https://site.com/
    Ответ написан
  • Как в opencart изменить содержимое content_top и content_bottom?

    opencartbot
    @opencartbot
    OpenCart web developer
    Посмотрите в админке раздел Дизайн -> Макеты (иногда Схемы), там для каждого роута можно добавлять модули в позиции: content_top, content_bottom и т.д.
    Если вам нужно где-то вывести свой html-код, в разделе Модули/Расширения нужно включить модуль "Текстовый блок - HTML" и добавить туда содержимое. После этого вывести этот модуль в нужный макет и позицию через Дизайн -> Макеты.
    Ответ написан
    Комментировать
  • Почему генерируются страницы "?page=" со знаком минус?

    opencartbot
    @opencartbot
    OpenCart web developer
    Здравствуйте. Есть такое, решается напильником в контроллере.
    Например, для категорий в catalog/controller/product/category.php
    примерно перед строкой:
    $data['heading_title'] = $category_info['name'];
    добавить проверку номера страницы и редирект на первую страницу категории:
    if ($page < 1) {
    	$this->response->redirect($this->url->link('product/category', 'path=' . $category_info['category_id']));
    }
    Ответ написан
    Комментировать
  • Как сделать sitemap в opencart?

    opencartbot
    @opencartbot
    OpenCart web developer
    Модуль Мультиязычная карта сайта XML OpenCart 3 позволяет на выбор генерировать динамичный или статичный sitemap для большого количества товаров. Также модуль позволяет добавлять любые ссылки в карту; управлять параметрами ссылок, такими как приоритет, частота изменений и т.д. И само собой генерирует правильную мультиязычную карту сайта.
    Ответ написан
    Комментировать
  • Как осуществить поиск по масиву, Взять ключ с переменной и найти масив с таким ключем и вывести только его на экран?

    opencartbot
    @opencartbot
    OpenCart web developer
    Если правильно понял ваш вопрос, тогда так:
    $order_id = 96;
    
    $bd = mysqli_connect("localhost", "111", "222", "333");
    $sql = mysqli_query($bd, "SELECT * FROM oc_order_product") or die(mysqli_error());
    
    foreach ($sql->rows as $elem) {
    	if ($elem['order_id'] == $order_id) {
    		print_r($elem);
    	}
    }

    Можно еще добавить break внутри цикла, чтобы прерывать цикл, когда будет найдено первое совпадение. Так как, если в заказе было несколько товаров, то в этой выборке вы получите несколько массивов, для каждого товара в заказе.
    Ответ написан
    2 комментария
  • Как в opencart 3 перенести подкатегории снизу категорий?

    opencartbot
    @opencartbot
    OpenCart web developer
    Переместите этот код:
    {% if categories %}
    
          {% if categories|length <= 5 %}
          <div class="row">
            <div class="col-sm-3">
              <ul>
                {% for category in categories %}
                <li><a href="{{ category.href }}">{{ category.name }}</a></li>
                {% endfor %}
              </ul>
                   
            </div>
      {% else %}
    
       
            <div class="col-sm-3">{% for category in categories|batch((categories|length / 1)|round(1, 'ceil')) %}
              <ul>
                {% for child in category %}
                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                {% endfor %}
              </ul>
            </div>
            {% endfor %}</div>
          <br />
          {% endif %}
          {% endif %}

    Вставьте его перед строкой:
    {% if not categories and not products %}
    И не забудьте обновить кеш модификаторов и кеш twig, это можно сделать в админ части.
    Ответ написан
    Комментировать
  • Как задать класс body в opencart 3?

    opencartbot
    @opencartbot
    OpenCart web developer
    В контроллере common/header.php добавить формирование названия класса:
    if (isset($this->request->get['route'])) {
    			if (isset($this->request->get['product_id'])) {
    				$class = '-' . $this->request->get['product_id'];
    			} elseif (isset($this->request->get['path'])) {
    				$class = '-' . $this->request->get['path'];
    			} elseif (isset($this->request->get['manufacturer_id'])) {
    				$class = '-' . $this->request->get['manufacturer_id'];
    			} elseif (isset($this->request->get['information_id'])) {
    				$class = '-' . $this->request->get['information_id'];
    			} else {
    				$class = '';
    			}
    
    			$data['class'] = str_replace('/', '-', $this->request->get['route']) . $class;
    		} else {
    			$data['class'] = 'common-home';
    		}

    Теперь в шаблоне common/header.twig можно дописать в body вывод класса:
    <body{% if class %} class="{{ class }}"{% endif %}>
    Ответ написан
    Комментировать
  • Мультиязычный сайт + SEO URL и правильное их формирование?

    opencartbot
    @opencartbot
    OpenCart web developer
    Все три проблемы на OpenCart решают эти два модуля:
    1. SEO Pro - формирует ЧПУ, убирает дубли, правильно формирует хлебные крошки. Этот модуль бесплатный.
    2. Мультиязык для SEO Pro - добавляет языковые префиксы в URL, позволяет прописывать одинаковые SEO URL для разных языков (URL будут отличаться только языковым префиксом), добавляет возможность переключения языка переходом по ссылке, добавляет hreflang. Подробнее об этом модуле можно узнать по ссылке https://opencartbot.com/ru/seopro-multilang
    Ответ написан
    Комментировать
  • Куда вставить код чтобы применить его по всему сайту?

    opencartbot
    @opencartbot
    OpenCart web developer
    Если нужно добавить что-то на всех страницах, тогда работайте в контроллере:
    common/header
    или
    common/footer
    Ответ написан
    Комментировать
  • Opencart не показывает изображение по ссылке. Как исправить?

    opencartbot
    @opencartbot
    OpenCart web developer
    После того, как добавили нужный код в поле нужно отключить режим CodeView и тогда сохранять.
    Ответ написан
    Комментировать
  • Как добавить часть ссылки после Токена?

    opencartbot
    @opencartbot
    OpenCart web developer
    Вот так:
    'href'     => $this->url->link('catalog/category', 'user_token=' . $this->session->data['user_token'] . '/bla-bla-bla', true),

    Но если вы так сделаете, добавите слеш как разделитель, тогда после перехода по такой ссылке будет разлогиниваться пользователь админки, потому что все что вы добавили пристыковано к get- переменной user_token, соответственно проверка токена не найдет такого значения в сессии.
    Правильно все же сделать так:
    'href'     => $this->url->link('catalog/category', 'user_token=' . $this->session->data['user_token'] . '&foo=bar', true),
    Ответ написан
    Комментировать
  • Как сделать платный доступ к страницам в opencart? Или виртуальные временные товары?

    opencartbot
    @opencartbot
    OpenCart web developer
    У нас есть модуль Продажа ссылок на OpenCart 3
    Ответ написан
    Комментировать
  • Как вывести модуль на странице товара OpenCart 3.0.3.2?

    opencartbot
    @opencartbot
    OpenCart web developer
    Можно передавать данные в контроллер:
    $data['my_module'] = $this->load->controller('extension/module/scrfaq', array('foo'=>'bar',  'foo2'=>'bar2'));
    Ответ написан
    Комментировать
  • Как вывести в Статье количество товаров отсортированных в категории?

    opencartbot
    @opencartbot
    OpenCart web developer
    Вам нужно вывести в статье именно количество товаров подходящих под определенный фильтр? Тогда придется написать выборку SELECT COUNT(), вызывать ее в контроллера и передавать значение в макет.
    Если же вам нужно в статье вывести товары из конкретной категории с определенной сортировкой, тогда можете посмотреть модуль Товары из категории для OpenCart 3.
    Ответ написан
    Комментировать
  • Как сделать постоянный товар в корзине Opencart?

    opencartbot
    @opencartbot
    OpenCart web developer
    В шаблоне Simple добавить что-то типа:
    <button onclick="cart.add(99)">Добавить расширенную страховку</button>

    Можно через код или модулем HTML.
    Ответ написан
    5 комментариев
  • Как в ocstore отобразить описание категории на странице категории?

    opencartbot
    @opencartbot
    OpenCart web developer
    За вывод описания категории отвечает код:
    {{ description }}
    Если в шаблоне product/category.twig такого кода нет - добавьте, а затем обновите кеш модификаторов и кеш twig.
    Ответ написан
    Комментировать