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가 사용자 정의 지불 방법 필드를 수락하도록하는 방법입니다. 모든 포인터는 높이 평가됩니다 :)