Чек-лист для разработчиков по запуску магазина на OpenCart 2.x

29.03.2018 12:56 (862 просмотров)

 

1. Установка системы OpenCart

1.1. Получить у клиента доступы.

  • FTP-доступ (с доступом только к папке сайта, а не всей домашней папке(!) ). На некоторых хостингах идет блокировка по IP, дать свой IP пусть занесут в список разрешенных
  • Доступ к phpmyadmin
  • Адрес emailа на сайте, от имени которого и на который будет идти отправка отчетов о заказах и других действий на сайте

Иногда клиенты предпочитают дать 1 доступ к хостинг-аккаунту.

Если клиент дал доступ к хостингу, и у него есть несколько сайтов, создать отдельный FTP доступ только на папку с текущим сайтом, чтобы 100% предупредить любые вопросы, не лазил ли ты в другие сайты.

 

1.2.Включить IonCube Loader

Запросить клиента или включить при наличии д IonCube Loader, ведь все равно какой-то купленный модуль будет зашифрован

 

1.3. Установить систему

Желательно OpenCart PRO последней версии (на октябрь 2018 это 2.3.0.2.5). Если шаблон зарубежный, то чистый OpenCart 2.3.

Логин админстратора НЕ должен быть простым. Создать необходимых пользователей для контент-менеджмента и менеджеров по продажам. Настроить права доступа для них так, чтобы они не могли перенастраивать работу модулей или настройки системы. Очень желательно запретить им вход в настройки шаблона.

