For the complete documentation index, see llms.txt. This page is also available as Markdown.

Валідація customerData

агальний опис логіки валідації

Збір даних клієнта виконується в методі prepareCustomerData(). Об'єкт заповнюється на основі даних профілю користувача ($customer), контексту системи ($context) та адреси доставки замовлення (id_address_delivery). Після цього дані передаються на перевірку в CustomerDataValidator.

Назва поля

Тип даних

Обов'язкове

Макс. довжина

Джерело даних у PrestaShop

Особливі правила валідації та фільтрації

senderBirthday

date

Ні

50

$customer->birthday

Передається лише якщо значення не дорівнює за замовчуванням '0000-00-00'. Нормалізується через DateTimeNormalizer до формату d.m.Y.

senderCustomerId

string

Так

255

$customer->id

(Для гостей: (string)$customer->id ?? $customer->email)

Якщо порожнє або не валідне — викидає LocalizationException.

senderFirstName

string

Ні

30

$customer->firstname

  1. Regex: Літери, цифри, дефіс, апостроф, пробіли. Без спецсимволів на краях строки.

  1. Не лише цифри: Не може складатися суто з цифр.

  1. Стоп-слова: Реєстронезалежний повний збіг з NULL, 3D SECURE, SURNAME, CARDHOLDER, UNKNOWN.

senderLastName

string

Ні

30

$customer->lastname

Аналогічно до senderFirstName (без перевірки стоп-слів).

senderMiddleName

string

Ні

30

Не заповнюється в prepareCustomerData

Правило задекларовано в SDK/валідаторі, але PrestaShop не передає його за замовчуванням.

senderEmail

email

Ні

256

$customer->email

Валідується через нативний PHP флаг filter_var($value, FILTER_VALIDATE_EMAIL).

senderCountry

string

Ні

3

$context->country->iso_code

Двозначний код країни (Alpha2) перетворюється в числовий ISO-код за допомогою countryCodeProvider.

senderRegion

string

Ні

255

$customerAddress['state']

Отримується через метод $customer->getSimpleAddress().

senderCity

string

Ні

25

$customerAddress['city']

Стандартна перевірка довжини.

senderStreet

string

Ні

35

$customerAddress['address1']

Стандартна перевірка довжини.

senderAdditionalAddress

string

Ні

255

$customerAddress['address2']

Стандартна перевірка довжини.

senderIp

ip

Ні

Tools::getRemoteAddr()

Валідується через filter_var($value, FILTER_VALIDATE_IP). Якщо IP невалідний — поле видаляється.

senderPhone

numeric_string

Ні

20

$customerAddress['phone'] ?? $customerAddress['phone_mobile']

Фолбек: Якщо домашній телефон відсутній, береться мобільний.

⚠️ Увага: Має містити тільки цифри через перевірку ctype_digit.

senderZipCode

string

Ні

50

$customerAddress['postcode']

Стандартна перевірка довжини.

senderGender

string

Ні

Обчислюється на основі $customer->id_gender

Кастомне поле. Мапиться так: 1 ➡️ 'Male', 2 ➡️ 'Female', все інше ➡️ 'Other'. Проходить повз цикл валідації правил.

Останнє оновлення