Як видалити дії з каси Magento Onepage?


18

Я використовую CE 1.7, і зараз я намагаюся видалити доставку, спосіб доставки та способи оплати з оплати на одній сторінці. Я вже видалив сходи local\mage\checkout\block\onepage\abstract.php. Моя проблема виникає, коли я намагаюся перейти від платіжної інформації до перегляду, коли натискаю кнопку "Продовжити", вона завантажує зображення наступного кроку, ніж сидить. Будь-які ідеї були б дуже вдячні.


Оскільки я не можу коментувати (поки що), будь ласка, чи можете ви сказати нам і відповісти на ваше запитання, що ви зробили (в OnepageController.php), щоб пропустити оплату в CE 1.7. Спасибі.
sky7

Привіт @Egregory, будь-яка інформація про те, як ти це зробив? Я намагаюся зробити те саме!
Едгар Кінтеро

@edgarQuintero код, який я використав, - це комбінація затвердженої відповіді та коду, який я подав. Вона також може бути різним в більш нових версіях , як я робив це в CE 1.7
Egregory

@Egregory Так, я переписав наведені нижче функції, опубліковані 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. Я б створив це в новому модулі чи просто створити це у розділі додаток \ код \ локальний?
Егрегорі

Вам потрібно створити новий модуль і переписати файли. Як замінити блок-файл? Ви можете переглянути inchoo.net/ecommerce/magento/…
Біджал Бхавсар

Дякую, що я все зрозумів, onepagecontroller.php повісив мене, як тільки я вніс правильні зміни та переписав на те, що все почало працювати.
Egregory

@Egregory, будь ласка, поділіться своєю onepagecontroller.php - як ви змінили його на початок роботи. Спасибі!
srdan

Він старий, але все ж я спробував з Magento 1.9.2, і він не працює
Алтаф Хуссейн

4

2

@ sky7 Я змінив ці біти в загальній версії 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

будь ласка, перейдіть за цим посиланням

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

або

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

це може вам допомогти


1
Повідомлення лише посилань низької якості для формату цього сайту. Будь ласка, розгорніть свою відповідь.
philwinkle

Я ціную відповідь, але вони зосереджуються більше на ce 1.6, ніж на 1.7, є деякі відмінності в тому, де речі розташовані, як кодові кроки в 1.7 розташовані у файлі Abstract.php.
Егрегорі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.