Особенности OPENCART, все и сразу часть 1.

Opencart
Открытый адовый CMS

Случилось мне работать с этой CMS. Разобрав ее и немного поработав с ней я понял, что пора делать отдельный раздел в бложеге, так как особенностей и кривых решений там множество. Все что будет написано ниже, протестировано на версии 1.5.6.4. То, что будет описано ниже скорее всего уже обсуждалось на просторах интернета, поэтому будут «баяны». Но мне как то пофиг, и все это я собираю тут лишь для того, чтобы не тратить драгоценные часы в поисках ответа на нужный мне вопрос.

Понеслась..

Избавляемся от ссылки '/index.php?route=common/home' в логотипе сайта.
Зачем придумали такую ссылку? Понятия не имею! Для того, чтобы это исправить — много ума не надо. Достаточно сделать следующее: 1)открыть в своем любимом редакторе файл «system/library/url.php» 2)найти строки

if ($args) {<br />
$url .= str_replace('&amp;', '&amp;', '&amp;' . ltrim($args, '&amp;'));<br />
}

3)ниже добавить вот эти строки:

else {<br />
if($route == 'common/home') {<br />
if($connection == 'NONSSL') { return HTTP_SERVER; } else { return HTTPS_SERVER; }<br />
}<br />
}

Прячем дубли страниц от роботов
Нет, у меня конечно не свербит в жопе от того, что роботы будут видеть эти дубли, но все же это неправильно, и поэтому это нужно исправить. Создаем в корне файлик «robots.txt» со следующим содержимым:

