मैं नई शिपिंग विधि बना रहा हूं और मुझे शिपिंग दरों की जांच करने के लिए नए कॉलम को जोड़ने की आवश्यकता है। डेटा कस्टम शिपिंग विधि सेटिंग्स से आएगा, उदाहरण के लिए विधि विवरण। या कुछ इनपुट क्षेत्र जहां ग्राहक जानकारी जोड़ सकते हैं (डेटा संभवतः उद्धरण में और बाद में क्रम में सहेजा जाएगा)।
संभवतः सभी का सबसे आसान हिस्सा उपयोग करके टेम्पलेट को लागू करना है
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 दरों () से आता है, जो एपीआई से डेटा प्राप्त करता है:
<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>
इसके बाद कई चरण होते हैं जबकि कुछ वास्तव में एकत्र हो जाता है। मुझे मिला
Magento \ Quote \ Model \ Cart \ ShippingMethodConverter modelToDataObject ()
यह सबसे अधिक आशाजनक लग रहा था, लेकिन अगर मैं इसमें अपनी विशेषता जोड़ने की कोशिश करता हूं, तो कुछ भी नहीं होता है।
तो मेरा सवाल है, अगर वास्तव में शिपिंग दरों में नए डेटा को जोड़ने का कोई तरीका है? एम 1 में यह संभव था। यदि यह संभव नहीं था तो यह पागल होगा।
ऐसा होने के कई कारण हैं। उदाहरण के लिए अगर मैं स्टोर मेथड में पिक अप करना चाहता हूं, तो कई स्टोर ड्रॉप डाउन या कुछ इसी तरह के होते हैं।