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

Вбудовані способи оплати

sCommerce включає два способи оплати з коробки:

  1. Оплата готівкою - Прийом готівкових платежів (накладений платіж)
  2. Оплата на рахунок - Прийом банківських переказів через рахунок

Оплата готівкою​

Огляд​

Спосіб оплати готівкою - це простий варіант оплати, який не потребує інтеграції із зовнішніми платіжними шлюзами. Він ідеально підходить для:

  • Замовлень з накладеним платежем (НП)
  • Самовивозу з оплатою готівкою
  • Локальних доставок зі збором готівки
  • Ринків, де готівка є переважним способом оплати

Функції​

  • ✅ Без зовнішніх залежностей - Працює без сторонніх інтеграцій
  • ✅ Просте налаштування - Мінімальна настройка
  • ✅ Власні повідомлення - Додайте інформаційний текст для клієнтів
  • ✅ Підтримка кількох мов - Локалізовані назви та описи
  • ✅ Без комісій за транзакції - Прямі платежі без посередників

Конфігурація​

Крок 1: Доступ до способів оплати​

  1. Перейдіть до: Панель адміністратора → Модулі → Commerce → Платежі
  2. Знайдіть "Готівка" у списку способів оплати
  3. Клацніть на спосіб оплати, щоб налаштувати його

Крок 2: Основні налаштування​

Активний: Перемикач для увімкнення/вимкнення способу оплати

Позиція: Встановіть порядок відображення (менші числа відображаються першими)

Назва: Локалізована назва способу оплати, що відображається клієнтам

  • Англійська: "Cash"
  • Українська: "Готівка"
  • Російська: "Наличные"

Опис: Локалізований опис, що відображається під час оформлення замовлення

  • Англійська: "Pay with cash upon delivery or pickup"
  • Українська: "Оплата готівкою при отриманні"
  • Російська: "Оплата наличными при получении"

Крок 3: Додаткові налаштування​

Інформаційне повідомлення: Необов'язкове повідомлення, що відображається клієнтам під час оформлення

Приклади повідомлень:

  • "Будь ласка, підготуйте точну суму для доставки"
  • "Готівкова оплата приймається тільки в національній валюті"
  • "Доставки понад 10000 грн можуть потребувати передоплати"

Використання при оформленні​

Коли клієнт обирає спосіб оплати Готівка під час оформлення:

  1. Відображається назва та опис способу оплати
  2. Показується інформаційне повідомлення (якщо налаштоване)
  3. Замовлення створюється зі статусом "очікує оплати"
  4. Кнопка оплати не відображається (оплата буде зібрана офлайн)

Обробка замовлення​

При обробці замовлень з оплатою готівкою:

  1. Замовлення створено: Статус встановлюється на "очікує"
  2. Замовлення підготовлено: Оновіть статус на "готове до відправки"
  3. Замовлення відправлено: Оновіть статус на "відправлено"
  4. Оплата отримана: Після отримання готівки оновіть статус на "оплачено"
  5. Замовлення виконано: Позначте замовлення як "виконане"

Frontend інтеграція​

Відображення способу оплати​

Спосіб оплати готівкою автоматично включається в список способів оплати при оформленні:

$checkout = new sCheckout();
$paymentMethods = $checkout->getPayments();

foreach ($paymentMethods as $method) {
echo '<div class="payment-method">';
echo '<input type="radio" name="payment_method" value="' . $method['key'] . '">';
echo '<label>' . $method['title'] . '</label>';
echo '<p>' . $method['description'] . '</p>';
echo '</div>';
}

Отримати конкретний спосіб оплати​

$checkout = new sCheckout();
$cashPayment = $checkout->getPayment('cash');

// Доступ до деталей платежу
echo $cashPayment['title']; // "Готівка"
echo $cashPayment['description']; // "Оплата готівкою при отриманні"
echo $cashPayment['info']; // Інформаційне повідомлення (якщо налаштоване)

API інтеграція​

Отримати доступні способи оплати​

GET /api/checkout/payments

Відповідь:

{
"success": true,
"payments": [
{
"id": 1,
"key": "cash",
"name": "cash",
"title": "Готівка",
"description": "Оплата готівкою при отриманні",
"info": "Будь ласка, підготуйте точну суму"
}
]
}

Обробити платіж готівкою​

POST /api/checkout/pay/cash

Тіло запиту:

{
"order_id": 123,
"payment_method": "cash"
}

Відповідь:

