Wie entferne ich Schritte aus der Magento Onepage-Kasse?

18

Ich verwende CE 1.7 und versuche derzeit, die Schritte für Versand, Versandart und Zahlung aus der Onepage-Kaufabwicklung zu entfernen. Ich habe bereits die Stufen von entfernt local\mage\checkout\block\onepage\abstract.php. Mein Problem tritt auf, wenn ich versuche, von den Rechnungsinformationen zur Überprüfung überzugehen, wenn ich auf "Fortfahren" klicke. Dadurch wird das Bild des nächsten Schritts geladen, das sich noch befindet. Irgendwelche Ideen wären sehr dankbar.

Egregory
quelle
Da ich (noch) keinen Kommentar abgeben kann, können Sie uns bitte mitteilen und Ihre Frage beantworten, was Sie getan haben (in OnepageController.php), um die Zahlung in CE 1.7 zu überspringen. Vielen Dank.
Himmel7
Hallo @Egregory, hast du weitere Informationen darüber, wie du das gemacht hast? Ich versuche das Gleiche zu tun!
Edgar Quintero
@edgarQuintero Der von mir verwendete Code ist eine Kombination aus der genehmigten Antwort und dem von mir eingereichten Code. Es könnte auch in neueren Versionen anders sein, da ich dies in CE 1.7
Egregory,
@Egregory Ja, ich habe die folgenden Funktionen von Bijal Bhavsar umgeschrieben und auch Ihre OnepageController.php-Modifikationen hinzugefügt, den Cache und die Sitzung geleert, nur um sicher zu sein, aber immer noch keine Änderung. Ich bin auch am 1.7.
Edgar Quintero

Antworten:

13

Versuchen Sie, unter Blockdateien mit folgenden Funktionen neu zu schreiben:

Klasse umschreiben Mage_Checkout_Block_Onepage_Billing

    public function canShip()
    {
        return false;
    }

Klasse umschreiben Mage_Checkout_Block_Onepage_Shipping_Method

    public function isShow()
    {
        return false;
    }

Klasse umschreiben Mage_Checkout_Block_Onepage_Shipping

    public function isShow()
    {
          return false;
    }

Ich hoffe, dass jetzt kein Problem bezüglich des Fortschritts auftritt.

Bijal Bhavsar
quelle
Ich lerne immer noch die Umschreibefunktionen von Magento. Würde ich dies in einem neuen Modul erstellen oder erstelle ich dies einfach im Abschnitt App \ Code \ Local?
Egregory
Sie müssen ein neues Modul erstellen und Dateien neu schreiben. Wie überschreibe ich eine Blockdatei? Sie können inchoo.net/ecommerce/magento/…
Bijal Bhavsar
Danke, ich habe alles herausgefunden, der onepagecontroller.php hat mich aufgehängt, als ich die richtigen Änderungen vorgenommen und ein Rewrite durchgeführt habe, damit alles funktioniert hat.
Egregory
@Egregory könntest du bitte deine onepagecontroller.php teilen - wie hast du sie geändert, damit sie funktioniert? Vielen Dank!
Samstag,
Es ist alt, aber ich habe es mit Magento 1.9.2 versucht und es funktioniert nicht
Altaf Hussain
4

Ein bisschen alt aber schau mal hier:

Anmeldung entfernen http://excellencemagentoblog.com/magento-onestep-checkout-remove-login-step

Entfernen Sie Zahlung + Versand http://excellencemagentoblog.com/magento-onestep-checkout-remove-payment-and-shipping-method-step

Zahlung entfernen http://excellencemagentoblog.com/magento-onestep-checkout-remove-payment-method-step

Versand entfernen http://excellencemagentoblog.com/magento-onestep-checkout-remove-shipping-method-step

Fügen Sie den Schritt http://excellencemagentoblog.com/magento-onestep-checkout-add-step hinzu

snh_nl
quelle
2

