ฉันกำลังสร้างวิธีการจัดส่งใหม่และฉันต้องการเพิ่มคอลัมน์ใหม่เพื่อเช็คเอาต์การจัดส่ง ข้อมูลจะมาจากการตั้งค่าวิธีการจัดส่งที่กำหนดเองเช่นคำอธิบายวิธีการ หรือฟิลด์ป้อนข้อมูลบางอย่างที่ลูกค้าสามารถเพิ่มข้อมูล (ข้อมูลอาจจะถูกบันทึกไว้ในใบเสนอราคาและในภายหลังตามลำดับ)
น่าจะเป็นส่วนที่ง่ายที่สุดของทั้งหมดคือการใช้แม่แบบโดยใช้
Magento_Checkout/web/template/shipping.html
มันแค่ต้องการสิ่งนี้
<div data-bind="text: method.description"></div>
ปัญหาคือฉันไม่สามารถหาวิธีเพิ่มข้อมูลที่กำหนดเองได้ ยังไม่พอที่จะเพิ่ม:
public function collectRates(RateRequest $request)
{
if (!$this->isActive()) return false;
$method = $this->rateMethodFactory->create();
$method->setData('carrier', $this->getCarrierCode());
$method->setData('carrier_title', $this->getConfigData('title'));
$method->setData('method_title', $this->getConfigData('title'));
$method->setData('method', $this->getCarrierCode());
$method->setPrice($this->_price);
$method->setData('cost', $this->_price);
// custom
$method->setData('description', $this->getConfigData('description'));
$result = $this->rateResultFactory->create();
$result->append($method);
return $result;
}
ข้อมูลสำหรับ html มาจากอัตรา js () ซึ่งรับข้อมูลจาก API:
<route url="/V1/carts/:cartId/shipping-methods" method="GET">
<service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/>
<resources>
<resource ref="Magento_Cart::manage" />
</resources>
</route>
หลังจากนี้มีหลายขั้นตอนในขณะที่บางสิ่งบางอย่างได้รับการรวบรวมจริง ฉันพบ
วีโอไอพี \ อ้าง \ แบบจำลอง \ รถเข็น \ การจัดส่งวิธีการแปลงรูปแบบไปยัง DataObject ()
ที่ดูมีแนวโน้มมากที่สุด แต่ถ้าฉันพยายามที่จะเพิ่มคุณลักษณะของฉันไปที่มันไม่มีอะไรเกิดขึ้น
ดังนั้นคำถามของฉันคือถ้ามีวิธีเพิ่มข้อมูลใหม่ในอัตราค่าจัดส่งจริงหรือไม่ ใน M1 มันเป็นไปได้ มันคงจะบ้าถ้า M2 มันเป็นไปไม่ได้
มีหลายสาเหตุที่ควรเป็นไปได้ ตัวอย่างเช่นถ้าฉันต้องการทำให้วิธีการรับสินค้าที่มีร้านค้าหลายรายการเลื่อนลงหรือสิ่งที่คล้ายกัน