{
"success": true,
"message": "Замовлення успішно створено",
"order": {
"id": 123,
"status": "pending",
"payment_method": "cash"
}
}

Найкращі практики​

1. Чітка комунікація​

  • Надайте чіткі інструкції щодо оплати готівкою в описі
  • Вкажіть, чи потрібна точна сума
  • Згадайте про будь-які максимальні ліміти готівкової оплати

2. Перевірка замовлення​

  • Зателефонуйте клієнтам перед відправкою для підтвердження замовлення
  • Перевірте адресу доставки
  • Підтвердіть суму оплати

3. Інструкції з доставки​

  • Навчіть персонал доставки процедурам збору готівки
  • Надайте квитанції для всіх готівкових транзакцій
  • Використовуйте безпечні методи обробки готівки

4. Управління ризиками​

  • Встановіть максимальну вартість замовлення для готівкових платежів
  • Вимагайте передоплату для дорогих замовлень
  • Моніторте підозрілі замовлення

Налаштування​

Власні інформаційні повідомлення за мовами​

// У панелі адміністратора встановіть різні повідомлення для кожної мови:

// Англійська
info: "Cash payment accepted. Please have exact change ready."

// Українська
info: "Приймаємо оплату готівкою. Будь ласка, підготуйте точну суму."

// Російська
info: "Принимаем оплату наличными. Пожалуйста, подготовьте точную сумму."

Відображення власного повідомлення в шаблоні​

@php
$checkout = new \Seiger\sCommerce\Checkout\sCheckout();
$cashPayment = $checkout->getPayment('cash');
@endphp

@if(isset($cashPayment['info']) && $cashPayment['info'])
<div class="alert alert-info">
<i class="icon-info"></i>
{{ $cashPayment['info'] }}
</div>
@endif

Усунення неполадок​

Спосіб оплати не відображається​

  1. Перевірте, чи активний: Переконайтеся, що спосіб оплати увімкнений у панелі адміністратора
  2. Перевірте позицію: Переконайтеся, що номер позиції встановлений правильно
  3. Перевірте дозволи: Переконайтеся, що способи оплати увімкнені глобально
  4. Очистіть кеш: Очистіть системний кеш для оновлення способів оплати

Платіж не обробляється​

  1. Валідуйте дані замовлення: Переконайтеся, що надано ID замовлення та спосіб оплати
  2. Перевірте статус замовлення: Переконайтеся, що замовлення може приймати платежі
  3. Переглянь те логи: Перевірте системні логи на наявність помилок обробки платежів

Приклад шаблону​

Повний вибір способу оплати при оформленні:

<div class="payment-methods">
<h3>Оберіть спосіб оплати</h3>

@php
$checkout = new \Seiger\sCommerce\Checkout\sCheckout();
$payments = $checkout->getPayments();
@endphp

@foreach($payments as $payment)
<div class="payment-method-option">
<label class="payment-method-label">
<input
type="radio"
name="payment_method"
value="{{ $payment['key'] }}"
required
>
<span class="payment-title">{{ $payment['title'] }}</span>
</label>

@if(!empty($payment['description']))
<p class="payment-description">{{ $payment['description'] }}</p>
@endif

@if(!empty($payment['info']))
<div class="payment-info">
<i class="icon-info"></i>
{{ $payment['info'] }}
</div>
@endif
</div>
@endforeach
</div>

Статистика та звіти​

Відстежуйте замовлення з оплатою готівкою:

use Seiger\sCommerce\Models\sOrder;

// Отримати всі замовлення з оплатою готівкою
$cashOrders = sOrder::where('payment_method', 'cash')
->where('status', 'paid')
->get();

// Розрахувати загальну суму зібраної готівки
$totalCash = sOrder::where('payment_method', 'cash')
->where('status', 'paid')
->sum('total');

// Отримати очікувані готівкові замовлення
$pendingCash = sOrder::where('payment_method', 'cash')
->where('status', 'pending')
->get();

Оплата на рахунок​

Огляд​

Спосіб оплати "Оплата на рахунок" дозволяє клієнтам оплачувати замовлення через банківський переказ. Цей спосіб оплати ідеально підходить для:

  • B2B (бізнес для бізнесу) транзакцій
  • Корпоративних клієнтів, які надають перевагу рахункам
  • Замовлень високої вартості, що потребують офіційної документації
  • Клієнтів, які потребують документацію для бухгалтерії
  • Міжнародних переказів, що вимагають банківських реквізитів

