Задать вопрос
@HooliGANKA96

Почему не передается валюта при формировании бесплатной доставки 1c битрикс?

Настраиваю оплату через юкассу на 1с битрикс Интернет Магазин
Столкнулась с проблемой, что при формировании заказа с бесплатной доставкой (самовывоз) в теле запроса параметр currency пустой, из-за этого возникает ошибка создания платежа в юкассе
при установке любой стоимости валюта в доставку проставляется, запрос выполняется и платеж создается

Логи из системы

Sale\Handlers\PaySystem\YandexCheckoutHandler. InitiatePay: На стороне ЮKassa что-то пошло не так
04.12.2024 01:05:25


Sale\Handlers\PaySystem\YandexCheckoutHandler: response data: { "type" : "error", "id" : "01938e8e-8486-70c8-81ac-f3780a0785fd", "code" : "internal_server_error", "description" : "Internal server error" }
04.12.2024 01:05:25


Sale\Handlers\PaySystem\YandexCheckoutHandler: request data: {"description":"Оплата №9TK9\/1 заказа №9TK9 для zakypka@yandex.ru","amount":{"value":"3","currency":"RUB"},"capture":true,"metadata":{"BX_PAYMENT_NUMBER":290,"BX_PAYSYSTEM_CODE":"13","BX_HANDLER":"YANDEX_CHECKOUT","cms_name":"api_1c-bitrix"},"confirmation":{"type":"redirect","return_url":"https:\/\/site.com\/order\/payment\/?ORDER_ID=9TK9&PAYMENT_ID=9TK9\/1"},"receipt":{"customer":{"email":"zakypka@yandex.ru","phone":"+799999999"},"items":[{"description":"Стержень","amount":{"value":"3","currency":"RUB"},"vat_code":1,"quantity":"1","measure":"piece","payment_subject":"commodity","payment_mode":"full_payment"},{"description":"Доставка","amount":{"value":"0","currency":""},"vat_code":1,"quantity":"1","measure":"piece","payment_subject":"payment","payment_mode":"full_payment"}],"tax_system_code":"3"}}

Здесь видно, что у Доставка currency: ""
Подскажите, как исправить?

1С-Битрикс: Управление сайтом 24.0.500
Интернет-магазин (sale) 24.0.400
  • Вопрос задан
  • 183 просмотра
Подписаться 2 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • Нетология
    1С-программист
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@mafden
Разработка и доработка проектов
Тоже столкнулся с такой проблемой -вот решение (добавляем в init.php):
AddEventHandler("sale", "OnSaleCheckPrepareData", "CheckProductPrint", 9999);
function CheckProductPrint($a, $type)
{
    foreach ($a['DELIVERY'] as $k=>$item) {
        if ($item['SUM'] == 0)
            unset($a['DELIVERY'][$k]);
    }
    return $a;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы