चयनित कस्टम शिपिंग विधि बनाओ कस्टम इनपुट textarea onepage चेकआउट पर दिखाता है


9

मैंने इस तरह कस्टम शिपिंग विधि को सफलतापूर्वक जोड़ा:

एप्लिकेशन / etc / config.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
    <default>
        <carriers>
            <lime>
                <active>1</active>
                <allowed_methods>delivery</allowed_methods>
                <methods>delivery</methods>
                <type>NAMESPACE</type>
                <sallowspecific>0</sallowspecific>
                <model>Namespace\Module\Model\Carrier</model>
                <name>Namespace_Module custom Shipping</name>
                <title>Namespace_Module custom Shipping</title>
                <handling_type>F</handling_type>
            </lime>
        </carriers>
    </default>
</config>

एप्लिकेशन / कोड / नाम स्थान / मॉड्यूल / मॉडल / Carrier.php

public function collectRates(RateRequest $request)
{
    if (!$this->getConfigFlag('active')) {
        return false;
    } 
    $result = $this->_rateResultFactory->create(); 
    $method = $this->_rateMethodFactory->create(); 
    $method->setCarrier('HILO');
    $method->setCarrierTitle('HILO'); 
    $method->setMethod('Fast');
    $method->setMethodTitle('Fast'); 
    $amount = $this->getConfigData('price'); 
    $method->setPrice($amount);
    $method->setCost($amount); 
    $result->append($method);
    return $result;
}

यह चेकआउट पृष्ठ पर दिखाई देता है, लेकिन मैं कस्टम टेक्स्ट एरिया इनपुट डेटा दिखाना चाहता हूं जब उपयोगकर्ता मेरे कस्टम शिपिंग विधि का चयन करता है, और मैं कस्टम इनपुट टेक्स्ट एरिया डेटा को बचा सकता हूं।

यहाँ मैं यह देखना चाहता हूँ:

यहां छवि विवरण दर्ज करें


2
नमस्ते, आपने इस फ़ील्ड को कैसे जोड़ा? क्या आप कृपया मुझे एक कोड प्राप्त करने में मदद कर सकते हैं?
मुजाहिद

जवाबों:


2

अपनी कस्टम शिपिंग विधि का चयन करने के बाद एक कस्टम इनपुट फ़ील्ड दिखाने के लिए, आपको एक js ब्लॉक को जोड़ना होगा, जो कि सेलेक्ट मेथड इवेंट के लिए सब्सक्राइब करेगा:

एक कस्टम phtml को checkout_index_index.xml लेआउट में जोड़ें

फिर अपने phtml में अगला ब्लॉक जोड़ें:

<script type="text/javascript">
    require([
        'jquery',
        'Magento_Checkout/js/model/quote',
    ], function (jQuery, quote) {
        jQuery(document).ready(function () {
            quote.shippingMethod.subscribe(function (value) {
                if (quote.shippingMethod() && quote.shippingMethod().carrier_code == 'your_custom_shipping_method_code') {
                    var customBlock = "<div class ='custom-information'><input type="text" id="your_custom_id"></div>";
                    if((!$('.custom-information').length > 0)) {
                        $('#checkout-shipping-method-load').append(customBlock);
                    }
                });
            });
        });
    });
</script>

उपरोक्त कोड के साथ, आप अपने कस्टम शिपिंग विधि के नीचे इच्छित इनपुट जोड़ देंगे।

उसके बाद, आपको अपने कस्टम मूल्य को बचाने के लिए एक प्लगइन बनाना होगा।

जाँच करें: Magento \ Checkout \ Model \ GuestShippingInformationManagement

मुझे उम्मीद है इससे आपको मदद मिली होगी। सादर, पाब्लो


2
क्या आप इसे थोड़ा और अधिक समझा सकते हैं
मुजाहिद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.