Описание
Этот плагин добавляет популярные способы оплаты Яндекса в ваш магазин WooCommerce:
— Яндекс Пей: Мгновенная оплата картой без ввода реквизитов.
— Яндекс Сплит: Беспроцентная рассрочка на срок до 6 месяцев.
— Комбинированная оплата: Часть оплатить картой, остальное — в рассрочку.
Совместимость с современными технологиями
- Полная поддержка блочного редактора WooCommerce — плагин работает как с классическим, так и с блочным оформлением заказа
- Совместимость с Gutenberg — интеграция с современными темами WordPress
- React-компоненты — современная архитектура для высокой производительности
Для расширенных функций (бейджи рассрочки, виджеты в корзине и каталоге) доступна PRO версия.
Важная информация о фискализации
Обратите внимание: При использовании Яндекс Пей и Яндекс Сплит необходимо соблюдать требования российского законодательства по фискализации платежей.
Требования 54-ФЗ
Согласно Федеральному закону «О применении контрольно-кассовой техники» (54-ФЗ):
— Фискальные чеки должны формироваться при всех формах безналичных платежей
— Яндекс Пей и Яндекс Сплит не отправляют фискальные чеки автоматически
— Продавец несёт ответственность за соблюдение требований фискализации
Возможные решения
Для соответствия требованиям 54-ФЗ рассмотрите следующие варианты:
— Интеграция с онлайн-кассами (АТОЛ, Эвотор, ОФД и др.)
— Использование специализированных плагинов для автоматического формирования чеков
— Настройка API-интеграции с поставщиком фискальных услуг
— Консультация с сертифицированными интеграторами кассового оборудования
Штрафы за несоблюдение
- Для индивидуальных предпринимателей: от 10 000 рублей за нарушение
- Для юридических лиц: от 30 000 рублей за нарушение
- Деятельность может быть приостановлена на срок до 90 дней
Рекомендация: Обязательно настройте фискализацию перед приёмом платежей через Яндекс Пей. За подробной консультацией обратитесь к бухгалтеру или поставщику онлайн-кассы.
Возможности версий
Бесплатная версия включает:
— Поддержку Яндекс Пей и Яндекс Сплит
— Комбинированную оплату (карта + рассрочка)
— Настройку через интерфейс WooCommerce
— Совместимость с классическим и блочным редактором Gutenberg
PRO версия добавляет:
— Бейджи рассрочки/кешбэка на страницах товаров
— Бейджи рассрочки/кешбэка в каталоге товаров
— Платёжные виджеты в корзине и каталоге
— Кнопку оплаты Яндексом на странице оформления заказа
— 20+ вариантов расположения элементов
Рекомендуемые дополнения
Для полного соответствия российскому законодательству и расширения функциональности рекомендуются следующие решения:
Фискализация платежей (обязательно для соответствия 54-ФЗ)
KosTeams ATOL Receipts — Специализированный плагин для автоматической фискализации платежей через Яндекс Пей и Яндекс Сплит.
Ключевые возможности:
— Автоматическое формирование фискальных чеков через АТОЛ Онлайн для каждого платежа
— Полная поддержка ATOL API v4 и v5
— Автоматическое определение платежей Яндекс Пей и Яндекс Сплит
— Поддержка HPOS (High-Performance Order Storage)
— Автоматические чеки возврата при отмене заказов
— Мониторинг статуса фискализации в реальном времени
— Подробное логирование для диагностики
Почему именно этот плагин:
— Разработан специально для интеграции с платёжными системами Яндекса
— Автоматически определяет платежи, требующие фискализации
— Полностью соответствует требованиям 54-ФЗ
— Протестирован совместно с данным плагином
Альтернативные решения для фискализации
- Другие плагины интеграции с АТОЛ Онлайн
- Решения для интеграции с Эвотор
- Модули для подключения к другим провайдерам ОФД
- API-интеграция с поставщиком кассового оборудования
Повышение конверсии
KosTeams Payments for Yandex Pay and Yandex Split for WooCommerce Pro — Расширенная версия плагина с дополнительными функциями:
— Бейджи рассрочки/кешбэка на страницах товаров и в каталоге
— Платёжные виджеты в корзине и на страницах товаров
— 20+ вариантов расположения элементов
— Расширенные настройки дизайна и поведения
Важно: Независимо от выбранного решения для фискализации, его настройка обязательна перед приёмом платежей через Яндекс Пей для соответствия требованиям 54-ФЗ.
Ссылки
Лицензия
Этот плагин распространяется по лицензии GPLv2. Расширенные функции доступны в PRO версии.
Поддержка и безопасность
Безопасность платежей
- Все транзакции обрабатываются через защищённые серверы Яндекса
- Данные карт не хранятся на вашем сайте
- Соответствие стандарту PCI DSS
Юридическое соответствие
- Плагин обеспечивает техническую интеграцию с платёжными системами
- Соответствие требованиям фискализации (54-ФЗ) требует дополнительных решений
- Рекомендуется консультация с юристами и бухгалтерами
Получение поддержки
- Техническая поддержка через официальные каналы
- Документация и FAQ на сайте разработчика
- Сообщество пользователей для обмена опытом
Установка
- Установите плагин через панель администрирования WordPress.
- Активируйте плагин в разделе «Плагины».
- Перейдите в WooCommerce Настройки Платежи Yandex Pay и Yandex Split.
- Введите Merchant ID и API-ключ (получены через партнёрское соглашение с Яндексом).
- Включите нужные способы оплаты и сохраните изменения.
- Важно: Настройте фискализацию платежей в соответствии с 54-ФЗ.
Часто задаваемые вопросы
-
Почему платёж не проходит?
-
Проверьте, прошёл ли ваш магазин модерацию в личном кабинете Яндекс Пей (должен быть зелёный статус). Если статус серый, оплата будет работать только в тестовом режиме.
-
Нужен ли договор с Яндексом?
-
Да, плагин требует подключения к Яндекс Пей через партнёрское соглашение.
-
Почему способ оплаты не отображается на странице оформления заказа?
-
Способ оплаты отображается только если он включён в настройках WooCommerce и соответствует условиям (например, валюта, страна или способ доставки).
Проверьте:
1. Включён ли способ в WooCommerce Настройки Платежи.
2. Правильно ли настроены условия доступности.
3. Нет ли конфликтов с другими плагинами или темой. -
Как работает Сплит для покупателя?
-
Покупатель оформляет заказ, вносит первый платёж и сразу получает товар. Оставшиеся платежи списываются по графику. Магазин получает полную сумму сразу, как при обычной покупке.
-
Как добавить бейджи рассрочки на страницы товаров?
-
Эта функция доступна в PRO версии, которая позволяет настраивать дизайн, расположение и условия отображения элементов.
-
Почему виджеты не отображаются в корзине?
-
Интеграция с корзиной и страницей оформления заказа поддерживается в PRO версии. Бесплатная версия обеспечивает базовую реализацию платежей.
-
Как тестировать в режиме песочницы?
-
Используйте тестовые данные, предоставленные Яндексом. Реальные деньги списываться не будут.
-
Как обеспечить фискализацию платежей?
-
Яндекс Пей не отправляет фискальные чеки автоматически. Рекомендуемые решения:
Готовое решение (рекомендуется):
— KosTeams ATOL Receipts — специализированный плагин, автоматически отправляющий чеки для всех платежей Яндекс Пей и Яндекс СплитАльтернативные варианты:
— Подключить онлайн-кассу (АТОЛ, Эвотор и др.) и настроить API-интеграцию
— Использовать другие плагины фискализации
— Разработать собственную интеграцию с ОФД
— Обратиться к поставщику кассового оборудования -
Какие штрафы грозят за отсутствие фискализации?
-
Согласно 54-ФЗ, штрафы за неприменение контрольно-кассовой техники начинаются от 10 000 рублей для ИП и от 30 000 рублей для юридических лиц за каждое нарушение.
Отзывы
Участники и разработчики
«KosTeams Payments for Yandex Pay and Yandex Split для WooCommerce» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«KosTeams Payments for Yandex Pay and Yandex Split для WooCommerce» переведён на 1 язык. Благодарим переводчиков за их работу.
Перевести «KosTeams Payments for Yandex Pay and Yandex Split для WooCommerce» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
2.0.6 (2026-03-05)
Фискализация
* Поддержка облачной кассы для Яндекс Пей: передача данных receipt (НДС, тип способа оплаты, тип предмета расчёта, единица измерения)
* Автоопределение ставки НДС из WooCommerce или принудительный режим «Без НДС»
* Фильтр kosteams_payments_for_yandex_item_receipt для кастомизации
Совместимость с плагинами кошельков
* Отрицательные сборы (кошельки, сертификаты) пропускаются, значения total товаров пересчитываются пропорционально
* Удалён externalAmount — работает без специальных разрешений API
* Полная совместимость с TeraWallet, WooCommerce Wallet и другими
Исправления ошибок
* JWT-вебхук: используется полный набор ключей JWKS (JWK::parseKeySet) вместо только последнего ключа
* Возврат: targetCart включает НДС, корректный orderId для CARD_SPLIT
* Исправлено PHP Notice для $existing_payment_url при ошибке 409
* Вебхук регистрируется однократно (статический флаг)
* Информационное логирование API только при включённом debug_mode, ошибки логируются всегда
Улучшения
* API-ключ скрыт (type=password)
* Убрана загрузка Yandex Pay SDK из базового плагина (обрабатывается PRO версией)
* Удалено неиспользуемое: class-validator.php, дублирующийся get_order_info(), дублирующаяся валидация в create_payment()
* Версия CSS привязана к версии плагина
* Интернационализация (i18n) для заметок о возвратах в заказах
2.0.5 (2026-01-23)
Обслуживание:
* Синхронизирована константа YPS_KOSTEAMS_VERSION с заголовком плагина
* Аудит кода на соответствие документации WooCommerce Payment Gateway API
* Аудит кода на соответствие документации Yandex Pay Web SDK
* Обновлены ссылки на страницу плагина
* Обновлена библиотека firebase/php-jwt до v6.11.1
2.0.4 (2025-11-11)
КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Расчёт НДС при создании платежа
ПРОБЛЕМА:
* При включённом НДС в WooCommerce возникало расхождение сумм:
— Итог заказа в WooCommerce (с НДС): например, 1200 руб.
— Сумма, отправленная в Yandex Pay API (без НДС): например, 1000 руб.
— Результат: ОШИБКА — платёж не создавался из-за расхождения сумм
ПРИЧИНА:
* $item->get_total() возвращает сумму БЕЗ налогов
* $order->get_total() возвращает сумму С налогами
* При расчёте calculated_total налоги не учитывались, что вызывало расхождение с woocommerce_total
ИСПРАВЛЕНО в includes/class-gateway.php:
-
Товары (строка 794):
- БЫЛО:
$line_total = round((float)$item->get_total(), 2); - СЕЙЧАС:
$line_total = round((float)$item->get_total() + (float)$item->get_total_tax(), 2);
- БЫЛО:
-
Доставка (строка 820):
- БЫЛО:
$shipping_cost = round((float)$shipping_item->get_total(), 2); - СЕЙЧАС:
$shipping_cost = round((float)$shipping_item->get_total() + (float)$shipping_item->get_total_tax(), 2);
- БЫЛО:
-
Сборы (строка 836):
- БЫЛО:
$fee_amount = round((float)$fee_item->get_total(), 2); - СЕЙЧАС:
$fee_amount = round((float)$fee_item->get_total() + (float)$fee_item->get_total_tax(), 2);
- БЫЛО:
РЕЗУЛЬТАТ:
* В Yandex Pay API теперь отправляется полная сумма С НДС
* Итог заказа WooCommerce = итог Яндекс Пей (100% совпадение)
* Нет расхождений между панелью управления и платёжной системой
* Покупатель оплачивает правильную сумму, отображённую в корзине
ВАЖНО: Это критическое исправление для всех магазинов, использующих налоги/НДС в WooCommerce. Рекомендуется немедленное обновление.
2.0.3 (2025-10-27)
КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Точность расчёта сумм
* Полностью переписана логика расчёта данных для Yandex API
* Исправлено расхождение сумм между WooCommerce и данными, отправляемыми в Яндекс
* Теперь используются нативные методы WooCommerce для получения итогов по товарам
Исправлено:
— ПРОБЛЕМА: Плагин вручную рассчитывал и распределял скидки по всем товарам пропорционально, что приводило к некорректному распределению (купоны применялись ко всем товарам, даже если были настроены только для определённых)
— ИСПРАВЛЕНО: Теперь используется $item->get_total() — WooCommerce корректно рассчитывает итоговую сумму с учётом всех скидок
- ПРОБЛЕМА: Товары с количеством > 1 разбивались на отдельные позиции с количеством = 1, что вызывало проблемы с округлением
-
ИСПРАВЛЕНО: Товары теперь отправляются с фактическим количеством
-
ПРОБЛЕМА: При несовпадении итогов последний товар корректировался, маскируя логические ошибки
-
ИСПРАВЛЕНО: Больше нет корректировок, суммы совпадают точно
-
ПРОБЛЕМА: Отправлялись лишние поля (
unitPrice,discountedUnitPrice,subtotal), которые не требуются для Яндекс Сплит - ИСПРАВЛЕНО: Отправляется только
totalс точной итоговой суммой
Результат:
* Данные Яндекса = данные WooCommerce (100% совпадение)
* Код сокращён с ~270 строк до ~70 строк (упрощение в 4 раза)
* Нет ручных расчётов и корректировок
* Все скидки (купоны, промокоды, программы лояльности) применяются корректно
Техническое:
* Упрощена структура данных cart.items[]:
— Обязательные поля: productId, title, quantity.count, total
— Необязательные поля: description
— Удалены: unitPrice, discountedUnitPrice, subtotal (не требуются API)
* Удалён блок расчёта бонусных скидок (строки 782-817)
* Удалена логика распределения скидок (строки 826-877)
* Удалена логика разделения товаров (строки 898-937)
* Удалена корректировка последнего товара (строки 1023-1051)
2.0.2 (2025-10-09)
Исправления безопасности:
— Описания товаров теперь очищаются от HTML-тегов перед отправкой во внешние системы
2.0.1 (2025-09-30)
ИСПРАВЛЕНИЯ ОШИБОК
* Исправлена критическая ошибка инициализации блоков в контексте WP Cron
* Исправлена ошибка «Call to a member function get_cart_contents() on null» при выполнении cron-задач
* Исправлена ошибка «Call to a member function get_available_payment_gateways() on null»
* Добавлена отложенная загрузка платёжных шлюзов в блочном редакторе
* Улучшена совместимость с плагинами, фильтрующими доступные способы оплаты
ТЕХНИЧЕСКОЕ
* Реализована защита от преждевременной инициализации объектов WooCommerce
* Изменён способ получения шлюзов: используется payment_gateways() вместо get_available_payment_gateways()
* Добавлены проверки существования объектов WC() и WC()->payment_gateways перед доступом
* Метод initialize() больше не вызывает фильтры WooCommerce при начальной загрузке
2.0.0 (2025-09-28)
КРУПНОЕ ОБНОВЛЕНИЕ
* Полная поддержка блочного редактора WooCommerce
* Совместимость с современными темами WordPress (блоки Gutenberg)
* Автоматическая регистрация Яндекс Пей и Яндекс Сплит в блочной корзине и оформлении заказа
* Иконки и описания способов оплаты в блочном интерфейсе
* Современная архитектура с поддержкой React-компонентов
* Процесс сборки JavaScript-файлов (webpack, babel)
* Плагин полностью реструктурирован: теперь одинаково стабильно работает с классическим и блочным оформлением заказа
* Добавлена поддержка возвратов через Yandex API
МАКСИМАЛЬНАЯ ОПТИМИЗАЦИЯ БД
* Устранено последнее предупреждение о запросе meta_key
* Все запросы meta_key заменены глобальной функцией delete_metadata()
* Максимальная эффективность удаления метаданных при деинсталляции
ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ
* Устранено предупреждение о медленном meta_query
* Использование fields => ‘ids’ для получения только ID заказов
* Прямое удаление метаданных через delete_post_meta()
РЕЗУЛЬТАТ
* Значительно улучшена производительность при удалении плагина
* Плагин полностью готов для WordPress.org, все тесты Plugin Check пройдены
ИСПРАВЛЕНИЯ НАИМЕНОВАНИЙ
* Унифицированы названия платёжных сервисов по всему плагину
* Все варианты приведены к единообразному наименованию
РЕЗУЛЬТАТ
* Единообразие в наименованиях
* Улучшенный пользовательский опыт
* Оптимизированный размер плагина
ВОЗВРАТЫ
* Исправлена логика проверки доступной суммы возврата
* Поддержка повторной отправки существующих возвратов в Yandex API
* Устранено дублирование возвратов WooCommerce при ошибках API
* Добавлено подробное логирование сумм и статусов возвратов
ПОЛЬЗОВАТЕЛЬСКИЙ ОПЫТ
* HTML-теги в сообщениях об ошибках заменены на обычный текст
* Понятные инструкции при отсутствии настроек (Merchant ID, API-ключ)
* Валидация формата Merchant ID (UUID) с информативными сообщениями
1.0.13
- Дата: 2025-08-23
- Мелкие улучшения
1.0.12
- Дата: 2025-08-03
- КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Исправлена ошибка ORDER_AMOUNT_MISMATCH при создании платежей
- Исправлено: Точность расчёта сумм со скидками и округлением
- Исправлено: Неточности распределения скидок по товарам
- Улучшено: Алгоритм корректировки итогов для соответствия требованиям Yandex API
- Улучшено: Математическая точность денежных расчётов
- Добавлено: Автоматическая корректировка ошибки округления в последнем товаре корзины
- Добавлено: Дополнительное логирование для отладки расчёта сумм
- Техническое: Соответствие WordPress Coding Standards для интернационализации
- Техническое: Добавлены комментарии для переводчиков ко всем локализуемым строкам
- Техническое: Упорядоченные плейсхолдеры в переводимых строках (%1$s, %2$s)
ORDER_AMOUNT_MISMATCH Fix Details
Ошибка возникала из-за несоответствия формулы: cart_total = items_sum - discounts_sum
* Добавлено точное округление на всех этапах расчёта (round с 2 десятичными знаками)
* Реализована проверка calculated_total vs woocommerce_total
* Автоматическая корректировка последнего товара при расхождении >= 0.01
* Улучшено распределение оставшихся скидок по товарам
* Добавлена финальная валидация всех сумм перед отправкой в API
Technical Description
- Все денежные операции теперь используют
round($value, 2) - Добавлена проверка
abs($calculated_total - $woocommerce_total) >= 0.01 - Реализована корректировка через последний товар в корзине
- Улучшено логирование с выводом всех промежуточных сумм для отладки
- Приведено к стандартам WordPress для корректной локализации
1.0.11
- Дата: 2025-07-20
- Добавлено: Защита от изменения статуса заказов, оплаченных через другие платёжные системы
- Добавлено: Интеллектуальная обработка вебхуков с учётом способа оплаты
- Улучшено: Логика обработки статусов заказов для предотвращения конфликтов между платёжными системами
- Улучшено: Обработка легитимных операций отмены/возврата для заказов Яндекса
- Исправлено: Проблема с отменой оплаченных заказов при получении вебхука Яндекса после оплаты другим способом
Order Protection
- Если заказ был оплачен через другую платёжную систему, вебхуки Яндекса больше не изменяют его статус
- Заказы, оплаченные через Яндекс, корректно обрабатывают операции отмены и возврата из панели Яндекса
- Добавлены информативные заметки к заказам при попытках смены статуса
Technical Description
- Метод
process_order_status_from_webhookтеперь проверяет способ оплаты заказа перед применением изменений - Добавлена проверка
$is_yandex_paymentдля определения источника платежа - Улучшено логирование для отслеживания всех попыток смены статуса
1.0.10
- Дата: 2025-06-17
- Добавлено: Расширенная обработка вебхуков Яндекс Пей
- Добавлено: Гибкая система маппинга платёжных статусов
- Добавлено: Пользовательские фильтры для разработчиков
- Улучшено: Рефакторинг обработки вебхуков для повышения надёжности
- Улучшено: Логирование платёжных операций
- Улучшено: Безопасность обработки входящих запросов
Developer Filters
kosteams_payments_for_yandex_webhook_status_map
Изменяет маппинг статусов Яндекс WooCommerce
Параметры:
— $status_map (array) — Текущее соответствие статусов
— $order (WC_Order) — Объект заказа
— $payment_status (string) — Статус от Яндекса
Пример:
add_filter(‘kosteams_payments_for_yandex_webhook_status_map’, function($status_map, $order, $payment_status) {
$status_map[‘CAPTURED’] = ‘completed’;
return $status_map;
}, 10, 3);
kosteams_payments_for_yandex_before_process_status
Изменяет статус перед его применением к заказу
Параметры:
— $new_status (string) — Планируемый статус
— $payment_status (string) — Статус от Яндекса
— $order (WC_Order) — Объект заказа
kosteams_payments_for_yandex_handle_webhook_status
Полная пользовательская обработка статуса (возврат true отменяет обработку по умолчанию)
Параметры:
— $handled (bool) — Флаг обработки
— $payment_status (string) — Статус от Яндекса
— $order (WC_Order) — Объект заказа
kosteams_payments_for_yandex_status_change_note
Изменяет заметку при смене статуса заказа
Параметры:
— $note (string) — Текст заметки
— $order (WC_Order) — Объект заказа
— $old_status (string) — Старый статус
— $new_status (string) — Новый статус
kosteams_payments_for_yandex_partial_refund_note
Изменяет заметку для частичных возвратов
Параметры:
— $note (string) — Текст заметки
— $order (WC_Order) — Объект заказа
Security Improvements
- Усилена валидация входящих данных
- Улучшена обработка декодирования ошибок
Fixed
- Проблемы с обработкой статуса PARTIALLY_REFUNDED
1.0.9
- Динамическое переключение иконок в платёжном шлюзе Яндекс Сплит в зависимости от выбранного способа оплаты
- При выборе «Сплит» отображается стандартная иконка Сплит
- При выборе «Карта + Сплит» отображается комбинированная иконка
1.0.8
Improved Discount Distribution
- Все типы скидок (купоны, бонусы, отрицательные сборы) объединяются в общую сумму скидки
- Скидки распределяются пропорционально между товарами
- Оставшаяся скидка добавляется к последнему товару для точного распределения
Improved Cart Building
- Товары с количеством > 1 создаются как отдельные позиции
- Скидки равномерно распределяются между единицами товара
- Скидки применяются только к товарам (не к доставке и сборам)
1.0.7
- Реализовано разделение стилей
- Мелкие исправления
- Улучшена документация
1.0.6
Основные изменения:
— Добавлены отдельные платёжные шлюзы:
* Yandex Split — оплата в рассрочку
* Yandex Pay — классическая оплата картой
— Общая логика вынесена в базовый класс (WC_Yandex_Base_Gateway)
— Улучшено хранение URL для оплаты:
* URL платежей сохраняются в метаданных заказа
* Предотвращено повторное создание платежей для существующих заказов
1.0.5
- Исправлена совместимость с WooCommerce 8.7
- Обновлены тестовые сценарии для PHP 8.3
1.0.4
- Добавлена поддержка мультиязычных сайтов
- Оптимизирована загрузка скриптов
1.0
- Первый релиз
- Базовая интеграция Яндекс Пей/Яндекс Сплит
- Поддержка классического редактора








