我正在搞乱Magento 1.7.2,但我无法弄明白。我创建了一个销售定制产品(虚拟产品)的在线商店。
允许用户在我的商店注册是没有用的,因为他们只能购买一次产品。所以我需要禁用注册。
默认情况下,结账页面上有4个步骤,客户需要在订购前完成这些步骤。
所以我需要的是消除第1步,因为我只使用访客结账,并且没有提供登录或注册选项的意义。因此,在客户点击结帐后,他们需要直接进入第2步。
在第2步,即结算信息中,我只需要客户姓名(名字和姓氏)和电子邮件,所有内容都需要删除,如电话号码,地址等,
在第3步中,我只提供PayPal,如果我可以消除这一步,那将是件好事。
第4步,没问题。
所以有人可以告诉我如何更改结帐页面,还是可以创建符合我要求的新自定义结帐页面。如果任何人都可以指出一些好的资源或教程,那将会很有帮助。
感谢任何帮助。
答案 0 :(得分: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
我希望这会有所帮助。
答案 1 :(得分:-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;
}
}
刷新缓存并立即检查..