Magento:自定义签出页面

Magento:自定义签出页面,magento,magento-1.7,checkout,Magento,Magento 1.7,Checkout,我在玩Magento 1.7.2,但我想不出来。我创建了一个在线商店,销售定制产品(虚拟产品) 允许用户在我的商店注册是没有用的,因为他们只能购买一次产品。所以我需要禁用注册 默认情况下,结账页面上有4个步骤,客户需要在订购前完成这些步骤 检验方法 计费信息 付款信息 订单审核 所以我需要的是取消第1步,因为我只使用guest checkout,没有必要提供登录或注册选项。因此,在客户点击结账后,他们需要直接进入第2步 在第2步,即账单信息中,我只需要客户姓名(名字和姓氏)和电子邮件,所有内容都

我在玩Magento 1.7.2,但我想不出来。我创建了一个在线商店,销售定制产品(虚拟产品)

允许用户在我的商店注册是没有用的,因为他们只能购买一次产品。所以我需要禁用注册

默认情况下,结账页面上有4个步骤,客户需要在订购前完成这些步骤

  • 检验方法
  • 计费信息
  • 付款信息
  • 订单审核
  • 所以我需要的是取消第1步,因为我只使用guest checkout,没有必要提供登录或注册选项。因此,在客户点击结账后,他们需要直接进入第2步

    在第2步,即账单信息中,我只需要客户姓名(名字和姓氏)和电子邮件,所有内容都需要删除,如电话号码、地址等

    在第三步中,我只提供PayPal,如果我能取消这一步就好了

    第四步,没问题

    那么,有谁能告诉我如何更改签出页面,或者有没有可能创建一个新的自定义签出页面来满足我的要求呢。如果任何人都能找到一些好的资源或教程,这将是很有帮助的


    感谢您的帮助。

    如果您想从签出过程中删除一个步骤,您需要找到此变量:

    $stepCodes = array('billing', 'shipping', 'shipping_method', 'payment', 'review');
    
    因此,如果您想删除计费流程(例如),那么您的代码应该如下所示:

    $stepCodes = array('shipping', 'shipping_method', 'payment', 'review');
    
    最好的方法是制作一个自定义模块,通过以下方式扩展Mage_Checkout_Block_Onepage类:

    class Vendor_ModuleName_Block_Onepage extends Mage_Checkout_Block_Onepage
    {
        public function getSteps()
        {
            $steps = array();
    
            if (!$this->isCustomerLoggedIn()) {
                $steps['login'] = $this->getCheckout()->getStepData('login');
            }
    
            $stepCodes = array('shipping', 'shipping_method', 'payment', 'ddate', 'review');
    
            foreach ($stepCodes as $step) {
                $steps[$step] = $this->getCheckout()->getStepData($step);
            }
            return $steps;
        }
    }
    
    并将其保存在具有以下结构的本地文件夹中:

    local/vendor/module_name/Block/Onepage.php


    我希望这能有所帮助。

    找到文件
    app\code\core\Mage\Checkout\Block\Onepage.php

    编辑类并替换为以下代码:

    class Mage_Checkout_Block_Onepage extends Mage_Checkout_Block_Onepage_Abstract
    {
        /**
         * Get 'one step checkout' step data
         *
         * @return array
         */
        public function getSteps()
        {
            $steps = array();
            $stepCodes = $this->_getStepCodes();
    
            if ($this->isCustomerLoggedIn()) {
                $stepCodes = array_diff($stepCodes, array('login'));
            }
    
            foreach ($stepCodes as $step) {
                $steps[$step] = $this->getCheckout()->getStepData($step);
            }
    
            return $steps;
        }
    
        /**
         * Get active step
         *
         * @return string
         */
        public function getActiveStep()
        {
            return $this->isCustomerLoggedIn() ? 'billing' : 'login';
        }
    }
    
    对下列事项:

    class Mage_Checkout_Block_Onepage extends Mage_Checkout_Block_Onepage_Abstract
    {
        /**
         * Get 'one step checkout' step data
         *
         * @return array
         */
        public function getSteps()
        {
            $steps = array();
    
            if (!$this->isCustomerLoggedIn()) {
                $steps['login'] = $this->getCheckout()->getStepData('login');
            }
    
            $stepCodes = array('shipping','billing','shipping_method', 'payment', 'review');
    // or new
    //$stepCodes = array('shipping','payment', 'review');
    
            foreach ($stepCodes as $step) {
                $steps[$step] = $this->getCheckout()->getStepData($step);
            }
            return $steps;
        }
    }
    
    刷新缓存并立即检查