Функції​

  • ✅ Повні банківські реквізити - Відображення всієї необхідної банківської інформації
  • ✅ Налаштовувані терміни оплати - Встановлення дедлайнів оплати (1-30 днів)
  • ✅ Генерація рахунків - Опціональне автоматичне створення рахунків
  • ✅ Підтвердження оплати - Ручна перевірка отриманих платежів
  • ✅ Власні інструкції - Додавання специфічних вказівок щодо оплати
  • ✅ Підтримка кількох мов - Локалізоване відображення банківських реквізитів
  • ✅ Формат для друку - Зручний для друку формат реквізитів

Конфігурація​

Крок 1: Доступ до способів оплати​

  1. Перейдіть до: Панель адміністратора → Модулі → Commerce → Платежі
  2. Знайдіть "Оплата на рахунок" у списку способів оплати
  3. Клацніть на спосіб оплати для налаштування

Крок 2: Банківські реквізити (Credentials)​

Налаштуйте реквізити вашого банківського рахунку, які будуть відображатися клієнтам:

Отримувач платежу: Назва компанії або ФОП

  • Приклад: "ТОВ 'Ваша Компанія'"

Назва банку: Повна назва вашого банку

  • Приклад: "ПриватБанк" або "Монобанк"

Номер рахунку (IBAN): Ваш номер рахунку IBAN

  • Формат: UA123456789012345678901234567
  • Має бути валідний IBAN формат

Код банку (МФО): Код ідентифікації банку

  • МФО: 6-значний код (Україна)
  • SWIFT: 8 або 11 символів (Міжнародний)
  • Приклад: 305299 (МФО) або PBANUA2X (SWIFT)

ЄДРПОУ / ІПН: Податковий ідентифікатор компанії

  • ЄДРПОУ: 8 цифр (компанії в Україні)
  • ІПН: 10 цифр (фізособи в Україні)
  • Приклад: 12345678

Крок 3: Налаштування платежів​

Термін оплати (днів): Кількість днів для оплати

  • За замовчуванням: 7 днів
  • Діапазон: 1-30 днів

Автоматично генерувати рахунок: Увімкнення автоматичного створення рахунків

Вимагати підтвердження оплати: Вимога перевірки адміністратором

Інструкції з оплати: Додаткова інформація для клієнтів

  • Приклад: "Вказуйте номер замовлення у призначенні платежу"
  • Приклад: "Платіж має бути отриманий протягом 7 робочих днів"

Обробка замовлення​

  1. Замовлення створено: Статус "очікує оплати"
  2. Рахунок надіслано: Клієнт отримує email з реквізитами
  3. Оплата здійснена: Клієнт завершує банківський переказ
  4. Оплата підтверджена: Адмін перевіряє платіж та оновлює статус на "оплачено"
  5. Замовлення оброблено: Продовження нормального виконання замовлення

Frontend інтеграція​

$checkout = new sCheckout();
$paymentMethods = $checkout->getPayments();

foreach ($paymentMethods as $method) {
if ($method['key'] === 'bank_invoice') {
echo '<div class="payment-method">';
echo '<h3>' . $method['title'] . '</h3>';
echo '<p>' . $method['description'] . '</p>';

// Відобразити кнопку/деталі оплати
$paymentButton = $method['instance']->payButton($order);
echo $paymentButton;

echo '</div>';
}
}

Найкращі практики​

1. Чіткі інструкції​

  • Надайте чіткий формат призначення платежу
  • Вкажіть точні терміни оплати
  • Згадайте час обробки банківських переказів

2. Перевірка платежів​

  • Перевіряйте банківські виписки щодня
  • Звіряйте суми платежів точно
  • Перевіряйте номери замовлень у призначеннях платежів
  • Оновлюйте статуси замовлень швидко

3. Комунікація​

  • Надсилайте автоматичні email з реквізитами
  • Нагадуйте клієнтам перед закінченням терміну
  • Підтверджуйте отримання платежу
  • Надавайте квитанції після оплати

Статистика та звіти​

use Seiger\sCommerce\Models\sOrder;

// Отримати всі замовлення з оплатою на рахунок
$bankInvoiceOrders = sOrder::where('payment_method', 'bank_invoice')
->where('status', 'paid')
->get();

// Розрахувати загальну суму отриману
$totalReceived = sOrder::where('payment_method', 'bank_invoice')
->where('status', 'paid')
->sum('total');

