Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Модуль Модуль Simple - упрощенная регистрация и заказ [Поддержка]


Recommended Posts

Вопрос откуда берется $fields_settings['init_geoip'] и при каких условиях оно может не существовать? (у меня не существует этой записи в массиве $fields_settings)

И в копилку хорошего модуля небольшая оптимизация.

В админке модуля 3 вкладка, настройки полей страна, регион, город, почтовый индекс - использовать определение по IP.

Статическую переменную добавлю, API добавлял в последнюю очередь и решил сразу же написать метод для своей старой базы копированием со старой версии :)

Надіслати
Поділитися на інших сайтах

В админке модуля 3 вкладка, настройки полей страна, регион, город, почтовый индекс - использовать определение по IP.

Статическую переменную добавлю, API добавлял в последнюю очередь и решил сразу же написать метод для своей старой базы копированием со старой версии :)

А, вот оно что, чекбоксы эти пропустил ;)

У нас международные доставки. Выкладываю определение страны по GeoIP, думаю еще кому-то пригодится. Вообщем-то если включить в официальный код, модуль так будет более универсальным.

Как видно может работать автовыбором с двумя гео ф-циями:

- apache_note - через apache mod_geoip, если он установлен.

- geoip_record_by_name - это php расширение geoip, если включено.

файл catalog/model/tool/simplegeo.php:

	public function getGeoIp() {
		static $geo=false;	// false, чтобы не null;
		if (is_array($geo) || is_null($geo)) return $geo; // null отдает $this->cache->get(); если кэша нет;

		if (!$geo = $this->getGeoIpBySimpleOpenCart())
		{
			$ip = isset($this->request->server['HTTP_X_FORWARDED_FOR']) && $this->request->server['HTTP_X_FORWARDED_FOR'] ? $this->request->server['HTTP_X_FORWARDED_FOR'] : 0;
			$ip = $ip ? $ip : $this->request->server['REMOTE_ADDR'];

			if (function_exists('apache_note') && $code = apache_note('GEOIP_COUNTRY_CODE'))
			{
				if ($country_id = $this->getCountryIdbyISO($code))
				{
					$geo = array(
						'country_id' => $country_id,
						'zone_id' => '',
						'city' => '',
						'postcode' => '',
					);
				}
			}
			else if (function_exists('geoip_record_by_name') && $code = geoip_record_by_name($ip))
			{
				if ($country_id = $this->getCountryIdbyISO($code['country_code']))
				{
					$geo = array(
						'country_id' => $country_id,
						'zone_id' => '',
						'city' => '',
						'postcode' => '',
					);
				}
			}
		}

		return $geo;
	}

	private function getCountryIdbyISO ($iso) {
		if (!is_string($iso) && strlen($iso) != 2) return false;  // RU
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "country WHERE iso_code_2 = '" . $iso . "' AND status = '1'");

		if ($query->row) {
			return $query->row['country_id'];
		}
		else return false;
	}

P.S.

Из пожеланий для будущих версий, раз модуль такой "user-friendly", возможно ли сделать сортировку стран, чтобы была возможность задать в списке стран самыми первыми страны СНГ, вроде:

<option value="176" style="famous">Россия</option>
<option value="220" style="famous">Украина</option>
<option value="20" style="famous">Белоруссия</option>
<option value="13">Австралия</option>
<option value="14">Австрия</option>
<option value="15">Азербайджан</option
Кроме как лезть править движок - не знаю каким образом реализовать, а модуль я так понимаю как раз все фильтрует и по-своему выводит, задавая свои правила.
Надіслати
Поділитися на інших сайтах


SFR,

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

Заранее спасибо.

Надіслати
Поділитися на інших сайтах


lewys,

замените файл catalog/model/tool/simplegeo.php тем что в приложении.

далее как уже выше сказано, в админке модуля 3 вкладка, настройки полей страна - поставить галочку "использовать определение по IP".

и у вас на сервере/хостинге должен быть включен mod_geoip. Это уже к админам/хостерам.

simplegeo.php

Надіслати
Поділитися на інших сайтах


Из пожеланий для будущих версий, раз модуль такой "user-friendly", возможно ли сделать сортировку стран, чтобы была возможность задать в списке стран самыми первыми страны СНГ, вроде:

