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

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

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. Користувацький шаблон: assets/modules/scommerce/payment/bank_invoice.blade.php
  2. Типовий шаблон: core/vendor/seiger/scommerce/payment/bank_invoice.blade.php

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

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

# Скопіюйте типовий шаблон для налаштування
cp core/vendor/seiger/scommerce/payment/bank_invoice.blade.php assets/modules/scommerce/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. Перевірте шаблон: Переконайтеся, що файл шаблону існує за адресою assets/modules/scommerce/payment/bank_invoice.blade.php

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

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

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

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

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

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

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

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

Посилання