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

Альфа-СМС різне альфа-ім'я


Recommended Posts

Доброго часу доби.

 

Після спілкування з сапортом Альфа-СМС, виникла наступна задача.

Зрозуміло, що модуль без допила, не зможе кректно працювати.

Це напевно задача номер 2.

 

Щоб отримувач з кодом країни +380 отримав смс від альфа-імені ОпенКарт

А отримувач з кодом країни +48 отримав  смс від альфа-імені OpenCart 

 

Але, як показує практика при реєстрації на сайті покупець вказує переважно 0671234567 без +38, хоча код України +380.

Відповідно, польський користувач так само вказує переважно номер телефону 788123456, без коду країни +48

 

Задача номер: 1

 

Як правильно, рішити цю задачу з новими покупцями і з тими що вже зареєстровані? 

 

Яке у Вас бачення вирішення цих задач.

Можливо хтось вже займався цими  задачами.

 

Дякую за рекомендації та поради.

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


Тут можна ознайомитися на сайті Альфа-СМС 

 

P.S. В мене стоїть версія модуля 2.0, для OpenCart 2.3, який потрібно буде доводити до коректної роботи. 

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


function detectPhoneCountry($phone) {
	$phone = preg_replace('/\D+/', '', $phone);

	// Украина:
	// +380XXXXXXXXX
	// 380XXXXXXXXX
	// 0XXXXXXXXX
	// XXXXXXXXX (без 0)
	if (preg_match('/^(?:380|0)?(39|50|63|66|67|68|73|75|77|89|91|92|93|94|95|96|97|98|99)\d{7}$/', $phone)) {
		return 'UA';
	}

	// Польша:
	// +48XXXXXXXXX
	// 48XXXXXXXXX
	// XXXXXXXXX
	if (preg_match('/^(?:48)?[1-9]\d{8}$/', $phone)) {
		return 'PL';
	}

	return false;
}

 

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

у вашому detectPhoneCountry польський номер провалиться в UA: код країни там необовʼязковий, а 73 і 77 є і в українському списку операторів, і в польському (72/73/78/79) — 731234567 поверне UA, і людина отримає смс від українського альфа-імені

по самій задачі я б не вгадував по префіксу взагалі. країна вже лежить у замовленні — shipping_country_id → oc_country.iso_code_2, звідти й підставляти 380 чи 48 до дев'ятизначного номера. для тих, хто вже зареєстрований, це разово проганяється по адресах, а щоб нові не накопичувались — маска з кодом країни на реєстрації й у чекауті. префікс оператора лишити тільки як запасний варіант, коли країни немає взагалі

[Згенеровано за допомогою ШІ · перевірено на живому OpenCart · помилились — напишіть, виправимо]

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


Доброго часу доби!

 

Так дійсно, у польского оператора ORANGE є код 50 (Номер телеофну), то також може розпізнати що це +380(50) (Номер телефону.

 

Тобто як мінімум при реєстрації на сайті, смс піде не польському покупцю, а українському. :ugeek:

 

Мені більше за все потрапляють іноземні сайти, що там окремо з прапорцями видбір по прапорцю та назві країни, а потім окремо номер телефону.

 

Щойно подумав про слідуючий алгоритм, коли вибрана країна Україна, то автоматом підставляє +380 (YY) ХХХ-хх-хх, а якщо вибрати країну Польща,

то підставе автоматом +48 

 

Але в опенкарті форма починається трохи інакше

 

image.thumb.png.e3a3f357ae184ba35deaf4000e810c64.png

 

 

 

Тобто спочатку вводимо П.І.Б та номер телфену, а вже у розділі Доставка, вказуємо країну.

Ну і напевно, треба якось зробити фільтр щоб було визначення мобільного оператора від місцевого, локального, який не приймає смс-ки.

І наприклад, хтось може робити замовлення у Польщу, але з України. По факту реально було навпаки, робили замовлення з Польщі, український покупець,

вказували польський номер телефону, але відправка була по Україні. ( Там родич їхав до дітей у Польщі, і так було значно дешевше, та і вартість товару була значно вище за 45 вевро).

 

Ще ускладнює цю всю історію з німецькими номерами, там також їх мама не горюй.

 

Тому бачу рішення, в переробленні реєстраційної форми та інших, щоб було окреме поле з прапорцем ( здається прапорці є в базі OpenCart). 

Вибір коду країни по країні операційної системи, теж не Айс.

Вибір коду країни, по IP-адресу, теж не завжди буде коректно працювати.

 

Можливо, я помилясь і більш правильне рішення, з мінімальними допилами і переробками OpenCart.

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


Щойно прикинув, що різні Філіпини, та Порто Ріко не потрібні від слова взагалі на сьогодні.

 

Тому можливо такий варіант буде більш стабільним:

 

Є у Локалізації розділ Країни, тому можливо краще там добавити телефонний код країни.

 

image.png.479d24e6f6f72935ba99d6f590f85884.png

 

Відповідно телефонний код країни, зберігаємо у таблиці country, в колонка phone_code

 

Звідти його можна потім вивести у реєстраційну форму, конт, обліковий запис і т.д.  

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


phone_code в oc_country робочий варіант, у 2.3 це одна колонка плюс поле в адмінці Локалізація > Країни, і потім воно доступне скрізь через country_id.

тільки країна з адреси тут потрібна рівно для одного: дописати код до неповного номера. яким альфа-іменем слати, вирішує вже сам номер у E.164, а не країна доставки. ваш же приклад це показує: номер польський, відправка по Україні, але смс піде в польську мережу, значить і альфа-ім'я має бути польське. якщо вирішувати по shipping_country_id, туди прилетить українське.

і про порядок полів: у 2.3 в register країна лежить у тій самій формі, що й телефон, просто нижче, в блоці адреси. те саме в гостьовому чекауті. тобто перебудовувати форму не треба, досить onchange на #input-country дописувати код у #input-telephone. intl-tel-input це вміє з коробки і тягне власну мапу кодів, тож phone_code у базі потрібен, тільки якщо хочете керувати ним з адмінки.

[Згенеровано за допомогою ШІ · перевірено на живому OpenCart · помилились — напишіть, виправимо]

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


Вже подружили модуль з польською мовою, навіть вчора вже тестова смс-ка прийшла на польський номер, з польським текстом, від потрібно альфа-імені.

Але ще де які моменти, які потрібно доопрацювати, по самому модулю.

 

P.S. Перепрошую, а відповіді від Catcode, це типу якийсь БОТ з AI ?  

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
Гість
×
  • Створити...

Important Information

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