понеділок, 17 лютого 2014 р.

OpenCart — убираем лишние страны и устанавливаем по умолчанию определенную страну

Как нам известно, оформление заказа в OpenCart слишком длинное: масса полей, которые практически каждому хочется отключить, удалить или скрыть. Процесс регистрации и оформления заказа получается утомительным, что вполне вероятно, может негативно сказаться на магазине. И одним из немаловажных моментов является выбор страны и города: выпадающий список с перечнем стран чересчур длинный и зачастую никому не нужный, так как большая часть магазинов работает либо по городу, области, стране или максимум по паре-тройке соседних стран, так что в том же Алжире или Пакистане абсолютно нет надобности.


Итак, допустим, что нам необходимо, чтобы в выпадающем списке с выбором стран остались следующие страны: Украина и Россия, как нам это сделать? И еще один момент: мы хотим, чтобы по умолчанию отображалась определенная страна или регион/город, как это реализовать? Начнем со второго.

Для этого отправляемся в файлы темы (шаблона) своего магазина и открываем следующие файлы:

catalog/view/theme/default/template/checkout/guest.tpl — для оформления заказа без регистрации
catalog/view/theme/default/template/checkout/register.tpl — для оформления заказа с прохождением регистрации
и ищем одну и ту же строку в обоих файлах:

<?php if ($country['country_id'] == $country_id) { ?>
 
Поскольку каждая страна имеет свой числовой идентификатор(id), то нам необходимо указать именно тот id, который присвоен нужной нам стране. ID вышеупомянутых стран и пары соседних:

Украина — 220, Россия — 176, Беларусь — 20, Молдова — 140. Более подробно об идентификаторах различных стран смотрим в файле system\cache\cache.country.status… (для начала потестируйте процесс регистрации и выберите те страны, которые Вам необходимо использовать для регистрации).

И меняем найденный нами код на следующий:

<?php if ($country['country_id'] == 220) { ?>
 
и теперь по умолчанию будет первой появляться Украина, так как подставлен именно ее id.
Если же нам необходимо, чтобы и в поле Регион/Область отображался определенный город, то в этих же файлах находим код:
if (json['zone'][i]['zone_id'] == '<?php echo $zone_id; ?>') {
 html += ' selected="selected"';
 }
 
и меняем его на код с идентификатором города Киева:

if (json['zone'][i]['zone_id'] == 3491) {
 html += ' selected="selected"';
 }
 
Опять таки. если нам необходимо узнать id другого города, то снова заглядываем в кэш:  system\cache\cache.zone…
И теперь новый покупатель во время оформления заказа сразу видит вот такую картину:

 
 
Что же, что касается вывода определенных стран или городов/регионов по умолчанию, то теперь мы знаем как это делать. Ну, а как же все же убрать список стран и оставить только те, которые нам нужны?
Существует два способа, которыми можно это осуществить:
1. Через админ-панель магазина. 
Идем по вкладкам Система/Локализация/Регионы и удаляем ненужные регионы.

 
 
Затем идем  Система/Локализация/Страны  и удаляем ненужные страны, не забывая оставить те, которые нужны.

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

2. Удаляем ненужные страны и регионы через phpmyadmin.
Если предыдущий способ позволял удалить ненужные страны из административной части самого магазина, то данный способ осуществим лишь из, так сказать, технической части магазина — phpmyadmin. И нет никакой разницы в том где находится ваш магазин, и на сервере в интернете (хостинг) и на локальном хостинге процесс один и тот же.
Итак, попав в phpmyadmin, слева выбираем ту базу данных, которая содержит таблицы магазина.

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

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

 
 
Теперь перейдем к редактированию регионов. В списке таблиц выбираем таблицу «Zone» (внизу списка) и получаем перечень регионов. Опять таки можно увеличить количество выводимых регионов на одной странице, изменив 30 на любое другое  число (к примеру, указав 500, получим 8 страниц, а указав 1000, — всего 4 страницы и т.д. Но чем больше цифра, тем дольше может обрабатываться запрос.)

 
 
В самом конце (под всеми 500 или 1000 выводимыми регионами), как и в странах,  находим «Отметить все», нажимаем и тем самым отмечаем все регионы, и жмем «Удалить».

 
 
Вот таким способом мы удалили 500 первых ненужных регионов. Остальные удаляем аналогичным образом, главное не забываем о том, что необходимо оставить нужные для нас регионы. К примеру, нам необходимо оставить в наших регионах Киев ( 3491 ), то мы обязательно снять с него отметку. Найти нужный регион или город не составит труда, так как идентификаторы в таблице идут в порядке возрастания. Как мы ранее узнали, идентификаторы регионов и стран находим в кэше.
И в итоге получим желаемый результат: список стран и регионов, в оформлении заказа, будет ограничиваться тем списком, который мы установим сами.


Купить запчасти на иномарки по самым лучшим ценам!

Немає коментарів:

Дописати коментар