// Отримати очікувані платежі
$awaitingPayment = sOrder::where('payment_method', 'bank_invoice')
->where('status', 'awaiting_payment')
->get();

// Отримати прострочені платежі
$overduePayments = sOrder::where('payment_method', 'bank_invoice')
->where('status', 'awaiting_payment')
->where('created_at', '<', now()->subDays(7))
->get();

Налаштування відображення​

Спосіб оплати "Оплата на рахунок" використовує Blade шаблон, який можна налаштувати під дизайн вашого сайту.

Порядок пошуку шаблонів​

Система шукає шаблони в такому порядку:

  1. Проєктний оверрайд: views/payment/bank_invoice.blade.php
  2. Оверрайд пакета: core/custom/packages/seiger/views/sCommercePro/Payment/bank_invoice.blade.php
  3. Типовий шаблон постачальника: core/vendor/seiger/scommerce/views/payment/bank_invoice.blade.php

Налаштування​

Для налаштування відображення оплати скопіюйте типовий шаблон у свій проєкт:

# Копіюємо типовий шаблон у директорію оверрайдів
cp core/vendor/seiger/scommerce/views/payment/bank_invoice.blade.php views/payment/bank_invoice.blade.php

Доступні змінні​

Ви можете використовувати наступні змінні у вашому Blade шаблоні (детальна документація у Blade коментарях файлу шаблону):

  • $title - Назва способу оплати (локалізована)
  • $account_holder - Назва компанії або ФОП
  • $bank_name - Повна назва банку
  • $account_number - Номер рахунку IBAN
  • $bank_code - Код банку (МФО/SWIFT)
  • $tax_id - ЄДРПОУ / ІПН
  • $amount - Сума платежу
  • $currency - Код валюти
  • $order_id - Номер замовлення
  • $payment_terms - Кількість днів для оплати
  • $info - Додаткові інструкції (текст)

Приклад налаштування​

{{-- Приклад власного шаблону --}}
<div class="my-custom-invoice">
<h2>{{ $title }}</h2>

<div class="amount-display">
Сума до сплати: <strong>{{ $amount }} {{ $currency }}</strong>
</div>

<div class="bank-info">
<p>Банк: {{ $bank_name }}</p>
<p>Рахунок: {{ $account_number }}</p>
<p>Призначення: Оплата за замовлення #{{ $order_id }}</p>
</div>

@if($info)
<div class="instructions">
{!! nl2br(e($info)) !!}
</div>
@endif
</div>

<style>
.my-custom-invoice {
/* Ваші власні стилі */
}
</style>

Переваги Blade шаблонів​

  • Безпека: Автоматичне екранування змінних
  • Гнучкість: Повна підтримка директив Blade (@if, @foreach тощо)
  • Чистий синтаксис: Легко читати та підтримувати
  • Без коментарів у виводі: Blade коментарі не з'являться у вихідному HTML коді

Резервний шаблон​

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

Усунення неполадок​

Спосіб оплати не відображається​

  1. Перевірте банківські реквізити: Переконайтеся, що всі обов'язкові поля заповнені
  2. Перевірте статус активності: Спосіб оплати має бути увімкнений
  3. Перевірте дозволи: Переконайтеся, що способи оплати увімкнені глобально
  4. Перевірте шаблон: Переконайтеся, що файл шаблону існує за адресою views/payment/bank_invoice.blade.php

Шаблон не завантажується​

  1. Перевірте шлях до файлу: Переконайтеся, що шаблон знаходиться у правильному місці
  2. Перевірте права доступу: Файл має бути доступний для читання веб-сервером
  3. Перевірте синтаксис Blade: Переконайтеся, що синтаксис Blade валідний
  4. Очистіть кеш: Очистіть кеш Blade та системний кеш
  5. Перевірте логи: Переглянь те логи помилок для виявлення проблем з рендерингом шаблону

Додавання інших способів оплати​

Готівка та Оплата на рахунок - це тільки початок. Ви можете розширити sCommerce додатковими способами оплати:

Доступні сторонні інтеграції​

  • Stripe - Обробка кредитних карток
  • PayPal - Глобальна платіжна платформа
  • LiqPay - Український платіжний шлюз
  • WayForPay - Українська платіжна система
  • Fondy - Міжнародний платіжний шлюз
  • Власні інтеграції - Створіть власні

Створення власних способів оплати​

Для інтеграції з іншими платіжними шлюзами або створення власної логіки оплати дивіться:

Посилання​