<option value="176" style="famous">Россия</option>
<option value="220" style="famous">Украина</option>
<option value="20" style="famous">Белоруссия</option>
<option value="13">Австралия</option>
<option value="14">Австрия</option>
<option value="15">Азербайджан</option
Кроме как лезть править движок - не знаю каким образом реализовать, а модуль я так понимаю как раз все фильтрует и по-своему выводит, задавая свои правила.

KISS. Пробел перед названием страны поставьте.

Надіслати
Поділитися на інших сайтах


KISS. Пробел перед названием страны поставьте.

Спасибо за интересное решение. Правда подходит разве что как временный костыль.

Используются модули автоматического рассчета разных способов доставки в страны, и править все модули добавляя trim() не дело, к тому же неизвестно как этот костыль вспоследствии внезапно всплывет)

Надіслати
Поділитися на інших сайтах


lewys,

замените файл catalog/model/tool/simplegeo.php тем что в приложении.

далее как уже выше сказано, в админке модуля 3 вкладка, настройки полей страна - поставить галочку "использовать определение по IP".

и у вас на сервере/хостинге должен быть включен mod_geoip. Это уже к админам/хостерам.

Спасибо за ответ, а можно ли как-то проверить включен ли mod_geoip, кроме как методом тыка?

Надіслати
Поділитися на інших сайтах


deeman,

А можно где-то вести changelog версий? Модуль хороший, обновляться надо. Но перед каждым обновлением вынуждены смотреть diff, перед заливкой на production.

По поводу версии 2.0.11:

то что добавлено:

class ModelToolSimpleGeo extends Model {

