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.