Если не ocStore и не русская сборка, то руссифицировать opencart!
(https://www.opencart.com/index.php?route=marketplace/download&extension_id=16735 + Запросы базу + ОЧИСТИТЬ КЕШ)

Не рекомендуется использовать vQmod для OpenCart 2.x. Любой модификатор можно адаптировать под OCMOD!

 

1.4.Настроить локализацию системы

Имеется ввиду Система - Локализация

 

1.4.1. Добавить русский язык (или другой необходимый)

В момент добавления языка в системе, нужно будет выбрать папку языка. Для этого языковые файлы должны быть в папке language

Присвоить кодировку для русского языка:

  • Как в русской сборке: ru_RU.UTF-8,ru_RU,russian
  • Как в ocStore: ru_RU.UTF-8,ru_RU,ru_RU,ru

Удалить английский язык из системы при необходимости

 

1.4.2. Состояния склада

Следующий SQL-запрос упрощает задачу, но, обратите внимание на id языков, они могут отличаться от ваших.

-- Чистим таблицу со статусами, так как там в момент добавления языка в русский продублировались статусы на английском

TRUNCATE oc_stock_status;

-- Вставляем статусы для всех языков одним махом

INSERT INTO `oc_stock_status` (`stock_status_id`, `language_id`, `name`) VALUES
-- En для примера (раскомментировать, если сайт будет и на английском)
-- (7, 1, 'In Stock'),
-- (8, 1, 'Pre-Order'),
-- (5, 1, 'Out Of Stock'),
-- (6, 1, '2-3 Days'),
-- Ru
(7, 2, 'На складе'),
(8, 2, 'Предзаказ'),
(5, 2, 'Нет на складе'),
(6, 2, '2-3 дня ожидания');
-- Ua при необходимости расскоментировать и заменить точку с запятой на предыдущей строке на запятую
-- (7, 3, 'На складі'),
-- (8, 3, 'Передзамовлення'),
-- (5, 3, 'Немає в наявності'),
-- (6, 3, '2-3 дні очікування');

 

1.4.3. Статусы заказа

Добавить статус "Оплачен" и статус "Ошибка", если будут использоваться платежные системы.

TRUNCATE oc_order_status;

INSERT INTO `oc_order_status` (`order_status_id`, `language_id`, `name`) VALUES

(1, 1, 'Pending'),
(2, 1, 'Processing'),
(3, 1, 'Shipped'),
(5, 1, 'Complete'),
(7, 1, 'Canceled'),
(8, 1, 'Denied'),
(9, 1, 'Canceled Reversal'),
(10, 1, 'Failed'),
(11, 1, 'Refunded'),
(12, 1, 'Reversed'),
(13, 1, 'Chargeback'),
(14, 1, 'Expired'),
(15, 1, 'Processed'),
(16, 1, 'Voided'),

(1, 2, 'В ожидании'),
(2, 2, 'В обработке'),
(3, 2, 'Доставлено'),
(5, 2, 'Сделка завершена'),
(7, 2, 'Отменено'),
(8, 2, 'Возврат'),
(9, 2, 'Отмена и возврат'),
(10, 2, 'Неудавшийся'),
(11, 2, 'Возмещенный'),
(12, 2, 'Полностью измененный'),
(13, 2, 'Полный возврат'),
(14, 2, 'Просрочен'),
(15, 2, 'Обработан'),
(16, 2, 'Аннулирован'),

(1, 3, 'В очікуванні'),
(2, 3, 'В обробці'),
(3, 3, 'Доставлено'),
(5, 3, 'Угода завершена'),
(7, 3, 'Скасовано'),
(8, 3, 'Повернення'),
(9, 3, 'Скасування і повернення'),
(10, 3, 'Невдалий'),
(11, 3, 'Відшкодований'),
(12, 3, 'Повністю змінений'),
(13, 3, 'Повне повернення'),
(14, 3, 'Прострочено'),
(15, 3, 'Опрацьовано'),
(16, 3, 'Анульований');

 

1.4.4. статусы возврата

TRUNCATE oc_order_status;

INSERT INTO `oc_return_status` (`return_status_id`, `language_id`, `name`) VALUES
(1, 1, 'Pending'),
(3, 1, 'Complete'),
(2, 1, 'Awaiting Products'),

(1, 2, 'Ожидание'),
(3, 2, 'Завершено'),
(2, 2, 'Ожидание Товаров'),

(1, 3, 'В очікуванні'),
(3, 3, 'Завершено'),
(2, 3, 'Очікування Товарів');

 

1.4.5. Удалить лишние страны

Еесли предполагается выбор страны при заказе, что маловероятно

 

1.4.6. Убрать налоги и эко таксы при оформлении заявки

 

1.5.Настроить локализацию магазина

(Имеется ввиду Система - Настройки - Магазин - Вкладка "Локализация" или System - Setting - Store - Вкладка "Local")

 

1.5.1. Основной язык сайта

Поле "Language"

 

1.5.2. Язык администратора

Поле "Administration Language"

 

1.5.3. Регион

 

1.5.4. Валюты

*Внимание!

руб. по орфографии пишется с точкой, так как при образовании сокращения отсекается окончание - http://new.gramota.ru/spravka/letters/86-rubric-100

грн пишется без точки, так как сокращение образовано путем стягивания согласных - http://fortressnotes.blogspot.com/2011/05/blog-post.html

Необходимо также поставить коэффициент 1 той валюте, в которой будет вводится цена товара в локализации системы.

После переназначения валют, необходимо чистить кеш браузера (cookies)

 

1.6. Другие настройки

 

1.6.1. robots.txt

Создать в коре сайта файл robots.txt со следующим содержанием:

User-agent: *
Allow: /
Disallow: /search
Disallow: /admin
Disallow: /catalog
Disallow: /system
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?order=
Disallow: /*&order=
Disallow: /*?limit=
Disallow: /*&limit=

User-agent: Yandex
Allow: /
Disallow: /search
Disallow: /admin
Disallow: /catalog
Disallow: /system
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?order=
Disallow: /*&order=
Disallow: /*?limit=
Disallow: /*&limit=
Host: АДРЕС САЙТА!

 

1.6.2. htaccess

В корне сайта находится файл htaccess.txt

Есго необходимо переименовать на .htaccess (то есть, сделать его файлом настроек сервера)

*Внимание!

Если на хостинге используется apache + nginx, может появиться ошибка Internal Server Error

В таком случае в файле .htaccess необходимо найти строку:

Options +FollowSymlinks

и заменить ее на

# Options +FollowSymlinks
# for nginx !
Options +SymLinksIfOwnerMatc

 

1.6.2. Включить ЧПУ

Включите использование SEO URL в настройках системы (setting/setting) вкладка "Сервер".

В поле "Включить ЧПУ" необходимо выбрать переключатель "Да".

В случае с ocStore или OpenCart CMS (OpenCart PRO) там будет еще поле "Тип ЧПУ", необходимо чтобы было выбрано SeoPro. Данное поле создается модулем SEO PRO, который является бесплатным и его также можно установить на чистый OpenCart для устранения дублей страниц.

 

1.6.3. Прописать ЧПУ для системных страниц

-- ----------------------------------------------------------------
-- SEO URL для системных вещей от SEO PRO from http://www.opencartjazz.com/ru/ocj-seopro-oc2

INSERT INTO oc_url_alias (query, keyword) VALUES
('common/home', ''),

('account/address', 'address-book'),
('account/account', 'my-account'),
('account/login', 'login'),
('account/logout', 'logout'),
('account/order', 'order-history'),
('account/newsletter', 'newsletter'),
('account/return/insert', 'request-return'),
('account/return/add', 'return-add'),
('account/forgotten', 'forgot-password'),
('account/download', 'downloads'),
('account/return', 'returns'),
('account/transaction', 'transactions'),
('account/register', 'create-account'),
('account/edit', 'edit-account'),
('account/password', 'change-password'),
('account/reward', 'reward-points'),
('account/voucher', 'account-vouchers'),
('account/wishlist', 'wishlist'),

('affiliate/account', 'affiliates'),
('affiliate/edit', 'edit-affiliate-account'),
('affiliate/password', 'change-affiliate-password'),
('affiliate/payment', 'affiliate-payment-options'),
('affiliate/tracking', 'affiliate-tracking-code'),
('affiliate/transaction', 'affiliate-transactions'),
('affiliate/logout', 'affiliate-logout'),
('affiliate/forgotten', 'affiliate-forgot-password'),
('affiliate/register', 'create-affiliate-account'),
('affiliate/login', 'affiliate-login'),

('product/manufacturer', 'manufacturers'),
('product/special', 'specials'),
('product/compare', 'compare-products'),
('product/search', 'search'),

('checkout/cart', 'shopping-cart'),
('checkout/checkout', 'shopping-checkout'),
('checkout/success', 'checkout-success'),
('checkout/voucher', 'gift-vouchers'),

('extension/feed/google_sitemap', 'sitemap_xml'),
('information/contact', 'contact-us'),

('information/sitemap', 'sitemap');


-- ----------------------------------------------------------------
-- SEO URL для аккаунта, которые "забыты" в SEO PRO

INSERT INTO `oc_url_alias` ( `query`, `keyword`) VALUES ('account/recurring', 'recurring');
INSERT INTO `oc_url_alias` ( `query`, `keyword`) VALUES ('account/success', 'account-success');
INSERT INTO `oc_url_alias` (`query`, `keyword`) VALUES ('error/not_found', '404');
INSERT INTO `oc_url_alias` (`query`, `keyword`) VALUES ('information/contact/success', 'contact-success');

 

-- ----------------------------------------------------------------
-- news шаблона Unishop
INSERT INTO `oc_url_alias` ( `query`, `keyword`) VALUES ('information/news', 'news');
INSERT INTO `oc_url_alias` ( `query`, `keyword`) VALUES ('information/news/news', 'news_page');


Внимание!

После выполнения этих запросов в базу, необходимо очистить кеш Seo Pro

 

1.6.4. Настройка php_value max_input_vars

php_value max_input_vars - увеличить до 5000. При значении 1000 были случаи, когда не корректно сохранялись товары

 

1.6.5. Включите показ ошибок в настройках хостинга (сервера)

Обязательно включите показ ошибок в настройках сервера!

Включение ошибок в настройках системы недостаточно, если они глобально выключены. Подробнее читайте в статье "Типичные ошибки при установке модулей в OpenCart 2.х"

Можно прописать показ ошибок в .htaccess

php_flag display_errors on
php_flag display_startup_errors on

 

2. Установка минимально необходимых модулей

 

2.1. Local copy OCMOD by iSenseLabs

Данный модуль позволяет устанавливать модули через менеджер расширений (OCMOD) без необходимости настраивать ФТП в настройках самой системы. Очень полезная штука.

 

2.2. Seo Pro

Если речь идет об использовании чистого OpenCart, то необходимо устанавливать данный модуль для устранения дублей.

В придачу к данному модулю желательно установить модификатор SEO Pro Cache Autodestroy.

 

2.3. Упрощение корзины

В некоторых шаблонах корзина и так переделана. Другие используют корзину системы по умполчанию. В таком случае, чтобы пользователи не запарились оформлять заявку на сайте, необходимо сократить форму заказа в корзине. Одним из лучших инструментов для этого является популярный модуль Simple Checkout. Также есть бесплатный аналог AJAX Quick Checkout FREE (One Page Checkout, Quick Checkout) - https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=15580

 

2.4. Парочка бесплатных расширений для админки

  • Admin product filter by Manufacturer, Category and Sku - добавляет в админке фильтрацию товаров мо производителю, категории и артикулу (sku)
  • АdminProductsRecentFirst - отображает в админке последние добавленные товары вверху списка, а не по алфавиту
  • ImageTranslitOnUpload - обеспечивает транслитерацию фотографий, исходные названия которых идут на русском языке. Кириллические названия фото создают проблемы при переносе сайта на другой хостинг.
  • SEO URL Generator FREE - автоматическое заполнение ЧПУ товаров в момент добавления в админке. Для OpenCart CMS и OpenCart PRO не нужен, там есть свой.
  • Attribute select oc2.0 - позволяет выбирать значение атрибутов из списка, вместо ручного ввода.

  • Кнопка "Применить" в админке - чтобы при сохранении товара или другой сущности не выбрасывало в общий список сущностей

 

2.5. Скрыть админку от посторонних

Сделать не доступной админку по адресу sitename.com/admin

Есть несколько способов

Создать в админке .htaccess с разрешением просмотра папки только для определенных IP-адресов

# Ограничение доступа к админке по IP
# http://kozma.com.ua/zapret-dostupa-po-ip-cherez-htaccess.html

Order deny,allow
deny from all
Allow from xx.xx.xx.xxx # Менеджер 1

Можно просто переименовать папку admin, но в таком случае Вы получите проблему с любым модификатором, который модифицирует файлы админки

Можно установить Secure Admin URL, но переделать его под OCMOD

 

 

3. Настройка шаблона

Постараться узнать заранее, стандартная или нестандартная тема. Если шаблон покупался на ThemeForest, то зачастую он сделан на усмотрение автора, и не соответствует стандартному шаблону. В таком случае в дальнейшем при установке любого модуля нужно будет делать перепилы, если они касаются работы товара или списков товаров. Кроме того, при использовании OpenCart PRO в шаблоне необходимо будет добавить пару модулей, которые отвечают за вывод модулей данной сборки, к примеру, catalog/view/theme/default/template/extension/module/product_tab.tpl

 

3.1. Купить, скачать и установить тему

 

3.2. Размещение логотипа

 

Его выравнивание в рамках данного шаблона, ведь пропорции могут отличаеться от логотипа на демо. Не забудьте выровнять логотип в мобильной версии (!)

 

3.3. Настройка цветов в шаблоне

Шаблоны бывают разные. В некоторых цвета кнопок, меню и других элементов настраивается прямо в админке, а в некоторых есть заранее предустановленные цветовые гаммы, и в админке настривается только выбор 1 варианта. Иногда цвета необходимо настраивать в CSS вручную.

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

 

3.4 Перевод шаблона

Если шаблон на английском, то необходимо продублировать его языковые файлы в папку с русским языком (или другим целевым языком) и перевести их.

Внимание!

Иногда короткие фразы прописаны прямо в шаблонах дизайна. Их также нужно выловить и перевести. А если сайт будет двуязычным, то переместить их в языковые файлы.