我在Magento 2中使用自定义付款方式字段(例如magento / offline-payment-methods中的 “ po_number”)设置了新的付款方式。前端工作得很好(现场显示,验证等)。
但是,如果我要下订单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接受自定义付款方式字段?任何指针都非常感谢:)
我也很感兴趣,我使用了相同的方法(extension_attributes),但没有成功,于是我放弃了这个想法,而是使用set / getAdditionalInformation('custom_field')而不是使用自定义字段。
—
carco '16