Cách vô hiệu hóa Cash On Delivery trên loại sản phẩm cụ thể


9

Về cơ bản tôi cần phải vô hiệu hóa tiền mặt khi giao hàng trên loại sản phẩm cụ thể. Về cơ bản tôi đang sử dụng tín dụng cửa hàng của cửa hàng pháp sư. Đây là ví trong magento. tùy chọn thanh toán hiển thị tiền mặt khi giao hàng. nó không phải là một sản phẩm vật lý hay ảo. Vì vậy, tôi cần phải vô hiệu hóa tiền mặt khi giao hàng trên loại sản phẩm này.

Câu trả lời:


11

Bạn có thể làm điều này bằng cách Magento Event/Observer

Đầu tiên, sử dụng payment_method_is_activevô hiệu hóa phụ thuộc vào loại sản phẩm báo giá hiện tại.

Mã cho điều này:

Mã cấu hình mô-đun:

<global>
    <events>
    <payment_method_is_active>
        <observers>
            <paymentfilter_payment_method_is_active>
            <type>singleton</type>
            <class>yourmodel/observer</class>
            <method>filterpaymentmethod</method>
            </paymentfilter_payment_method_is_active>
        </observers>
    </payment_method_is_active>
    </events>
</global>

Mã quan sát viên là:

<?php

class YOURNANESPACE_YOURMODULE_Model_Observer {

    public function filterpaymentmethod(Varien_Event_Observer $observer) {
        /* call get payment method */
        $method = $observer->getEvent()->getMethodInstance();

        /*   get  Quote  */
        $quote = $observer->getEvent()->getQuote();

        $result = $observer->getEvent()->getResult();
        if (empty($quote) || (null === $quote)) {
            return $this;
        }

        /* Disable Your payment method for   adminStore */
        if ($method->getCode() == 'YOUR_PAYMENT_METHOD_CODE') {
            foreach ($quote->getAllItems() as $item) {
                // get Cart item product Type //
                if ($item->getProductType() == 'YourProductType'):
                    $result->isAvailable = false;
                endif;
            }
        }
    }

}

chỉ 2 phút ahed gr8 anh chàng làm việc @amit
Keyur Shah

@Amit Bera làm thế nào để có được loại sản phẩm ở đây
Deepak Rai

@ DeepakRai, đã mã đã được put.use $ item-> getProductType () cho loại get mục sản phẩm
Amit Bera

4

cho rằng bạn cần sử dụng payment_method_is_activesự kiện magento

Tôi giả sử bạn biết cách phát triển tiện ích mở rộng magento [Nếu không thì vui lòng kiểm tra câu trả lời này bạn nhận được toàn bộ mô-đun Viết mã này config.xmltừapp>code>codepool>namespace>package>etc

<global>
    ...
    <events>
        <payment_method_is_active>
            <observers>
                <paymentfilter_payment_method_is_active>
                    <type>singleton</type>
                    <class>PaymentFilter_Model_Observer</class>
                    <method>paymentMethodIsActive</method>
                </paymentfilter_payment_method_is_active>
            </observers>
        </payment_method_is_active>
    </events>
    ...
</global>

Tạo tập tin quan sát viên app/code/codepool>namespace>package/Model/Observer.php

class namespace_package_Model_Observer {

        public function paymentMethodIsActive(Varien_Event_Observer $observer) {
            $event           = $observer->getEvent();
            $method          = $event->getMethodInstance();
            $result          = $event->getResult();
            $currencyCode    = Mage::app()->getStore()->getCurrentCurrencyCode();


                if($someTrueConditionGoesHere){
                    $result->isAvailable = true;
                }else{
                    $result->isAvailable = false;
                }

        }

    }

Tôi có thể nhận trợ giúp ở đây magento.stackexchange.com/q/301777/57334 @Keyur Shah
zus

1

Bạn có nhìn thấy điều này không, tôi nghĩ rằng điều này sẽ giải quyết vấn đề của bạn, bạn chỉ cần sửa đổi tệp phương thức.phtml và từ đó bạn có thể nhận được bất kỳ thông tin trích dẫn nào và thực hiện xác nhận hoặc điều kiện từ mô-đun bởi người quan sát sự kiện hoặc bằng cách sửa đổi trong tập tin phtml?

/programming/29819037/disable-cash-on-delivery-for-specific-products

/programming/14011348/disable-payment-options-only-cash-on-delivery-for-particular-product-magento

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.