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


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

 jul · 19 января 2013

 

 

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

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

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

catalog/view/theme/default/template/checkout/guest.tpl – для оформления заказа без регистрации

catalog/view/theme/default/template/checkout/register.tpl – для оформления заказа с прохождением регистрации

и ищем одну и ту же строку в обоих файлах:

1
<?php if ($country['country_id'] == $country_id) { ?>

Поскольку каждая страна имеет свой числовой идентификатор(id), то нам необходимо указать именно тот id, который присвоен нужной нам стране. ID вышеупомянутых стран и пары соседних:

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

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

1
<?php if ($country['country_id'] == 220) { ?>

и теперь по умолчанию будет первой появляться Украина, так как подставлен именно ее id.

Если же нам необходимо, чтобы и в поле Регион/Область отображался определенный город, то в этих же файлах находим код:

1
2
3
if (json['zone'][i]['zone_id'] == '<?php echo $zone_id; ?>') {
html += ' selected="selected"';
}

и меняем его на код с идентификатором города Киева:

1
2
3
if (json['zone'][i]['zone_id'] == 3491) {
html += ' selected="selected"';
}

Опять таки. если нам необходимо узнать id другого города, то снова заглядываем в кэш:  systemcachecache.zone…

И теперь новый покупатель во время оформления заказа сразу видит вот такую картину:

 

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

Существует два способа, которыми можно это осуществить:

 

1. Через админ-панель магазина. 

Идем по вкладкам Система/Локализация/Регионы и удаляем ненужные регионы.

 

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

 

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

 

2. Удаляем ненужные страны и регионы через phpmyadmin.

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

Итак, попав в phpmyadmin, слева выбираем ту базу данных, которая содержит таблицы магазина.

 

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

 

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

 

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

 

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

 

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

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

 
 

http://jul-collection.com/opencart-ubiraem-lishnie-stranyi-i-ustanavlivaem-po-umolchaniyu-opredelennuyu-stranu.html

Губарь Маргарита Александровна