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.


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.


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

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

1

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.