Лидеры
Популярный контент
Показан контент с высокой репутацией за 12.09.2024 в Сообщения
-
67к товаров, 26к связей в hpmodel_links, 2.5к отзывов, вызов getProduct() занимает около 70мс и если на странице в модулях набирается больше 10 товаров получается довольно большая задержка. Удалось ускорить работу метода в 10-15 раз заменив 2 подзапроса к review на один и немного оптимизировав его: --- z_hpm14.ocmod.xml~070725 2025-02-12 14:38:04.067381375 +0300 +++ z_hpm14.ocmod.xml 2025-07-07 08:51:32.842664104 +0300 @@ -169,11 +169,15 @@ </operation> <operation error="skip"> <search index="0"><![CDATA[(SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating]]></search> - <add position="replace"><![CDATA[(SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 LEFT JOIN " . DB_PREFIX . "hpmodel_links hpl ON (r1.product_id = hpl.product_id OR r1.product_id = hpl.parent_id) WHERE (" . ($parent_id !== false ? "hpl.parent_id = '" . (int)$parent_id . "'" : "r1.product_id = p.product_id") . ") AND r1.status = '1' GROUP BY " . ($parent_id !== false ? "hpl.parent_id" : "r1.product_id") . ") AS rating]]></add> + <add position="replace"><![CDATA[(SELECT CONCAT(AVG(rating),';',COUNT(review_id)) FROM " . DB_PREFIX . "review r1" . ($parent_id !== false ? " LEFT JOIN " . DB_PREFIX . "hpmodel_links hpl ON (r1.product_id = hpl.product_id)" : "") . " WHERE r1.product_id = p.product_id" . ($parent_id !== false ? " OR hpl.parent_id = '" . (int)$parent_id . "'" : "") . " AND r1.status = '1' GROUP BY " . ($parent_id !== false ? "hpl.parent_id" : "r1.product_id") . ") AS rating]]></add> </operation> <operation error="skip"> <search index="0"><![CDATA[(SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews]]></search> - <add position="replace"><![CDATA[(SELECT COUNT(DISTINCT review_id) AS total FROM " . DB_PREFIX . "review r2 LEFT JOIN " . DB_PREFIX . "hpmodel_links hpl ON (r2.product_id = hpl.product_id OR r2.product_id = hpl.parent_id) WHERE (" . ($parent_id !== false ? "hpl.parent_id = '" . (int)$parent_id . "'" : "r2.product_id = p.product_id") . ") AND r2.status = '1' GROUP BY " . ($parent_id !== false ? "hpl.parent_id" : "r2.product_id") . ") AS reviews]]></add> + <add><![CDATA[NULL]]></add> + </operation> + <operation error="skip"> + <search index="0"><![CDATA[=> $query->row['reviews'] ? $query->row['reviews'] : 0,]]></search> + <add><![CDATA[=> $query->row['rating'] ? explode(';', $query->row['rating'])[1] : 0,]]></add> </operation> </file>4 балла
-
В самом начале кода контроллера ЧПУ есть пример для такой реализации: https://github.com/mpn2005/ocClub3/blob/ocClub3/upload/catalog/controller/startup/seo_url.php4 балла
-
https://github.com/mpn2005/ocClub3/commit/1300040f6ff5ccfe95a4d0c8cceb4ef36a892791 если в искомой фразе есть хотя бы одна-две цифры, что нередко бывает в емейлах, то находит сотни, тысячи лишних покупателей, где в номере телефона есть такая цифра. можно не искать по телефону, если в искомой фразе есть символ @. в этом случае юзер точно хочет искать только по емейлу4 балла
-
В схожей ситуации , данное решение предложил сам хостер. Сразу после RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) добавить RewriteRule ^([^?]*) index.php?_route_=$1 [B,L,QSA,UnsafeAllow3F] Ну и как вариант от меня (так же нужно проверять). # Преобразование UTM-меток от Яндекс.Товаров RewriteCond %{QUERY_STRING} utm_referrer=https%3A%2F%2Fyandex\.ru%2Fproducts(.*) RewriteRule ^(.*)$ $1?utm_source=yandex&utm_medium=products [R=301,L] Применяет UnsafeAllow3F только для трафика с Яндекс. Сохраняет UTM-метки в исходном виде Не создает дополнительных редиректов Минимально влияет на существующую логику работы сайта4 балла
-
похоже просто закэшировалось в системном кэше для его сброса подключитесь по FTP к папке storage своего магазина и в ваша_папка_storage/cache удалите все файлы начинающиеся на caсhe. (ничего другого удалять не нужно!)3 балла
-
прислал заказчик инфу, что при переходе на сайт по ссылке с Яндекс.товаров сайт отдает 403 ошибку. общение с хостером ничего не дало, начал выяснять в чем тут дело. в url добавляется utm метка utm_referrer=https://yandex.ru/products/search?text=текст на сервак естественно приходит перекодированный вариант вида https://domain/path-to-product?utm_referrer=https%3A%2F%2Fyandex.ru%2Fproducts%2Fsearch%3Ftext%3D%D1%82%D0%B5%D0%BA%D1%81%D1%82 методом проб выяснил что если заменить %3F на что-то другое, то сайт вполне работает. похоже, что обновление безопасности апача запретило использовать hex-перекодированный символ "?" в "%3F" в url. наткнулся на такое обсуждение https://stackoverflow.com/questions/78729429/403-forbidden-when-url-contains-get-with-encoded-question-mark-unsafeallow3f заменил в .htaccess строку RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] на RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA,UnsafeAllow3F] работать то работает, но интересно насколько это безопасно и есть ли другие решения, учитывая что и php'шный urlencode и js'овский encodeURIComponent по-прежнему кодируют этот символ в %3F3 балла
-
в поле ean 14 символов отведено в базе. зайдите в phpmyadmin, кликните на таблицу oc_product, далее на вкладку Структура. отредактируйте поле ean и впишите число побольше3 балла
-
Идея хорошая. Реализация не очень. Ни в коем случае нельзя заменять какие либо системные файлы. В данном случае вы могли файл назвать extension_new.twig Запаковать архив в ocmod ( tab_for_ext_oc3x.ocmod.zip ) Ну и добавить модификатор install.xml который бы просто подменил путь до шаблона <?xml version="1.0" encoding="utf-8"?> <modification> <name>Tab for Ext</name> <code>Tab for Ext</code> <version>1.0</version> <author>freeworld</author> <link>Tab for Ext</link> <file path="admin/controller/marketplace/extension.php"> <operation> <search><![CDATA[$this->response->setOutput($this->load->view('marketplace/extension', $data));]]></search> <add position="replace"><![CDATA[$this->response->setOutput($this->load->view('marketplace/extension_new', $data));]]></add> </operation> </file> </modification> Получаете безопасную установку/удаление через админку. Не затрагиваете системные файлы.3 балла
-
/system/library/language.php $this->data = array_pop($this->backup); заменить на $this->data = array_merge($this->data, array_pop($this->backup));3 балла
-
Модификатор для украшения к Новому Году. Рекомендую не забывать, что удалять их нужно, раньше чем выкидывать в мае ёлку. Установка через админку : 1. Дополнения-Установка дополнений. 2. После чего обязательно обновить кэш модификаторов (дополнения-менеджер дополнений), синяя круглая иконка справа вверху. "Новогодняя мотня от Яндекс" - выводит в шапке новогодние шарики-игрушки, при проведении по ним мышкой издаёт звуки. Тот же эффект при нажатии кнопок на клавиатуре. В мобильной версии скрыто (<div class="b-page_newyear hidden-sm hidden-xs">) NewYear2025.ocmod.zip3 балла
-
в /catalog/controller/checkout/simplecheckout_cart.php после 'model' => $product['model'], добавьте 'isbn' => $product_info['isbn'], в /catalog/view/theme/default/template/checkout/simplecheckout_cart.twig замените {{ product['model'] }} на {{ product['isbn'] }} обновить модификаторы2 балла
-
Например https://opencart.club/files/file/30-hyper-product-models-ajax-zamena-tovara-po-modelyam/ Обычно картинки это отдельные артикулы товара.2 балла
-
Приветствую, это предложил автор данного модуля, дает возможность редактировать данные непосредственно в Batch Editor Для этого в настройках модуля вкладка Связи добавьте новую и выберите таблицу hpmodel_links2 балла
-
Такие решения есть, только толку от них нет. Товары хорошо так заполнять, но вот производителей и категории лучше ручками проработать. Просто поверьте наслово)2 балла
-
если собираетесь делать магазин на Opencart - значит нужно изучить движок как минимум на уровне пользователя либо нанять кого-то, кто у вас будет этим заниматься2 балла
-
Нет, поначалу начал писать автору HYPER Multi Product Models в личку, но тот попросил писать по вопросам модуля в этот форум поддержки, на форуме, конечно, тоже тишина. Модуль HYPER Multi Product Models ложит сайт на Просторе на раз-два, в первые минуты настройки. Простор недавно обновился до версии 1.3.1, а файлы адаптации скорее всего для более ранних версий. По отзывам 22 и 23 годах для дополнения HYPER Multi Product Models была хорошая и быстрая поддержка, сейчас поддержки нет. 10 тыс руб в пролете :)2 балла
-
Да, как сказано выше, в базе данных увеличьте количество символов, к примеру до 128 байт2 балла
-
NewsBlog - неограниченное количество категорий со статьями Добавил netruxa Добавлено 04.02.2025 Категория Блоги, Новости, Статьи Просмотр файла2 балла
-
мой вопрос снимается. установлен FilterVier. для совместимости нужно установить галку fix hyper_product_models в настройках фильтра2 балла
-
Спасибо за помощь нашел у себя какой то модуль Изображений для категорий переделал и сделал модуль с выводом как баннера одно так и сделать слайдер category_banner_3.x.ocmod.zip2 балла
-
В опенкарт любой версии полно неиспользуемых полей. Берите любое , например mpn и замените в админке вывод текстового инпута на переключатель Да-Нет. <?xml version="1.0" encoding="UTF-8"?> <modification> <name>Change MPN to Yes-No and Display in Frontend</name> <code>change_mpn_to_yes_no_and_display</code> <version>1.0</version> <author>Tom</author> <link>https://www.yoursite.com</link> <file path="admin/view/template/catalog/product_form.twig"> <operation> <search><![CDATA[<input type="text" name="mpn" value="{{ mpn }}" placeholder="{{ entry_mpn }}" id="input-mpn" class="form-control"/>]]></search> <add position="replace"><![CDATA[ <select name="mpn" id="input-mpn" class="form-control"> <option value="1" {{ mpn == '1' ? 'selected' : '' }}>Да</option> <option value="0" {{ mpn == '0' ? 'selected' : '' }}>Нет</option> </select> ]]></add> </operation> </file> <file path="catalog/controller/product/product.php"> <operation> <search><![CDATA[$data['points'] = $product_info['points'];]]></search> <add position="after"><![CDATA[$data['mpn'] = $product_info['mpn'];]]></add> </operation> </file> <file path="catalog/view/theme/default/template/product/product.twig"> <operation> <search><![CDATA[{% if price %}]]></search> <add position="before"><![CDATA[ {% if mpn == '1' %} <div class="product-mpn-enabled"> <!-- Контент для активации MPN --> <p>Этот блок включен для данного товара.</p> </div> {% elseif mpn == '0' %} <div class="product-mpn-disabled"> <!-- Контент для деактивации MPN --> <p>Этот блок отключен для данного товара.</p> </div> {% endif %} ]]></add> </operation> </file> </modification> Нет возможности использовать mpn, заменяйте на любое иное существующее значение типа jan, isbn, upc, location2 балла
-
В разделе связи у Вас выбраны нужные категории-производители? Обратите внимание, что первая связка не должна пересекаться по категориям связи со второй.2 балла
-
Сделайте ПР и будет быстрее. Всё это развивается в свободное от работы время. А вы проверили актуальный код, перед написанием ишью? Странный подход, что кто-то должен перепроверять, отвечать, делать ещё и быстро.2 балла
-
только что запускали такой проект. клубная сборка последняя версия с гитхаба + unishop2 3.0.2.0 полет нормальный2 балла
-
В тройке можно немного попроще. catalog/view/theme/default/template/product/product.twig Найти весь блок картинок {% if thumb or images %} <ul class="thumbnails"> {% if thumb %} <li><a class="thumbnail" href="{{ popup }}" title="{{ heading_title }}"><img src="{{ thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /></a></li> {% endif %} {% if images %} {% for image in images %} <li class="image-additional"><a class="thumbnail" href="{{ image.popup }}" title="{{ heading_title }}"> <img src="{{ image.thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /></a></li> {% endfor %} {% endif %} </ul> {% endif %} И заменить со списка ul-li частично на блоки col. Что то типа <div class="row thumbnails"> {% if images %} <div class="col-sm-2"> <ul class="thumbnails-list"> {% for image in images %} <li> <a class="thumbnail" href="{{ image.popup }}" title="{{ heading_title }}"> <img src="{{ image.thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /> </a> </li> {% endfor %} </ul> </div> {% endif %} <div class="{{ images ? 'col-sm-10' : 'col-sm-12' }}"> {% if thumb %} <a class="thumbnail main-image-container" href="{{ popup }}" title="{{ heading_title }}"> <img src="{{ thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" id="main-image" /> </a> {% endif %} </div> </div> Ну и перед {{ footer }} , так например <style> .thumbnails-list {list-style: none;padding: 0;margin: 0;overflow-y: auto;} .thumbnails li {margin-bottom: 10px;} </style> <script type="text/javascript"> $(document).ready(function() { var mainImageHeight = $('.main-image-container').height(); $('.thumbnails-list').height(mainImageHeight); }); </script>2 балла
-
Спросите ncv у него там много всякого, возможно уже есть решение, а возможно изобретет что-то под Вашу задачу2 балла
-
как вариант воткнуть патч но лучше вообще не использовать встроенный в админку редактор и вносить правки в файлы либо напрямую, либо, что более правильно - через модификаторы2 балла
-
Gray Images - Unishop2GrayImages Небольшой мод для товаров в категории. Если товара нет в наличии , то его изображение становится чёрно-белым. Unishop2GrayImages.zip2 балла
-
Помимо этого, если вы используете ПВЗ, вы можете отключить их самостоятельно в личном кабинете клиента на вкладке ПВЗ. Заходите в список на скрине и нажимаете на иконку глаза1 балл
-
Добрый день! Это можно сделать со стороны курьерской службы работающей на нашей системе. Для этого они должны ограничить виды срочности. Вы можете предложить им обратиться к нам в поддержку и мы подскажем как это настроить.1 балл
-
Файловый менеджер Scanapper Добавил q3dm0 Добавлено 05.05.2025 Категория Администрирование Просмотр файла1 балл
-
уже встроено свое решение читайте описание1 балл
-
Здравствуйте! Модуль установили и адаптировали (ocStore 3.0.3.7, шаблон "ПРОСТОР") - потребовалась адаптация, из коробки не стал. Но по итогу всё работает, вопросов нет. Можно брать. У меня вопрос к разработчику: Помогите разобраться, не работает мгновенная смена картинок товара в представлении Категориях при наведении курсором мишки. Только если нажать на картинку, происходит обновление. На Видео во вложении вначале показано как у вас работает на Демо сайте, затем как у нас (не работает). Благодарю!1 балл
-
Настроить правило в htaccess или nginx для переадресации с (имя сайта)/products/ и с (имя сайта)/catalog/ на (имя сайта)/ Сами товары и категории перенести с сохранением урлов и в настройках ОС (/admin/index.php?route=setting/setting -> ЧПУ) выбрать наиболее подходящее:1 балл
-
Хотел уже купить это дополнение, отговорили :) 2000 р за адаптацию вдруг не вопрос, но искать мальчиков с непонятной квалификацией и репутацией за неизвестные деньги с неизвестным результатом в виде бэкдоров...не интересно Модулей уже много куплено, но разработчик всегда помогает доработать изобретение, а в данном случае это как купить новое авто в салоне без гарантии и сервиса и идти в гараж1 балл
-
Подскажите, а как можно реализовать плоскую структуру категорий? Имеется ли модуль для сборки опенкарт клуб?1 балл
-
Оплата через YooMoney (ЮMoney) Добавил Safonov Добавлено 24.02.2025 Категория Платежные системы Просмотр файла1 балл
-
Характеристики/атрибуты для категорий и в каталоге OC3 Добавил Blast Добавлено 21.02.2025 Категория Атрибуты товара Просмотр файла1 балл
-
Таки там надо присваивать в (если не ошибаюсь) $this->_templateData ну и название "cart_total" смени т.к. оно уже используется1 балл
-
Подскажите пожалуйста, как в итогах изменить стоимость бесплатной доставки в итогах, на "Бесплатно", аналогично с самовывозом. Сейчас выводится 0 руб. Пробовал использовать филтерит, но он меняет только в Способах доставки (создал свои способы).1 балл
-
https://github.com/OpenCart-Club/opencart/commit/3d850029bfe3c9003c3f4f94cfef64907b727fcc целью коммита была оптимизация использования памяти из-за вложенных элементов массива backup. Но зацепило и встроенную возможность по использованию языковых переменных в родительских контроллерах. Мне кажется, что это исправление бага, разработчики модулей вполне вправе ориентироваться на механизм чистого опенкарта. по версии сборки присоединяюсь к вопросу1 балл
-
Здравствуйте! Да, добавьте в настройки шаблона, вкладка "Для разработчиков", следующий css код:1 балл
-
Разобрался <file path="catalog/controller/extension/module/hpmodel/hpmodel.php"> <operation error="skip"> <!-- возможность прописать главному товару произвольное "виртуальное" название, которое бы отображалось в категории --> <search><![CDATA[$data['product_id'] = $product_info['product_id'];]]></search> <add position="before"><![CDATA[ if ($product_info['product_id'] == $parent['parent_id'] && !empty($product_info['meta_keyword'])) { $product_info['name'] = $product_info['meta_keyword']; } ]]></add> </operation> </file>1 балл
-
Дополнения / Дополнения / Темы. Отредактировать тему, поле "Размер изображения в корзине"1 балл
-
Вот тут https://opencart.club/files/category/81-mobilnye-prilozheniya/1 балл
-
Грубо говоря делаешь фильтр с нужными настройками фильтрации и делаешь отдельный макет для категории, для категории во вкладке Дизайн ставишь этот макет и там будет выводиться нужный фильтр. Примерно такая логика.1 балл
-
Добрый день. Смотрите на очерёдность применения модулей Итого. Модуль должен находится после промежуточного итога, но до общего итога.1 балл
-
Там есть настройка, которая включает автоматический выбор первой доступной доставки.1 балл
-
Делал как то по просьбе. Смысл задачи был такой. Выводим в карточке товара во вкладках статьи (Каталог - Статьи). В качестве названия вкладки Заголовок статьи, ну и содержимое это Описание статьи. При чём без привязки к конкретной статье , как в примере ТС. Добавил просто чекбокс "Показать в товаре", аналог "Отображать в футере". Отмечаем чекбокс и статьи выводятся в товаре в любом количестве. Так мне кажется логичнее и удобнее. Статьи во Вкладках.ocmod.xml1 балл
-
Файлы для скачивания в статьях Блога Unishop2 - DownloadableFilesUnishop2News Небольшой мод для Блога Unishop2, позволяющая добавить к статьям Блога файлы для скачивания. Установка : 1.Перейти в раздел Расширения - Установка расширений (Дополнения - Установка дополнений). 2.Установить модуль DownloadableFilesUnishop2News.ocmod.zip 3. Перейти в раздел Расширения - Расширения (Дополнения - Дополнения) 4. Установить модуль UniShop2 - Файлы для скачивания в статьях Блога. 5. Перейти в раздел модификаторов и обновить кеш модификаторов (синяя иконка справа вверху). Готово. При не соблюдении порядка установки, получите ошибки. Пункты не пропускать и не менять местами. Файлы предварительно должны быть загружены в админке в разделе Каталог - Файлы для скачивания. Дополнительно нужно добавить стили css для внешнего вида. В панели шаблона во вкладке "Объединение и сжатие стилей и скриптов, свои стили и скрипты, кнопки соц.сетей и прочие настройки" далее вкладка "Свои стили и скрипты" в поле CSS добавить и сохранить: .download_file .icone{float:left;font-size:35px;margin-right:15px;color:#C85755;} .download_file .link{font-size: 16px;line-height: 1.9;font-weight: 600;color: #5b5b5e;} .download_file .size{font-size: 12px;line-height: 1.2;color: #5b5b5e;} .download_file {border:1px solid #fff;padding: 5px;margin: 0px;} @media (max-width:761px){.download_file {border:1px solid #eee;}} https://prnt.sc/3jOfUhDvPzQ2 https://prnt.sc/K_Y11BjxIN4i DownloadableFilesUnishop2News.ocmod.zip1 балл