Comment supprimer les étapes de la vérification de Magento Onepage?


18

J'utilise CE 1.7 et j'essaie actuellement de supprimer l'expédition, la méthode d'expédition et les étapes de paiement de la commande Onepage. J'ai déjà supprimé les étapes de local\mage\checkout\block\onepage\abstract.php. Mon problème survient lorsque j'essaie de passer des informations de facturation à l'examen lorsque je clique sur Continuer, il charge l'image de l'étape suivante de chargement qui reste immobile. Toutes les idées seraient très appréciées.


Étant donné que je ne peux pas (encore) commenter, veuillez nous dire et répondre à votre question, ce que vous avez fait (dans OnepageController.php), pour ignorer le paiement dans CE 1.7. Merci.
heaven7

Salut @Egregory, plus d'informations sur la façon dont vous avez fait cela? J'essaye de faire pareil!
Edgar Quintero

@edgarQuintero le code que j'ai utilisé est une combinaison de la réponse approuvée et du code que j'ai soumis. Cela pourrait également être différent dans les versions plus récentes car je faisais cela dans CE 1.7
Egregory

@Egregory Oui, j'ai réécrit les fonctions ci-dessous publiées par Bijal Bhavsar et j'ai également ajouté vos modifications OnepageController.php, effacé le cache et la session juste pour être sûr, mais toujours pas de changement. Je suis également sur 1.7.
Edgar Quintero

Réponses:


13

Essayez de réécrire les fichiers de blocs ci-dessous avec les fonctions suivantes:

Réécrire la classe Mage_Checkout_Block_Onepage_Billing

    public function canShip()
    {
        return false;
    }

Réécrire la classe Mage_Checkout_Block_Onepage_Shipping_Method

    public function isShow()
    {
        return false;
    }

Réécrire la classe Mage_Checkout_Block_Onepage_Shipping

    public function isShow()
    {
          return false;
    }

J'espère que maintenant le problème lié au progrès ne se produira pas.


J'apprends toujours les capacités de réécriture de Magento. Dois-je créer cela dans un nouveau module ou dois-je simplement le créer dans la section app \ code \ local?
Egregory

Vous devez créer un nouveau module et réécrire les fichiers. Comment remplacer le fichier de blocage? Vous pouvez consulter inchoo.net/ecommerce/magento/…
Bijal Bhavsar

Merci d'avoir tout compris, onepagecontroller.php m'a raccroché une fois que j'ai fait les changements corrects et fait une réécriture pour que tout commence à fonctionner.
Egregory

@Egregory pourriez-vous s'il vous plaît partager le vôtre sur onepagecontroller.php - comment l'avez-vous changé pour commencer à travailler. Merci!
2015

C'est vieux, mais j'ai quand même essayé avec Magento 1.9.2 et ça ne marche pas
Altaf Hussain

4

2

@ heaven7 J'ai changé ces bits dans le OnepageController.php dans l'ensemble, j'ai fait plus que manipuler cela, mais je vais lister mon code afin que vous puissiez voir ce que j'ai changé exactement. N'oubliez pas de le faire uniquement dans une copie locale et non dans le dossier principal.

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.