если вы изменили режим налогообложения в настройках плагина, то можете проверить верный ли режим приходит в данных формы оплаты, в юкассе это можно посмотреть в разделе запросов вроде, для значения tax_system_code должно быть значение 2 (УСН)
Не нашел, где это можно посмотреть. Отправил запрос в Юкассу, чтобы они по логам посмотрели, что от нас приходит.
если режим налогообложения с сайта передается верный, но в чеке печатается старый режим, возможно, это зависит от настроек вашей кассы
В Настройках облачной кассы (на сайте) указано "Запрашивать СНО" - "Да". То есть облачная касса берет от ЮКассы, а она от нас.
То есть (пока ЮКасса не ответила) приична, скорее всего, где-то в коде.
В каком файле можно принудительно выставить налоговый режим, Андрей?
YandexKassa Gateway 2.0.1 (старый протокол оплаты с изменениями под ЮКассу),
WP Access Ultimate 1.7.5,
WP Recall 16.17.5,
WordPress 5.0.
можете попробовать вручную указать передачу в файле yandexkassa-api-gateway/index.php
строка 172:
'tax_system_code' => rcl_get_commerce_option( 'ykapi_tax' ),
укажите код налогового режима явно:
'tax_system_code' => 2,
Доступные коды режимов из документации Юкасса
так, уточнение, размещать payment_subject надо в другом месте
найдите чуть выше места, где вносили последнюю правку строчку
'vat_code' => rcl_get_commerce_option( 'ykapi_nds' ),
и добавьте под ней
'payment_subject' => 'service',
dm1 сказал(а)
Это будет корректно?
нет, должно быть так как написал ранее
'tax_system_code' => 2,
У нас так:
if($data->pay_type == 1){ $items[] = array( 'quantity' => 1, 'price' => array( 'amount' => $data->pay_summ ), 'tax' => $rmag_options['yk_nds'], 'text' => __('Пополнение личного счета') ); }else if($data->pay_type == 2){ $order = rcl_get_order($data->pay_id); if($order){ foreach($order->products as $product){ $items[] = array( 'quantity' => $product->product_amount, 'price' => array( 'amount' => $product->product_price ), 'tax' => $rmag_options['yk_nds'], 'text' => get_the_title($product->product_id) ); } /*$items[] = array( 'quantity' => 1, 'price' => array( 'amount' => $order->order_price ), 'tax' => $rmag_options['yk_nds'], 'text' => __('Оплата заказа').' №'.$order->order_id );*/ } }else{ $items[] = array( 'quantity' => 1, 'price' => array( 'amount' => $data->pay_summ ), 'tax' => $rmag_options['yk_nds'], 'text' => $data->description ); }
В документации ЮКассы используется именно (со словом Type):
'paymentSubjectType' => 'service'
Так верно будет? Мы эту строку добавили в двух местах:
if($data->pay_type == 1){ $items[] = array( 'quantity' => 1, 'price' => array( 'amount' => $data->pay_summ ), 'tax' => $rmag_options['yk_nds'], 'text' => __('Пополнение личного счета') ); }else if($data->pay_type == 2){ $order = rcl_get_order($data->pay_id); if($order){ foreach($order->products as $product){ $items[] = array( 'quantity' => $product->product_amount, 'price' => array( 'amount' => $product->product_price ), 'tax' => $rmag_options['yk_nds'], 'text' => get_the_title($product->product_id), 'paymentSubjectType' => 'service' ); } } }else{ $items[] = array( 'quantity' => 1, 'price' => array( 'amount' => $data->pay_summ ), 'tax' => $rmag_options['yk_nds'], 'text' => $data->description, 'paymentSubjectType' => 'service' ); } $fields['ym_merchant_receipt'] = json_encode(array( 'customerContact' => get_the_author_meta('email', $data->user_id), 'taxSystem' => $rmag_options['yk_tax'], 'currency' => $rmag_options['primary_cur'], 'items' => $items ));