Перейти до вмісту

Запити пропозицій (RFQ)

Модуль запитів пропозицій (RFQ) замінює кнопку “Додати до кошика” на “Запитати ціну”. Клієнти подають запити замість прямих покупок. Корисно в магазинах B2B та при продуктах з індивідуальною оцінкою.

Перейдіть до WooCommerce > Налаштування > Polski PRO > Запити пропозицій та увімкніть модуль.

ПараметрОпція в базіЗначення за замовчуваннямОпис
Увімкнути модульpolski_quoteНіАктивує функціональність запитів пропозицій
Текст кнопкиpolski_quote_button_text”Zapytaj o cenę”Текст, що відображається на кнопці
Показувати на спискахpolski_quote_show_on_loopsНіВідображає кнопку запиту на сторінках архіву та категорії
Вимагати авторизаціїpolski_quote_require_loginНіВимагає авторизації перед надсиланням запиту
Згода на обробкуpolski_quote_consentТакДодає чекбокс згоди GDPR до форми

Форма запиту пропозиції містить за замовчуванням:

  • Ім’я та прізвище - обов’язкове
  • Адреса електронної пошти - обов’язкове, валідація формату
  • Телефон - необов’язкове
  • Кількість - обов’язкове, числова валідація
  • Повідомлення - необов’язкове, textarea
  • Згода GDPR - чекбокс, обов’язкове якщо увімкнено

Після увімкнення модуля кнопка “Додати до кошика” замінюється кнопкою запиту пропозиції. Це стосується:

  • Сторінки окремого продукту
  • Сторінок архіву та категорії (якщо опція polski_quote_show_on_loops увімкнена)
  • Віджетів та шорткодів продуктів

Кнопку запиту пропозиції можна розмістити в довільному місці за допомогою шорткоду:

[polski_quote_button product_id="123" text="Zapytaj o cenę" class="custom-class"]

Параметри:

ПараметрОбов’язковийОпис
product_idНіID продукту (за замовчуванням поточний продукт)
textНіТекст кнопки
classНіДодаткові CSS-класи

Форма надсилається асинхронно (AJAX), без перезавантаження сторінки. Після надсилання клієнт бачить повідомлення підтвердження з номером запиту.

/**
* Filtruje dane zapytania ofertowego przed zapisem.
*
* @param array $quote_data Dane zapytania
* @param int $product_id ID produktu
* @param \WP_User $user Obiekt zalogowanego użytkownika lub pusty
*/
apply_filters('polski_pro/quote/before_save', array $quote_data, int $product_id, $user): array;

Приклад - додавання нестандартного поля:

add_filter('polski_pro/quote/before_save', function (array $quote_data, int $product_id, $user): array {
$quote_data['meta']['company_nip'] = sanitize_text_field($_POST['company_nip'] ?? '');
return $quote_data;
}, 10, 3);

Кожний запит пропозиції зберігає інформацію про надані згоди:

  • Мітка часу (timestamp) надання згоди
  • IP-адреса клієнта (хешована SHA-256)
  • Зміст згоди на момент надання
  • Версія форми

Ці дані зберігаються в таблиці {prefix}_polski_quote_consents та можуть бути експортовані для цілей аудиту GDPR.

/**
* Akcja wywoływana po zapisaniu zgody.
*
* @param int $quote_id ID zapytania ofertowego
* @param array $consent Dane zgody
* @param string $ip_hash Zahashowany adres IP
*/
do_action('polski_pro/quote/consent_logged', int $quote_id, array $consent, string $ip_hash);

Адміністративна панель

Section titled “Адміністративна панель”

Запити пропозицій доступні в меню WooCommerce > Запити пропозицій. Список містить:

  • Номер запиту
  • Дані клієнта (ім’я, електронна пошта, телефон)
  • Продукт та кількість
  • Статус (новий, в процесі, відповіль надано, закритий)
  • Дата подання
СтатусОпис
newНовий запит, необроблений
in_progressВ процесі підготовки пропозиції
repliedПропозиція надіслана клієнту
acceptedКлієнт прийняв пропозицію
rejectedКлієнт відхилив пропозицію
closedЗапит закритий

З адміністративної панелі адміністратор може:

  1. Переглянути деталі запиту
  2. Додати внутрішню нотатку
  3. Встановити ціну пропозиції
  4. Надіслати відповідь електронною поштою клієнту
  5. Перетворити запит на замовлення WooCommerce

Сповіщення електронною поштою

Section titled “Сповіщення електронною поштою”

Модуль реєструє наступні шаблони листів у WooCommerce:

ЛистОтримувачТригер
Новий запит пропозиціїАдміністраторПодання запиту клієнтом
Підтвердження запитуКлієнтПодання запиту
Відповідь на запитКлієнтНадсилання пропозиції адміністратором
Зміна статусу запитуКлієнтЗміна статусу запиту

Шаблони листів можна перевизначити в темі в каталозі woocommerce/emails/:

  • polski-pro-quote-new.php
  • polski-pro-quote-confirmation.php
  • polski-pro-quote-reply.php
  • polski-pro-quote-status.php
/**
* Filtruje pola formularza zapytania ofertowego.
*
* @param array $fields Tablica pól formularza
* @param int $product_id ID produktu
*/
apply_filters('polski_pro/quote/form_fields', array $fields, int $product_id): array;

Приклад - додавання поля NIP:

add_filter('polski_pro/quote/form_fields', function (array $fields, int $product_id): array {
$fields['company_nip'] = [
'type' => 'text',
'label' => 'NIP firmy',
'required' => false,
'priority' => 35,
];
return $fields;
}, 10, 2);
/**
* Akcja wywoływana po zapisaniu zapytania ofertowego.
*
* @param int $quote_id ID zapytania
* @param array $quote_data Dane zapytania
*/
do_action('polski_pro/quote/submitted', int $quote_id, array $quote_data);

Приклад - надсилання до CRM:

add_action('polski_pro/quote/submitted', function (int $quote_id, array $quote_data): void {
$crm_api = new MyCrmApi();
$crm_api->create_lead([
'name' => $quote_data['name'],
'email' => $quote_data['email'],
'product' => $quote_data['product_name'],
'qty' => $quote_data['quantity'],
]);
}, 10, 2);

Кнопка “Додати до кошика” все ще відображається Перевірте, чи опція polski_quote увімкнена. Очистіть кеш плагінів кешування (WP Super Cache, W3 Total Cache, LiteSpeed Cache).

Форма не надсилається (помилка AJAX) Перевірте консоль браузера на наявність помилок JavaScript. Переконайтеся, що скрипт polski-pro-quote.js завантажений. Конфлікти з іншими плагінами можуть блокувати AJAX - вимкніть інші плагіни, щоб виявити конфлікт.

Листи не надсилаються Перевірте конфігурацію електронних листів у WooCommerce > Налаштування > Електронні листи. Переконайтеся, що шаблони Polski PRO увімкнені.

Ця сторінка має виключно інформаційний характер і не є юридичною консультацією. Перед впровадженням зверніться до юриста. Polski for WooCommerce - це програмне забезпечення з відкритим кодом (GPLv2), що надається без гарантій.