Magento Onepageチェックアウトから手順を削除する方法


18

CE 1.7を使用していますが、現在、Onepageチェックアウトから配送、配送方法、および支払い手順を削除しようとしています。から既に手順を削除しましたlocal\mage\checkout\block\onepage\abstract.php。私の問題は、「続行」をクリックすると、請求情報から確認まで進行しようとするときに発生します。どんなアイデアでも大歓迎です。


(まだ)コメントできないので、CE 1.7での支払いをスキップするために(OnepageController.phpで)何をしたか、質問に答えてください。ありがとう。
heaven7

こんにちは、@ Egregory、これをどのように行ったかについての情報はありますか?私も同じことをしようとしています!
エドガーキンテーロ

@edgarQuinteroで使用したコードは、承認済みの回答と送信したコードの組み合わせです。また、CE 1.7
Egregory

@Egregory Yea私はBijal Bhavsarが投稿した以下の関数を書き直し、OnepageController.phpの変更を追加し、確認のためにキャッシュとセッションをクリアしましたが、変更はありません。私も1.7です。
エドガーキンテーロ

回答:


13

以下のブロックファイルを次の機能で書き直してください。

書き換えクラス Mage_Checkout_Block_Onepage_Billing

    public function canShip()
    {
        return false;
    }

書き換えクラス Mage_Checkout_Block_Onepage_Shipping_Method

    public function isShow()
    {
        return false;
    }

書き換えクラス Mage_Checkout_Block_Onepage_Shipping

    public function isShow()
    {
          return false;
    }

現在、進行に関連する問題が発生しないことを願っています。


私はまだMagentoの書き換え機能を学んでいます。これを新しいモジュールで作成しますか、それともapp \ code \ localセクションで作成しますか?
エグレゴリー

新しいモジュールを作成し、ファイルを書き換える必要があります。ブロックファイルを上書きするには?あなたはinchoo.net/ecommerce/magento/
Bijal Bhavsar

すべてを理解してくれたおかげで、正しい変更を加えてすべてが機能し始めるように書き直したときにonepagecontroller.phpがハングアップしました。
エグレゴリー

@Egregoryはonepagecontroller.phpを共有してもらえますか-どのように変更して作業を開始しましたか。ありがとう!
srdan

それは古いですが、それでも私は、Magentoの1.9.2で試してみました、それが動作していない
アルタフ・フセイン

4

2

@ heaven7 OnepageController.php全体でこれらのビットを変更しましたが、これを操作する以上のことをしましたが、コードをリストして、変更内容を正確に確認できるようにします。コアフォルダーではなく、ローカルコピーのみでこれを行うことを忘れないでください。

    `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
リンクのみの投稿は、このサイトの形式では品質が低くなります。答えを広げてください。
-philwinkle

私は応答を感謝していますが、これらは1.7よりもCE 1.6に重点を置いていますが、1.7のステップコードがAbstract.phpファイルにあるように、物事の場所にいくつかの違いがあります。
エグレゴリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.