문제

기본적으로 특정 제품 유형에 대한 현금으로 현금을 비활성화해야합니다. 기본적으로 MAGE 가게의 상점 크레딧을 사용합니다.이것은 Magento의 지갑을위한 것입니다. 지불 옵션으로 배달에 현금을 보여줍니다.그것의 물리적 또는 가상 제품이 아닙니다.따라서이 제품 유형에 대해 현금으로 현금을 사용하지 않아야합니다.

도움이 되었습니까?

해결책

Magento Event/Observer / P>

먼저 payment_method_is_active를 사용하여 현재 견적 제품 유형에 따라 다르지 않습니다.

코드 코드 :

모듈 config.xml 코드 :

<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>
.

옵저버 코드는 다음과 같습니다.

<?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;
            }
        }
    }

}
.

다른 팁

Magento payment_method_is_active 이벤트

을 사용해야합니다.

Magento 확장자를 개발하는 방법을 알고 있다고 가정하고 있습니다 [그렇지 않은 경우 전체 모듈을 얻을 수 있습니다 config.xml

에서 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>
.

옵서버 파일 생성 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;
                }

        }

    }
.

이 문제를 해결할 것입니다.이 문제가 해결할 것이라고 생각합니다.이 문제를 해결할 필요가 있습니다. Quotes 정보를 얻을 수 있고 이벤트로 유효성 검사 또는 조건을 수행 할 수있는 방법을 수정해야합니다. Observer 또는PHTML 파일의 수정

https://stackoverflow.com/questions/29819037/disable-cash.- 전달 - 특정 제품

https://stackoverflow.com/ questions / 14011348 / 비활성화 - 지불 옵션 - 전용 현금 - 특별한 - 제품 마그네토

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top