[原创]Magento v1.4.2 购物车 去掉 账单地址

关于Magento v1.4.2 购物车去掉账单地址,要进行此操作,较完美的方案是通过新建package,module,然后rewrite相关的block、model、controller来实现,我们的开发基本要求是不修改core里面的任何文件,模板的话,最好不要直接在base那里改,拷贝一份文件到自建的模板来改,这些熟悉Magento二次开发的朋友,都很了解了。总的来说,动此手术需要修改下列文件,后面是修改的要点:
Core/Mage/Checkout
1.    controllers/onepageController.php    在保存收货地址的同时,保持账单地址,使订单的保存过程完整
2.    Model/Type/Onepage.php            将shipping 设置为默认打开项
3.    Block/Onepage.php            把onepage的5个步骤减少为4个,即隐藏第一步骤账单地址
4.    Block/Onepage/Shipping.php        将送货地址选项卡默认打开(原设定为账单地址,现已不再载入了)
design/checkout/
5.    onepage/shipping.phtml            防止js错误,需要将billing对象初始化为一个空对象,还有做一些小修改。
6.    onepage/progress.phtml            去除onepage左边(原版模板好像是右边?)的信息对照栏目中的“账单地址”

比较直观的修改顺序是:6->3->2->4->1->5

1, onepage/progress.phtml,删除/注释下面代码
        <?php if ($this->getCheckout()->getStepData('billing', 'is_show')): ?>
        <?php if($this->getCheckout()->getStepData('billing', 'complete')): ?>
            <dt class="complete">
                <?php echo $this->__('Billing Address') ?> <span class="separator">|</span> <a href="#billing" οnclick="checkout.accordion.openSection('opc-billing'); return false;"><?php echo $this->__('Change') ?></a>
            </dt>
            <dd class="complete">
                <address><?php echo $this->getBilling()->format('html') ?></address>
            </dd>
        <?php else: ?>
            <dt>
                <?php echo $this->__('Billing Address') ?>
            </dt>
        <?php endif; ?>
        <?php endif; ?>

2, Block/Onepage.php,修改两个地方
   A. $stepCodes = array( 'billing', 'shipping', 'shipping_method', 'payment', 'review')
    => $stepCodes = array( 'shipping', 'shipping_method', 'payment', 'review');
   B. return $this->isCustomerLoggedIn() ? 'billing' : 'login'
    => return $this->isCustomerLoggedIn() ? 'shipping' : 'login';

3, Model/Type/Onepage.php,修改 initCheckout() 方法内容
   A. if (!($step==='login' || $customerSession->isLoggedIn() && $step==='billing')) {
    => if (!($step==='login' || $customerSession->isLoggedIn() && $step==='shipping')) {

4, Block/Onepage/Shipping.php,修改 _construct() 方法内容
   A. $this->getCheckout()->setStepData('billing', 'allow', true);
    => $this->getCheckout()->setStepData('shipping', 'allow', true);

5, controllers/onepageController.php 在 saveShippingAction() 方法添加内容
   A.   $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
        前面 增加 $result_billing = $this->getOnepage()->saveBilling($data, $customerAddressId);

6, onepage/shipping.phtml 在文件地下的js部分增加下面内容,给billing赋值,以免报错
    var billing = new Billing('co-billing-form',
            '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/',
            '<?php echo $this->getUrl('checkout/onepage/saveBilling') ?>');
    
到此,购物车的账单地址已经基本去除,由于我的开发是基于自己的模板,换成你的模板也可能会有点js的错误,自行调整即可,
有问题,可以咨询seiferli@gmail.com。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值