He configurado un nuevo método de pago en Magento 2 con un campo de método de pago personalizado (como "po_number" de magento / offline-payment- method ). Y el front end funciona perfectamente bien (campo que se muestra, validación, etc.).
Sin embargo, si quiero hacer el pedido de Magento, la solicitud de WebAPI arroja el siguiente error:
"Propiedad \" CustomField \ "no tiene el configurador correspondiente en la clase \" Magento \ Quote \ Api \ Data \ PaymentInterface \ ".
Parece que Magento valida el campo personalizado contra la interfaz de pago central donde se definen métodos como getPoNumber y setPoNumber .
Ya intenté agregar el campo personalizado a través de atributos de extensión:
<extension_attributes for="Magento\Quote\Api\Data\PaymentInterface">
<attribute code="custom_field" type="Vendor\Module\Api\Data\MethodInterface[]" />
</extension_attributes>
y creó la interfaz con los métodos específicos:
<?php
namespace Vendor\Module\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
interface MethodInterface extends ExtensibleDataInterface
{
public function setCustomField($customField);
public function getCustomField();
}
Pero esto no funciona. Magento aún se valida contra la interfaz de pago principal.
La pregunta ahora es, ¿cómo hacer que Magento acepte el campo de método de pago personalizado? Cualquier puntero es muy apreciado :)