Сейчас в настройках плагина можно выбрать признак предмета расчёта (payment_subject), совместимый и с ФФД 1.05, и с ФФД 1.2 (товар, работа, услуга...). Это работает с ФФД 1.2 до того момента, пока в чеке не появляется маркированный товар.
Для маркированного товара в ФФД 1.2 есть отдельные типы
| marked |
Товар, подлежащий маркировке средством идентификации, имеющим код маркировки, за исключением подакцизного товара (в чеке — ТМ). Пример: обувь, духи, товары легкой промышленности |
❌ |
✅ |
| non_marked |
Товар, подлежащий маркировке средством идентификации, не имеющим кода маркировки, за исключением подакцизного товара (в чеке — ТНМ). Пример: меховые изделия |
❌ |
✅ |
| marked_excise |
Подакцизный товар, подлежащий маркировке средством идентификации, имеющим код маркировки (в чеке — АТМ). Пример: табак |
❌ |
✅ |
| non_marked_excise |
Подакцизный товар, подлежащий маркировке средством идентификации, не имеющим кода маркировки (в чеке — АТНМ). Пример: алкогольная продукция |
❌ |
✅ |
Ссылка на документацию ЮКасса
Если в чеке есть такой товар и передан код маркировки, касса (во всяком случае Orange Data) отклоняет запрос ЮКассы на фискализацию платежа (чек «полный расчёт») с ошибкой:
"Если в позиции есть код маркировки - признак предмета расчёта должен быть со значением 31 (АТМ) или 33 (ТМ)"
(31 и 33 это как раз получается из marked / marked_excise, что передаются ЮКассе плагином).
То есть — для товара без маркировки надо отдавать, как сейчас 'commodity' или что настроено. А для товара с маркировкой — 'marked' или 'marked_excise'.
Для продавцов шуб и меховых шапок ещё будет полезно передавать 'non_marked', но тут уже непонятно — если в чеке есть обычный товар и меховое изделие, как из waOrder получить нужный тип.
Блин. Я опасаюсь, что этот тип надо передавать сразу, даже когда чек уходит, как предоплата, без кода. Но это неточно.
1 комментарий
Я тут изучил код плагина. Это баг чистой воды.
Плагин знает про "marked", проставляет его для товара, но в строке 1114 делает
В отличие от array_merge такое объединение массивов не перезаписывает существующие ключи, а 'payment_subject' уже выставлен десятью строками выше.
Добавление от claude: