Ответы пользователя по тегу OpenCart
  • Как убрать id категорий из url opencart?

    Если вам не хочется вручную редактировать SEO URL для большого количества категорий, найдите на бирже фрилансеров специалиста, который готов этим заняться. Стандартными средствами опенкарта нельзя пакетно редактировать SEO-алиасы категорий.

    Отдельная заметка для Максим Каракулов: Я тусуюсь на Тостере только тогда, когда у меня есть свободное время и желание отвечать на чьи-то вопросы. Когда мне в почту падает сообщение, что кто-то меня приглашает ответить на вопрос, я считаю это спамом. Я не вижу способа отключить уведомления о том, что кто-то приглашает меня ответить как эксперта без того, чтобы не нарушить остальные уведомления на почту. Я считаю это большим косяком Тостера. Не вижу возможности выбирать, какие именно уведомления я хочу видеть в почте, а какие уведомления должны оставаться в рамках интерфейса сайта.
    Ответ написан
  • Где лежит каркас страницы index на движке Opencart?

    Я сначала пытался объяснить, как устроен Opencart, чтобы вам было легко потом находить, какие шаблоны используются на конкретной странице, но получается, что это будет слишком объёмно. Поэтому я представлю ситуацию, когда используется стандартная установка Opencart.

    Заголовочная часть HTML-кода, шапка страницы, плюс выпадающее меню категорий, плюс уведомления — <корень сайта>/catalog/view/theme/<название шаблона>/template/common/header.tpl

    Футер — <корень сайта>/catalog/view/theme/<название шаблона>/template/common/footer.tpl

    Контент — зависит от текущего пути. Например, если текущий путь — product/product (страница товара), то шаблон можно найти в <корень сайта>/catalog/view/theme/<название шаблона>/template/product/product.tpl. Если корневая страница сайта (вы её назвали index), то её шаблон лежит в <корень сайта>/catalog/view/theme/<название шаблона>/template/common/home.tpl.

    Левая колонка — <корень сайта>/catalog/view/theme/<название шаблона>/template/common/column_left.tpl

    Правая колонка — <корень сайта>/catalog/view/theme/<название шаблона>/template/common/column_right.tpl

    Служебная часть перед контентом — <корень сайта>/catalog/view/theme/<название шаблона>/template/common/content_top.tpl

    Служебная часть после контента — <корень сайта>/catalog/view/theme/<название шаблона>/template/common/content_bottom.tpl

    <название шаблона> можно узнать на странице настройки магазина в админке: Админка → Меню «Система» → пункт «Настройки» → ссылка «Изменить» напротив текущей конфигурации → вкладка «Магазин» → пункт «Шаблон».

    Всё содержимое обычно компонуется из этих кусков.

    Правая и левая колонки, а так же служебные части перед и после контента обычно заполняются модулями — в зависимости от настроек модулей. Эти четыре шаблона лучше не трогать, если вы не уверены до конца, что делаете.
    Ответ написан
  • Как добавить комплектации товара с разными ценами?

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

    Инструкция: Опции товара
    Ответ написан
  • В Opencart размытая картинка при показе списка товаров, как исправить?

    В контроллере задаётся картинка размером, условно, 50 пикселей, а на странице она выводится размером в 200 пикселей. Из-за этого получается размытое изображение.

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

    К слову, как я понимаю из скриншота, можно начать с настроек модуля «Рекомендуемые» (или как он там называется на русском языке — не помню). В нём вроде бы прописываются размеры картинок. Просто проставьте размеры, которые соответствуют тому, что видно на странице.
    Ответ написан
  • Почему не работает javascript, если к домену приписать "www.", и как выйти из положения?

    Если вы посмотрите содержимое страницы, которая открывается с www, то в теге «BASE» будет прописан адрес без www. Это такая особенность опенкарта. В кнопке «заказать» адрес выглядит как «index.php?route=бла-бла-бла». Так как у этого адреса нет в начале знака «/», браузер возьмёт для построения полного адреса значение из BASE. Тогда получается, что на странице «http://www.site.ru» ссылка для кнопки «заказать» выглядит как «http://site.ru/index.php?route=бла-бла-бла». И это уже кросс-доменный запрос, который в вашем случае не работает.

    Как решение, все страницы должны открываться по одному домену. Нужно сделать перенаправление с www-адресов на адреса без www с помощью .htaccess.

    RewriteCond %{HTTP_HOST} ^www.site.ru
    RewriteRule (.*) http://site.ru/$1 [R=301,L]


    Это будет более простое решение, чем исправлять адреса в движке Opencart, так как я находил там около 90 адресов, которые в таком случае придётся править. Вы, допустим, правкой адреса поправите работу кнопки «заказать», но от этого не начнут работать кнопки «добавить в желаемое», «добавить в сравнение» и т.п. Там куча таких моментов. Так что, настройка перенаправления в .htaccess позволит решить сразу все эти проблемы.
    Ответ написан
  • Стоит ли переходить ли на OpenCart с PHPShop?

    В целом, насколько я вижу из своего опыта (я «переезжал» сайты с Bitrix, WebAsyst и Shop-Script), переезд на Опенкарт может обойтись примерно в 17-20 тысяч (миграция категорий/товаров/производителей/атрибутов/опций, создание/миграция шаблона).

    Сам движок вообще прикольный, хотя в нём до сих пор используется mysql-функции. Я недавно пытался сделать пулл-реквест, который нормально организовывал поддержку PDO с обратной совместимостью, но Даниэль меня, образно говоря, послал нахер (даже при условии, что несколько человек меня поддержали), и я что-то теперь разочаровался в этом движке, хотя целый год вообще работал только с ним — излазал вдоль и поперёк, делал кучу архитектурных усовершенствований для клиентов, писал модули.

    Сорри за лирическое отступление — я всё никак не найду, кому поплакаться в жилетку. :)

    Реально ли вообще построить на Open Cart серьезный проект?

    Да, на Opencart вполне возможно построить серьёзный магазин. У него большой плюс в том, что модули к нему можно очень легко и быстро писать. Даже, в принципе, начинающий программист может с этим справиться. И людей, которые что-то дорабатывают/пишут, очень много. Много всего можно найти на opencartforum.ru.

    С какими проблемами можно столкнуться в первое время?

    В первое время можно столкнуться с тем, что он будет тормозить на большом количестве продуктов и категорий. Он всё время пытается считать количество товаров в каждой категории, даже если в настройках это отключено. В официальный репозиторий больше года назад была принята правка, которая этот момент исправляет, но почему-то в последние версии эта правка так и не попала, как я вижу (и в v1.5.6 и в v1.5.6.1 эта недоработка всё ещё присутствует). Если этот момент исправить, скорость поразительно увеличивается. Я один раз умудрился $150 заработать на этом моменте — за пару минут работы. Там всего-то две небольшие правки сделать нужно.

    В остальном, движок особенно неприятных сюрпризов больше не доставляет.

    Какие могут быть размеры вложений для исправления основных проблем этой CMS?

    150 долларов — это была удача. Вообще, цена такой правки — примерно рублей 500, но вы наверняка можете и дешевле найти на профильных ресурсах. В MaxyStore, кажется, вообще этот момент поправлен. Так что он вполне нормально будет из коробки работать, и никаких основных проблем исправлять вообще не придётся.

    Оправданы ли мои опасения насчет того, что бесплатный продукт может принести слишком много проблем?

    Продукт продукту рознь. Сам Opencart особенно много проблем вам не принесёт. Но проблемы могут принести дополнительные модули. У Opencart довольно-таки низкий порог вхождения, поэтому качество кода может быть ужасным. Один модуль может начисто убить весь jQuery на странице. Другой сделает так, что у вас отзывы о продукте не будут отправляться. Третий (от какого-нибудь французского разработчика, который очень любит делать навигационные модули) будет на каждый пук дёргать базу данных, генерируя по 86 дополнительных запросов к БД на одной странице. Вообще, в ситуации с Опенкартом, лучше постоянно работать с одним и тем же программистом, который будет и модули устанавливать и дорабатывать и ошибки устранять и т.д. Мороки будет меньше, потому что на русскоязычных ресурсах расспрашивать, почему выскакивает такая-то и такая-то ошибка — неблагодарное дело.

    Есть проект MaxyStore на основе OpenCart - может стоит взглянуть в его сторону или нет смысла?

    Попробуйте ещё посмотреть в сторону ocStore с сайта opencartforum.ru. Мне кажется, что он немного лучше. С позиции разработчика мне лично MaxyStore не нравится. Я не могу внятно описать причины, но в ситуации, когда есть выбор между MaxyStore и Opencart, я однозначно выберу Opencart.

    У таких сборок, как MaxyStore и ocStore плюс в том, что они интегрируют много полезных модулей.

    Минусы. Они часто отстают по версиям на 1-2 релиза. К примеру, какой-нибудь новейший ***Store может быть основан на версии Opencart, которая вышла больше года назад.

    Зачастую финтиклюшки, которые разработчики сборок добавляют в ядро, замедляют работу движка. Как я вижу (может быть я не прав), разработчики движков на основе Opencart больше внимания уделяют внешнему виду, а не архитектурным вопросам, которые позволят повысить скорость или безопасность. А если они и начинают заниматься архитектурными вопросами, то движок частично теряет совместимость с модулями, написанными для оригинального Opencart.

    На какие еще CMS стоит обратить внимания, учитывая мои требования?

    Я вообще после того, как мой пул-реквест отшили, решил вообще больше не заниматься Opencart (такой вот я чувствительный) и перейти на разработку для Magento. Из всех движков, о которых я слышал (или которые щупал) он мне больше всего нравится. Хотя, вообще-то, я не так уж и много движков щупал.
    Ответ написан
  • Как сделать слайд-шоу по фотографиям товара open cart?

    Для каждого тега A, который ссылается на картинку и который должен стать частью серии, нужно указать класс «colorbox». А во время инициализации Colorbox нужно добавить параметр, который их свяжет по этому классу.

    $(document).ready(function() {
    	$('.colorbox').colorbox({
    		overlayClose: true,
    		opacity: 0.5,
    		rel: "colorbox"
    	});
    });


    Здесь rel: "colorbox" как раз указывает на то, что нужно связать в серию всё, что имеет класс colorbox.
    Ответ написан
  • Как в Opencart получить сумму и ID заказа из JavaScript?

    Без дополнительных правок контроллера и шаблона — никак. Фишка в том, что success — это страница, на которую идёт переадресация после того, как заказ успешно добавлен в админку. И никакие дополнительные POST/GET-данные туда не передаются.

    Как вариант можно добавить в контроллер catalog/controller/checkout/success.php внутри блока:

    
    if (isset($this->session->data['order_id'])) {
    

    Сразу же после этого IF

    
    $this->data['order_id'] = $this->session->data['order_id'];
    $this->data['order_info'] = $this->model_account_order->getOrder($this->session->data['order_id']);
    $this->data['product_total'] = $this->data['order_info']['total'];
    

    Главное, чтобы этот код был до всяких $this->cart->clear(); и unset($this->session->data['...']);.

    Ответ написан