Płatność przy odbiorze

Do realizacji funkcjonalności płatności przy odbiorze polecamy wykorzystanie bardzo dobrego modułu: Cash on delivery stworzonego przez firmę Phoenix. Moduł w większości przypadków rozwiązuje nasze problemy w 100%, jednak czasami chcemy wykorzystać go jednocześnie jako płatność za pobraniem i płatność przy odbiorze w sklepie.

Istnieje na to prosty i niezawodny sposób, konfigurujemy nasz odbiór osobisty jako freeshipping_freeshipping. Następnie odszukujemy plik:

app/code/community/Phoenix/CashOnDelivery/ModelCashOnDelivery.php

a w nim w okolicach linii 61

zmienimy

    public function getAddressCosts(Mage_Customer_Model_Address_Abstract $address){
        if ($address->getCountry() == Mage::getStoreConfig('shipping/origin/country_id')) {
            return $this->getInlandCosts();
        } else {
            return $this->getForeignCountryCosts();
        }
    }  

na

    public function getAddressCosts(Mage_Customer_Model_Address_Abstract $address){
        if ($address->getCountry() == Mage::getStoreConfig('shipping/origin/country_id')) {
        	if(Mage::getSingleton('checkout/session') ->getQuote() ->getShippingAddress() ->getShippingMethod() == "freeshipping_freeshipping")
        		return 0;
        	else
            return $this->getInlandCosts();
        } else {
        	if(Mage::getSingleton('checkout/session') ->getQuote() ->getShippingAddress() ->getShippingMethod() == "freeshipping_freeshipping")
        		return 0;
        	else
            	return $this->getForeignCountryCosts();
        }
    }

Dzięki temu od teraz jeżeli klient wybierze odbiór osobisty to za płatność przy odbiorze nie zostanie obciążony dodatkowymi kosztami. Dla każdej innej formy dostawy system doliczy mu koszta ustawione w konfiguracji modułu.