Come rimuovere i passaggi dal checkout di Magento Onepage?


18

Sto usando CE 1.7 e attualmente sto provando a rimuovere la spedizione, il metodo di spedizione e le fasi di pagamento dal checkout di Onepage. Ho già rimosso i passaggi da local\mage\checkout\block\onepage\abstract.php. Il mio problema si presenta quando provo a passare dalle informazioni di fatturazione alla revisione quando faccio clic su continua, carica l'immagine del passaggio successivo di caricamento che rimane immobile. Qualsiasi idea sarebbe molto apprezzata.


Dal momento che non posso commentare (ancora), per favore potresti dirci e rispondere alla tua domanda, cosa hai fatto (in OnepageController.php), per saltare il pagamento in CE 1.7. Grazie.
heaven7,

Ciao @Egregory, hai altre informazioni su come hai fatto? Sto provando a fare lo stesso!
Edgar Quintero,

@edgarQuintero il codice che ho usato è una combinazione della risposta approvata e del codice che ho inviato. Potrebbe anche essere diverso nelle versioni più recenti mentre lo facevo in CE 1.7
Egregory

@Egregory Sì, ho riscritto le funzioni seguenti pubblicate da Bijal Bhavsar e ho anche aggiunto le modifiche di OnepageController.php, svuotato la cache e la sessione solo per essere sicuri, ma ancora nessuna modifica. Sono anche al 1.7.
Edgar Quintero,

Risposte:


13

Prova a riscrivere sotto i file di blocco con le seguenti funzioni:

Riscrivi la classe Mage_Checkout_Block_Onepage_Billing

    public function canShip()
    {
        return false;
    }

Riscrivi la classe Mage_Checkout_Block_Onepage_Shipping_Method

    public function isShow()
    {
        return false;
    }

Riscrivi la classe Mage_Checkout_Block_Onepage_Shipping

    public function isShow()
    {
          return false;
    }

Spero che ora non si verifichino problemi relativi ai progressi.


Sto ancora imparando le capacità di riscrittura di Magento. Lo creerei in un nuovo modulo o lo creo semplicemente nella sezione app \ code \ local?
Egregory

Devi creare un nuovo modulo e riscrivere i file. Come sovrascrivere il file di blocco? Puoi recensire inchoo.net/ecommerce/magento/…
Bijal Bhavsar,

Grazie ho capito tutto, onepagecontroller.php mi ha bloccato dopo aver apportato le modifiche corrette e fatto una riscrittura per tutto ciò che ha iniziato a funzionare.
Egregory,

@Egregory potresti condividere il tuo onepagecontroller.php - come lo hai cambiato per iniziare a lavorare. Grazie!
srdan,

È vecchio, ma ho ancora provato con Magento 1.9.2 e non funziona
Altaf Hussain,

4

2

@ heaven7 Ho cambiato questi bit in OnepageController.php in generale, ho fatto più che manipolarlo, ma elencherò il mio codice in modo da poter vedere esattamente cosa ho cambiato. Ricorda di farlo solo in una copia locale e non nella cartella principale.

    `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
I post solo link sono di scarsa qualità per il formato di questo sito. Per favore, espandi la tua risposta.
Filwinkle,

apprezzo la risposta, ma questi si concentrano più su ce 1.6 che su 1.7 ci sono alcune differenze nel modo in cui le cose si trovano come i codici passo in 1.7 si trovano nel file Abstract.php.
Egregory
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.