Tôi đã thiết lập một phương thức thanh toán mới trong Magento 2 với trường phương thức thanh toán tùy chỉnh (như "po_number" từ magento / phương thức thanh toán ngoại tuyến ). Và giao diện người dùng đang hoạt động hoàn toàn tốt (trường hiển thị, xác nhận, v.v.).
Tuy nhiên, nếu tôi muốn đặt hàng Magento, yêu cầu WebAPI sẽ đưa ra lỗi sau:
"Thuộc tính \" CustomField \ "không có trình thiết lập tương ứng trong lớp \" Magento \ Trích dẫn \ Api \ Data \ PaymentInterface \ ".
Có vẻ như Magento xác thực trường tùy chỉnh đối với giao diện thanh toán cốt lõi nơi các phương thức như getPoNumber và setPoNumber được xác định.
Tôi đã cố gắng thêm trường tùy chỉnh thông qua các thuộc tính mở rộng:
<extension_attributes for="Magento\Quote\Api\Data\PaymentInterface">
<attribute code="custom_field" type="Vendor\Module\Api\Data\MethodInterface[]" />
</extension_attributes>
và tạo giao diện với các phương thức cụ thể:
<?php
namespace Vendor\Module\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
interface MethodInterface extends ExtensibleDataInterface
{
public function setCustomField($customField);
public function getCustomField();
}
Nhưng điều này không làm việc. Magento vẫn xác nhận đối với giao diện thanh toán cốt lõi.
Câu hỏi bây giờ là, làm thế nào để Magento chấp nhận trường phương thức thanh toán tùy chỉnh? Bất kỳ con trỏ được nhiều đánh giá cao :)