@ heaven7 Ich habe diese Bits in der OnepageController.php geändert. Insgesamt habe ich mehr getan als das zu manipulieren, aber ich werde meinen Code auflisten, damit Sie sehen können, was ich genau geändert habe. Denken Sie daran, dies nur in einer lokalen Kopie und nicht im Hauptordner zu tun.

    `protected $_sectionUpdateFunctions = array(
           /* 'payment-method'  => '_getPaymentMethodsHtml',
            'shipping-method' => '_getShippingMethodsHtml',*/
            'review'          => '_getReviewHtml',
        );    public function saveBillingAction()
        {
           if ($this->_expireAjax()){
            return;
        }
            if ($this->getRequest()->isPost()) {
                $data = $this->getRequest()->getPost('billing', array());
                $customerAddressId =  $this->getRequest()->getPost('billing_address_id', false);
                $result = $this->getOnepage()->saveBilling($data, $customerAddressId);

    //            if (!isset($result['error'])) {
    //                if ($this->getOnepage()->getQuote()->isVirtual()) {
                        $this->loadLayout('checkout_onepage_review');
                        $result['goto_section'] = 'review';
                        $result['update_section'] = array(
                            'name' => 'review',
                            'html' => $this->_getReviewHtml()
                        );
                    }
                    /*elseif (isset($data['use_for_shipping']) && $data['use_for_shipping'] == 1) {
                        $this->saveShippingMethodAction();
                        $this->loadLayout('checkout_onepage_review');
                        $result['goto_section'] = 'review';
                        $result['update_section'] = array(
                            'name' => 'review',
                            'html' => $this->_getReviewHtml()
                        );

                        $result['allow_sections'] = array('shipping','review');
                        $result['duplicateBillingInfo'] = 'true';
                    }*/
                   /* else {
                        //$result['goto_section'] = 'shipping';
                        //TODO There is an error with loading the layout of the Review tab.
                        $result['goto_section'] = 'review';
                    }*/
               // }

                $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));

            }     
     public function saveShippingAction()
    {

       if($this->_expireAjax()){
           return;
       }
        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost('shipping', array());
            $customerAddressId = $this->getRequest()->getPost('shipping_address_id', false);
            $result = $this->getOnepage()->saveShipping($data, $customerAddressId);

            if (!isset($result['error'])) {
                $this->saveShippingMethodAction();
                $this->loadLayout('checkout_onepage_review');
                $result['goto_section'] = 'review';
                $result['update_section'] = array(
                    'name' => 'review',
                    'html' => $this->_getReviewHtml()
                );
            }
            $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
        }
    }

public function saveShippingMethodAction()
    {
        if ($this->_expireAjax()) {
            return;
        }
        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost('shipping_method', '');
            $result = $this->getOnepage()->saveShippingMethod($data);
            /*
            $result will have erro data if shipping method is empty
            */
            if(!$result) {
                Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method',
                        array('request'=>$this->getRequest(),
                            'quote'=>$this->getOnepage()->getQuote()));
                $this->getOnepage()->getQuote()->collectTotals();
                $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));

                $result['goto_section'] = 'review';
                $result['update_section'] = array(
                    'name' => 'review',
                    'html' => $this->_getReviewHtml()
                );
            }
            $this->getOnepage()->getQuote()->collectTotals()->save();
            $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
        }
    }
Egregory
quelle
1

Bitte folgen Sie diesem Link

http://sapnandu-magento.blogspot.in/2012/04/magento-onestep-checkout-remove.html

oder

http://knowledgevalley.blogspot.in/2012/01/magento-skip-shipping-method-from.html

es kann dir helfen

Keyur Shah
quelle
1
Nur-Link-Posts sind für das Format dieser Site von schlechter Qualität. Bitte erweitern Sie Ihre Antwort.
Philwinkle
Ich schätze die Antwort, aber diese konzentrieren sich mehr auf ce 1.6 als 1.7. Es gibt einige Unterschiede, wo sich Dinge befinden, wie die Schrittcodes in 1.7 in der Datei Abstract.php.
Egregory