</p>
<p>User-agent: *</p>
<p>Disallow: /admin<br />
Disallow: /cache<br />
Disallow: /niks<br />
Disallow: /catalog<br />
Disallow: /download<br />
Disallow: /export<br />
Disallow: /system<br />
Disallow: /index.php?route=account<br />
Disallow: /index.php?route=account/account<br />
Disallow: /index.php?route=checkout/cart<br />
Disallow: /index.php?route=checkout/shipping<br />
Disallow: /index.php?route=common/home<br />
Disallow: /index.php?route=product/product/captcha<br />
Disallow: /index.php?route=product/product*&amp;manufacturer_id=<br />
Disallow: /index.php?route=product/search<br />
Disallow: /index.php?route=information/contact/captcha<br />
Disallow: /index.php?route=information/information&amp;information_id=<br />
Disallow: /index.php?route=account/login<br />
Disallow: /*route=account/<br />
Disallow: /*route=account/login<br />
Disallow: /*route=checkout/<br />
Disallow: /*route=checkout/cart<br />
Disallow: /*route=affiliate/<br />
Disallow: /*route=product/search<br />
Disallow: /*?sort=<br />
Disallow: /*?sort<br />
Disallow: /*&amp;sort=<br />
Disallow: /*?order=<br />
Disallow: /*?order<br />
Disallow: /*&amp;order=<br />
Disallow: /*?limit=<br />
Disallow: /*&amp;limit=<br />
Disallow: /*?filter_name=<br />
Disallow: /*&amp;filter_name=<br />
Disallow: /*?filter_sub_category=<br />
Disallow: /*&amp;filter_sub_category=<br />
Disallow: /*?filter_description=<br />
Disallow: /*&amp;filter_description=<br />
Disallow: /*?tracking=<br />
Disallow: /*&amp;tracking=<br />
Disallow: /*?manufacturer<br />
Disallow: /*?keyword<br />
Host: site.ru - меняем на свой домен</p>
<p>

Сохраняем и радуемся жизни.

Добавляем товар в корзину не заставляя клиенту разбивать компьютер
То, как в этой системе написан функционал меня радует. Точнее радовал до тех пор, пока я не захотел нажать кнопку «купить» несколько раз. Страница так и лезла вверх, убирая с обзора нужную мне кнопку, в итоге меня это достало и я забил. Но чтобы не забил покупатель мы проделаем небольшие изменения, а именно вырубим к херам эту прокрутку и поменяем внешний вид оповещения. Сделать это нужно в просмотре товара и в просмотре категории. Убираем прокрутку и меняем оповещение в просмотре товара 1) открыть любимым редактором файлик /catalog/view/theme/ВАШШАБЛОНАМА/template/product/product.tpl 2)найти и закоментировать  строку:

$('html, body').animate({ scrollTop: 0 }, 'slow'); 

3) найти строку

$('.success').fadeIn('slow');

и заменить на

<br />
$('.success').dialog( {<br />
	modal: true,<br />
	buttons: {<br />
		Ok: function() {<br />
			$( this ).dialog( &quot;close&quot; );<br />
		}<br />
	}<br />
});<br />

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

/catalog/view/javascript/common.js

Артикул (SKU), UPC, ID в карточке товара
А теперь посмотри на большой интернет магазин, и на свой интернет магазин, и снова на большой интернет магазин… опенад Да именно так, помимо покупателей вашему интернет магазину не хватает вывода артикула, по которому можно найти товар, его id  и UPC (хотя последнее уже нафиг не нужно). Короче, что для этого нужно? 1) открыть файлик «catalog\controller\product\product.php» 2) найти строчку :

$this->data['model'] = $product_info['model'];

3)под найденной строчкой вставить эти строчки:

 $this-&gt;data['upc'] = $product_info['upc'];<br />
 $this-&gt;data['sku'] = $product_info['sku'];

4)открыть файл «catalog/view/theme/ВАШШАБЛОНАМА/template/product/product.php» и добавить в нужном месте вывода эти строчки:

 UPC: &lt;!--?php echo $upc; ?--&gt;<br />
Артикул: &lt;!--?php echo $sku; ?--&gt;<br />
ID: &lt;!--?php echo $product_id; ?--&gt;

Все. Теперь вам остается смотреть на негра и мечтать о покупателях!

Купоны. Как их выпилить
1556_900 У вас будет такое же лицо, как и у Миронова, если вы не отключите систему купонов. Самое паршивое, это то, что система купонов в админке не выключается. Максимально что вы можете сделать — удалить список купонов, и все. Представьте ситуацию, что все ваши товары продаются со скидкой 80%, а вы об этом даже не подозреваете.. Представили? А теперь делайте следующее: 1)Заходим в админку, в разделе «Продажи->Купоны» удаляйте все купоны, которые там найдете 2)Открываем редактором файлик «/catalog/view/theme/infinity_gray/template/checkout/cart.tpl» и удаляем там эту форму.
Админка и ее сранное меню
Админка опенкарта написана достаточно качественно, выглядит приятно и не светится как «Вася-наркоман» от каждого клика, но у нее есть один минус. Минус ее заключается во всплывающем меню, которое закрывается при неверном движении. Поработав пару часов, я решил выпилить это меню, но меня вовремя остановила одна ссылка. impulsepro Это прекрасный шаблон админки, с нормальным удобным меню и все тем же функционалом. Скачать эту прелесть можно тут. Для установки нужен VQmod.
Описание файлов шаблона OPENCART 1.5.x
Расписывать тут совсем нечего.

  • Папка common/
    • home.tpl — вывод главной страницы
    • column_left.tpl — левая колонка магазина
    • column_right.tpl — правая колонка магазина
    • content_bottom.tpl — нижняя часть магазина (только в 1.5.х)
    • content_top.tpl — верхняя часть магазина (только в 1.5.х)
    • footer.tpl — нижняя часть шаблона
    • header.tpl — верхняя часть шаблона
    • cart.tpl — всплывающее окно корзины (в верху сайта) (только в 1.5.х)
    • maintenance.tpl — шаблон выводится, когда магазин закрыт
    • success.tpl — выводится после успешной регистрации в магазине и после успешного оформления заказа (guest mode)
  • Папка product/
    • category.tpl — вывод группы товаров
    • manufacturer.tpl — вывод товаров по производителю (в 1.5.х не используется)
    • manufacturer_info.tpl — вывод товаров по производителю (только в 1.5.х)
    • manufacturer_list.tpl — страница со списком всех производителей (только в 1.5.х)
    • product.tpl — вывод одного товара
    • review.tpl — вывод отзыва о товаре в шаблоне product.tpl
    • search.tpl — поиск и результаты поиска
    • special.tpl — выбор специальных предложений (Special)
    • compare.tpl — страница сравнения товаров (только в 1.5.х)
  • Папка information/
    • contact.tpl — вывод адреса магазина и формы отправки сообщений
    • information.tpl — вывод информационной статьи
    • sitemap.tpl — карта сайта
  • Папка error/
    • not_found.tpl — Запрашиваемая страница не найдена «error 404″(…not found!)
  • Папка account/
    • account.tpl — форма регистрации или входа в аккуант
    • address.tpl — Страница выбора/редактирования адреса оплаты/доставки (в 1.5.х не используется)
    • addresses.tpl — Адресная книга в настройках аккаунта (в 1.5.х не используется)
    • address_form.tpl — страница редактирование адреса в аккаунте (только в 1.5.х)
    • address_list.tpl — Адресная книга в настройках аккаунта (только в 1.5.х)
    • create.tpl — форма регистрации в магазине (в 1.5.х не используется)
    • register.tpl — форма регистрации в магазине (только в 1.5.х)
    • return_form — страница создания возврата товара (только в 1.5.х)
    • return_list.tpl — страница истории о возвратах товара (только в 1.5.х)
    • return_info.tpl — подробная информация о возврате товара (из return_list.tpl) (только в 1.5.х)
    • reward.tpl — информация о зачисленных бонусных баллах за покупки (только в 1.5.х)
    • transaction.tpl — страница истории платежей (только в 1.5.х)
    • wishlist.tpl — страница «Взято на заметку» (только в 1.5.х)
    • download.tpl — страница со скачиваемыми товарами
    • edit.tpl — редактировать профиль
    • forgotten.tpl — напоминание пароля
    • history.tpl — история заказов
    • wishlist.tpl — желаемые товары
    • login.tpl — форма логина или регистрации на сайте
    • newsletter.tpl — подписка на новости
    • password.tpl — смена пароля
  • Папка checkout/
    • address.tpl
    • cart.tpl — вывод содержимого корзины (в центре страницы)
    • confirm.tpl — последний шаг заказа, подтверждение перед отправкой, этот же шаблон используется для guest.tpl — оформить заказ без регистрации (тут редактируются поля, при оформл. заказа)
    • payment.tpl — оплата
    • shipping.tpl — доставка
  • Папка mail/
    • order_confirm.tpl — письмо о подтверждении
  • Папка modules/
    • bestseller.tpl — самые покупаемые товары
    • category.tpl — блок Категории
    • featured.tpl — «рекомендуемые товары»
    • google_talk.tpl
    • information.tpl — список статей на сайте, ссылки на сайтмап и контакты
    • latest.tpl — «последние товары»
    • latest_home.tpl — «последние товары» на главной странице
    • manufacturer.tpl — выпадающий список производителей
    • special.tpl — специальное предложение
Те самые источники, на поиск которых я тратил свое драгоценное время: