2013-03-20 75 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; 
    } 
} 

刷新緩存,現在檢查..