	static $checked = false;
и изменения в методе getGeoIpBySimpleOpenCart() сильно отличаются от предложенного способа по эффективнсоти.

Пример первого запроса (когда страна еще не выбрана)

В вашем случае:

QUERY1!QUERY2!GEOIP!QUERY2!GEOIP!

В предложенном случае:

QUERY1!QUERY2!GEOIP!
(запросы выполняются не более 1 раза и попадают в кэш статической переменной функции)

Можете расставить флаги и проверить.

Нам вообщем-то не трудно добавлять свой кусок при каждом обновлении модуля, но когда можно сделать "легче" для всех - почему бы не попробовать этого добиться.

lewys,

Скачайте файл в приложении, залейте на сервер и запустите его напрямую в бразуере (domain.com/test.php).

test.php

Надіслати
Поділитися на інших сайтах


В 2.0.12 неточность в файле simplegeo.php

первый найденный

if (!isset($geo)) {

заменить на

if (!$geo) {
тк если $geo false, то getGeoIpByMaxMind() не отрабатывает.

Отдельное спасибо за changelog!

Сорри, там надо не это заменить, а поменять метку для кэша в этом методе.

Так как кэш нужен еще и тогда, когда данных для данного IP нет, чтобы не перепроверялось при следующей загрузке страницы. Строка 50 и 76

'geo.' . $ip_int => 'maxmind.' . $ip_int

Надіслати
Поділитися на інших сайтах

Дмитрий, спрошу еще раз по поводу кнопки back, я не могу ее найти в simplecheckout.tpl, как она там выглядит?

simplecheckout.tpl

<!-- для дефолтного шаблона -->
<a class="simplecheckout-button" onclick="javascript:history.back()"><span><?php echo $button_back; ?></span></a>
<!--- для шоппики -->
<a class="s_button_1 s_main_color_bgr" onclick="javascript:history.back()"><span class="s_text"><?php echo $button_back; ?></span></a>
Надіслати
Поділитися на інших сайтах

simplecheckout.tpl

<!-- для дефолтного шаблона -->
<a class="simplecheckout-button" onclick="javascript:history.back()"><span><?php echo $button_back; ?></span></a>
<!--- для шоппики -->
<a class="s_button_1 s_main_color_bgr" onclick="javascript:history.back()"><span class="s_text"><?php echo $button_back; ?></span></a>

Извиняюсь за тупость, но как добавить к этому новый класс?

<a class="s_button_1 s_main_color_bgr" onclick="javascript:history.back()"><span class="s_text"><?php echo $button_back; ?></span></a>

Я в этом полный ноль, пробую разные варианты, но что-то не получается.

Еще есть проблема с медленной загрузкой модуля, сначала грузится блок с полями клиента, потом секунды через 3-4 доставка, еще секунды через 2 оплата, ну и еще секунду-две блок корзины. С чем это может быть связано?

  • +1 1
Надіслати
Поділитися на інших сайтах


Извиняюсь за тупость, но как добавить к этому новый класс?

<a class="s_button_1 s_main_color_bgr" onclick="javascript:history.back()"><span class="s_text"><?php echo $button_back; ?></span></a>

Я в этом полный ноль, пробую разные варианты, но что-то не получается.

Еще есть проблема с медленной загрузкой модуля, сначала грузится блок с полями клиента, потом секунды через 3-4 доставка, еще секунды через 2 оплата, ну и еще секунду-две блок корзины. С чем это может быть связано?

Через пробел добавить новый

class="s_button_1 s_main_color_bgr my_css_class"

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

Надіслати
Поділитися на інших сайтах

<aclass="class="s_button_1 s_main_color_bgr my_css_class" onclick="javascript:history.back()"><spanclass="s_text"><?php echo $button_back;?></span></a>

Так?

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

Надіслати
Поділитися на інших сайтах


Поменял

<a class="s_button_1 s_main_color_bgr" onclick="javascript:history.back()"><span class="s_text"><?php echo $button_back; ?></span></a>

На

<a class="s_button_1 s_main_color_bgr simplecheckout-button-back" onclick="javascript:history.back()"><span class="s_text"><?php echo $button_back; ?></span></a>

Добавил в simple.css

.simplecheckout-button-back {

float:left;

}

Но ничего не поменялось

Надіслати
Поділитися на інших сайтах


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

AceShop: 1.4.3 OpenCart: 1.5.1.3 версия модуля 2.0.12 Модуль не работает, подскажите пожалуйста в какую сторону копать...

ссылка на сайт тут...

Заранее спасибо

Надіслати
Поділитися на інших сайтах


Делаю новую версию, добавил быструю первую загрузку модуля, подправил три файла. Если кому-нибудь они нужны прямо сейчас (кто-то хочет испытать или не хочет ждать новую версию), то напишите мне в личку свою почту, скину. Общую рассылку делать не хочу пока что, чтобы не сбивать народ с толку и не плодить версии.

Изменены три файла

simplecheckout.php

simplecheckout.tpl

simplecheckout.js

Надіслати
Поділитися на інших сайтах

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

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

Один вопрос: Не могли бы Вы сделать следующую вещь --- Группы покупателей.

Изображение

Теперь администратор магазина может создавать группы покупателей и назначать этим группам различные данные, которые будут показаны покупателю при регистрации его в магазине, а именно: админ может установить какие поля для определенной группы покупателей будут показаны при регистрации и может указать вплоть до предельного минимума всего из трех полей - это "Имя, Отчество", "Фамилия", "e-mail" при гостевом оформлении заказа, т.е. покупателю теперь не нужно заполнять кучу полей при регистрации его в магазине или при оформлении заказа, тем самым отпугивая его от совершения сделки.

Изображение

Если админ правильно настроит группы покупателей, то его продажи возрастут.

Думаю это будет интересно многим, тем более если магазины работают и в розницу и в опт.

Даное решение применено в сборке MaxyStore на базе OpenCart v.1.5.3.1, она распространяеться на бесплатной основе , так что это не будет нарушение авторских прав. А то сейчас приходиться отключать вашу регистрацию, хотя она очень неплохая и гибко настраеваеться ((((

Заранее спасибо, жду ответ...

Надіслати
Поділитися на інших сайтах


и у вас на сервере/хостинге должен быть включен mod_geoip. Это уже к админам/хостерам.

Хостер сказал что такой возможности нет, существуют ли альтернативные варианты?

Надіслати
Поділитися на інших сайтах


Добрый день, почему то модуль глючно работает с модулем "Скидка/Наценка на метод оплаты" иногда плюсует наценку а иногда нет. Хотелось бы разобраться с этим вопросом.

Надіслати
Поділитися на інших сайтах


Добрый день, почему то модуль глючно работает с модулем "Скидка/Наценка на метод оплаты" иногда плюсует наценку а иногда нет. Хотелось бы разобраться с этим вопросом.

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

Файл catalogmodeltotalpaymentmethoddiscounts.php

строка 7

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

Нужно удалить

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

Надіслати
Поділитися на інших сайтах

  • dinox changed the title to Модуль Simple - упрощенная регистрация и заказ [Поддержка]

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.