Я створив новий метод оплати в Magento 2 із полем користувацького способу оплати (наприклад, "po_number" від magento / offline- Payment method ). І передній кінець працює прекрасно (показ поля, валідація тощо).
Однак якщо я хочу розмістити замовлення Magento, запит WebAPI видає таку помилку:
"Властивість \" CustomField \ "не має відповідного сетера в класі \" Magento \ Quote \ Api \ Data \ PaymentInterface \ ".
Схоже, Magento перевіряє користувацьке поле щодо базового інтерфейсу платежів, де визначаються такі методи, як getPoNumber та setPoNumber .
Я вже намагався додати спеціальне поле за допомогою атрибутів розширення:
<extension_attributes for="Magento\Quote\Api\Data\PaymentInterface">
<attribute code="custom_field" type="Vendor\Module\Api\Data\MethodInterface[]" />
</extension_attributes>
і створили інтерфейс із конкретними методами:
<?php
namespace Vendor\Module\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
interface MethodInterface extends ExtensibleDataInterface
{
public function setCustomField($customField);
public function getCustomField();
}
Але це не працює. Magento як і раніше підтверджує інтерфейс основного платежу.
Тепер питання полягає в тому, як змусити Magento прийняти поле спеціального способу оплати? Будь-які вказівки високо оцінені :)