如何仅为Magento中的访客结帐排除所需的增值税号字段

时间:2014-03-08 22:24:03

标签: magento field checkout

是否可以从访客结帐中排除增值税号字段,同时将增值税号码作为注册客户的必填字段? 我们正在使用Magento 1.7的欧洲增值税验证模块。

1 个答案:

答案 0 :(得分:0)

我快速浏览了Magento XML文件以获取增值税。我认为你不能指定它取决于登录和未登录,因为它似乎是app/code/core/Mage/Checkout/checkout/etc/config.xml中设置的字段。

实际上app/design/frontend/base/default/template/checkout/onepage/billing.phtml的第74行(Magento 1.7.0.0)看起来很有趣:

<?php if ($this->helper('customer/address')->isVatAttributeVisible()) : ?>

我建议修改

<?php if ($this->helper('customer/address')->isVatAttributeVisible() && $this->isCustomerLoggedIn()) : ?>

您需要做的就是将修改后的checkout / onepage / billing.phtml放在模板路径中。 (第152行<?php if ($_taxvat->isEnabled()): ?>也可能相关。)

如果您对登录用户和已注销用户的要求非常不同,那么您可能需要制作全新的模板,每个状态一个,并使用local.xml来控制显示的内容:

<layout>
  <!-- ... -->
    <customer_logged_out>
        <reference name="checkout.onepage.billing">
          <action method="setTemplate"><template>checkout/onepage/billingloggedout.phtml</template></action>
        </reference>
    </customer_logged_out>

    <customer_logged_in>
        <reference name="checkout.onepage.billing">
          <action method="setTemplate"><template>checkout/onepage/billingloggedin.phtml</template></action>
        </reference>
    </customer_logged_in>
  <!-- ... -->
</layout>

但为结帐创建新区块可能并不简单(您可能需要使用引用name="billing"而不是引用name="checkout.onepage.billing")。