2013-03-20 128 views
0

我正在搞Magento 1.7.2,但我无法弄清楚。我创建了一个销售定制产品(虚拟产品)的在线商店。Magento:自定义结账页面

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

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

  1. 验算方法
  2. 帐单信息
  3. 付款信息
  4. 订单检查

所以我需要的是因为我只用客人结帐,没有点在消除第1步提供登录或注册选项。因此,客户点击结帐后,他们需要直接进入第2步。

在第2步即开票信息,我只需要客户姓名(姓和名)和电子邮件,一切都需要一个像电话号码被删除,地址等,

在第3步我只提供贝宝,如果我能消除这一步,这将是一件好事。

第4步,没有问题。

那么,任何人都可以告诉我如何改变结帐页面,或者是否有可能创建一个新的自定义结账页面,以满足我的要求。如果有人能指出一些好的资源或教程,这将是有帮助的。

欣赏任何形式的帮助。

回答

0

如果你想删除从结帐过程中的一个步骤,你需要找到这个变量:

$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; 
    } 
} 

而与此结构保存这对本地文件夹:

本地/供应商/ MODULE_NAME /座/ Onepage.php

我希望这有助于。

-2

找到文件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; 
    } 
} 

刷新缓存,现在检查..