Ho impostato un nuovo metodo di pagamento in Magento 2 con un campo del metodo di pagamento personalizzato (come "po_number" di magento / metodi-pagamento-offline ). E il front-end funziona perfettamente (visualizzazione del campo, validazione, ecc.).
Tuttavia, se voglio effettuare l'ordine Magento, la richiesta WebAPI genera il seguente errore:
"Proprietà \" CustomField \ "non ha setter corrispondente nella classe \" Magento \ Quote \ Api \ Data \ PaymentInterface \ ".
Sembra che Magento convalidi il campo personalizzato rispetto all'interfaccia di pagamento principale in cui sono definiti metodi come getPoNumber e setPoNumber .
Ho già provato ad aggiungere il campo personalizzato tramite gli attributi di estensione:
<extension_attributes for="Magento\Quote\Api\Data\PaymentInterface">
<attribute code="custom_field" type="Vendor\Module\Api\Data\MethodInterface[]" />
</extension_attributes>
e creato l'interfaccia con i metodi specifici:
<?php
namespace Vendor\Module\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
interface MethodInterface extends ExtensibleDataInterface
{
public function setCustomField($customField);
public function getCustomField();
}
Ma questo non funziona. Magento si convalida ancora con l'interfaccia di pagamento principale.
La domanda ora è: come fare in modo che Magento accetti il campo del metodo di pagamento personalizzato? Tutti i suggerimenti sono molto apprezzati :)