Налаштування безготівкової оплати для юросіб 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування безготівкової оплати для юросіб 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування безготівкової оплати для юридичних осіб на 1С-Бітрікс

Інтернет-магазини, що працюють з B2B-клієнтами, регулярно стикаються з однією ситуацією: юрособа хоче оплатити за банківськими реквізитами, з ПДВ, з договором і закривальними документами. Стандартний модуль sale Бітрікс частково це підтримує (тип оплати «Банківський переказ»), але «з коробки» не вміє генерувати рахунок у PDF, не визначає реквізити за ІПН, не веде облік оплат. Усе це допрацьовується.

Тип оплати «Банківський переказ»

У Бітрікс безготівкова оплата реалізується як платіжна система з обробником Bitrix\Sale\PaySystem\BaseServiceHandler без переходу на зовнішній шлюз:

// .description.php платіжного обробника
$HANDLER_NAME = 'Банківський переказ для юридичних осіб';
$HANDLER_CODE = 'bank_transfer_b2b';

// При замовленні — покупець бачить реквізити, а не форму картки
// Оплата позначається як "очікує оплати" до ручного підтвердження менеджером

Форма для юридичних осіб при оформленні

При виборі «Юридична особа» у формі замовлення — показуємо додаткові поля:

// Додаткові властивості замовлення для юрособи
$arOrderProps = [
    'INN'           => ['NAME' => 'ІПН', 'TYPE' => 'STRING', 'REQUIRED' => 'Y'],
    'KPP'           => ['NAME' => 'КПП', 'TYPE' => 'STRING'],
    'COMPANY_NAME'  => ['NAME' => 'Найменування організації', 'TYPE' => 'STRING', 'REQUIRED' => 'Y'],
    'LEGAL_ADDRESS' => ['NAME' => 'Юридична адреса', 'TYPE' => 'STRING'],
    'DIRECTOR_NAME' => ['NAME' => 'ПІБ керівника', 'TYPE' => 'STRING'],
    'ACCOUNTANT'    => ['NAME' => 'ПІБ бухгалтера', 'TYPE' => 'STRING'],
];

Автозаповнення за ІПН

// DADATA API — автозаповнення реквізитів за ІПН
document.getElementById('inn-field').addEventListener('blur', async function() {
    const inn = this.value;
    if (inn.length < 10) return;

    const res = await fetch('https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party', {
        method: 'POST',
        headers: {
            'Authorization': 'Token YOUR_DADATA_TOKEN',
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({ query: inn }),
    });
    const data = await res.json();
    const company = data.suggestions?.[0]?.data;
    if (company) {
        document.getElementById('company-name').value = company.name?.short_with_opf || '';
        document.getElementById('kpp').value = company.kpp || '';
        document.getElementById('legal-address').value = company.address?.value || '';
    }
});

Генерація рахунку у PDF

// Генерація рахунку через mPDF або TCPDF
use Mpdf\Mpdf;

class InvoiceGenerator
{
    public function generate(\Bitrix\Sale\Order $order): string
    {
        $mpdf = new Mpdf(['format' => 'A4']);
        $mpdf->SetFont('dejavusans');  // підтримка кирилиці

        $html = $this->renderTemplate($order, [
            'invoice_number' => 'РХ-' . str_pad($order->getId(), 6, '0', STR_PAD_LEFT),
            'invoice_date'   => date('d.m.Y'),
            'seller'         => $this->getSellerDetails(),
            'buyer'          => $this->getBuyerDetails($order),
            'items'          => $this->getOrderItems($order),
            'total'          => $order->getPrice(),
            'vat_amount'     => $this->calculateVat($order),
        ]);

        $mpdf->WriteHTML($html);

        $pdfPath = '/upload/invoices/invoice_' . $order->getId() . '.pdf';
        $mpdf->Output($_SERVER['DOCUMENT_ROOT'] . $pdfPath, 'F');

        return $pdfPath;
    }
}

Підтвердження оплати менеджером

Менеджер отримує повідомлення про замовлення з типом «Банківський переказ», після надходження коштів на розрахунковий рахунок вручну позначає оплату:

// Адміністративна сторінка або CRM-інтеграція
// Менеджер натискає «Підтвердити оплату»
$order = \Bitrix\Sale\Order::load($orderId);
foreach ($order->getPaymentCollection() as $payment) {
    if (!$payment->isPaid()) {
        $payment->setPaid('Y');
        $payment->setField('PS_STATUS_MESSAGE', 'Оплату підтверджено менеджером ' . $currentUserName);
        $payment->save();
    }
}
$order->save();

Для автоматизації — інтеграція з банком через API (Сбер, Тінькофф Бізнес, Точка) дозволяє отримувати повідомлення про надходження і автоматично зіставляти їх із замовленнями за номером рахунку в призначенні платежу.

Терміни

Завдання Термін
Форма для юрособи + автозаповнення за ІПН 1 день
Генерація рахунку PDF 1–2 дні
Ручне підтвердження оплати в Admin 0.5 дня
Автоматичне зіставлення через банк API 2–3 дні