Bagaimana cara menghapus langkah-langkah dari checkout Magento Onepage?

18

Saya menggunakan CE 1.7 dan saat ini saya mencoba menghapus pengiriman, metode pengiriman, dan langkah-langkah pembayaran dari checkout Onepage. Saya sudah menghapus langkah-langkahnya local\mage\checkout\block\onepage\abstract.php. Masalah saya muncul saat mencoba berkembang dari informasi penagihan untuk ditinjau ketika saya mengklik lanjutkan memuat gambar langkah selanjutnya dari duduk. Setiap ide akan sangat dihargai.

Egregory
sumber
Karena saya tidak dapat berkomentar (belum), dapatkah Anda memberi tahu kami dan menjawab pertanyaan Anda, apa yang Anda lakukan (di OnepageController.php), untuk melewati pembayaran di CE 1.7. Terima kasih.
heaven7
Hai @Egregory, ada info lebih lanjut tentang bagaimana Anda melakukan ini? Saya mencoba melakukan hal yang sama!
Edgar Quintero
@edgarQuintero kode yang saya gunakan adalah kombinasi dari jawaban yang disetujui dan kode yang saya kirimkan. Mungkin juga berbeda di versi yang lebih baru karena saya melakukan ini di CE 1.7
Egregory
@ Raja Ya saya menulis ulang fungsi-fungsi di bawah ini yang diposting oleh Bijal Bhavsar dan juga menambahkan modifikasi OnepageController.php Anda, membersihkan cache dan sesi hanya untuk memastikan, tetapi masih tidak ada perubahan. Saya juga di 1,7.
Edgar Quintero

Jawaban:

13

Cobalah untuk menulis ulang di bawah ini blokir file dengan fungsi-fungsi berikut:

Tulis ulang kelas Mage_Checkout_Block_Onepage_Billing

    public function canShip()
    {
        return false;
    }

Tulis ulang kelas Mage_Checkout_Block_Onepage_Shipping_Method

    public function isShow()
    {
        return false;
    }

Tulis ulang kelas Mage_Checkout_Block_Onepage_Shipping

    public function isShow()
    {
          return false;
    }

Saya harap sekarang masalah yang berkaitan dengan kemajuan tidak akan terjadi.

Bijal Bhavsar
sumber
Saya masih belajar kemampuan menulis ulang Magento. Apakah saya akan membuat ini dalam modul baru atau saya hanya membuat ini di bagian app \ code \ local?
Egregory
Anda harus membuat modul baru dan menulis ulang file. Bagaimana cara mengganti file blokir? Anda dapat meninjau inchoo.net/ecommerce/magento/…
Bijal Bhavsar
Terima kasih saya mengetahui semuanya, onepagecontroller.php menggantung saya setelah saya membuat perubahan yang benar dan melakukan penulisan ulang untuk semuanya mulai bekerja.
Egregory
@Egregory bisa tolong bagikan onepagecontroller.php Anda - bagaimana Anda mengubahnya untuk mulai bekerja. Terima kasih!
srdan
Ini sudah tua, tetapi saya masih mencoba dengan Magento 1.9.2 dan tidak berfungsi
Altaf Hussain
4

Sedikit tua tetapi lihat di sini:

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

Hapus pembayaran + pengiriman http://excellencemagentoblog.com/magento-onestep-checkout-remove-payment-and-shipping-method-step

hapus pembayaran http://excellencemagentoblog.com/magento-onestep-checkout-remove-payment-method-step

hapus pengiriman http://excellencemagentoblog.com/magento-onestep-check-remove-shipping-method-step

Tambahkan langkah http://excellencemagentoblog.com/magento-onestep-checkout-add-step

snh_nl
sumber
2

@ heaven7 Saya mengubah bit-bit ini di OnepageController.php secara keseluruhan saya melakukan lebih dari memanipulasi ini tetapi saya akan membuat daftar kode saya sehingga Anda dapat melihat apa yang saya ubah dengan tepat. Hanya ingat untuk melakukan ini hanya di salinan lokal dan bukan di folder inti.

    `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
sumber
1

silakan ikuti tautan ini

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

atau

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

mungkin membantu Anda

Keyur Shah
sumber
1
Tautan kiriman hanya berkualitas buruk untuk format situs ini. Harap perluas jawaban Anda.
philwinkle
Saya menghargai tanggapan tetapi ini lebih fokus pada ce 1.6 dari 1.7 ada beberapa perbedaan di mana hal-hal berada seperti kode langkah di 1.7 terletak di file Abstract.php.
Egregory