Magento-在购买可下载产品时删除计费和发货信息


Magento - Remove Billing and Shipping Information when buying downloadable products

我经营着一家Magento Shop,它有几个可下载的产品,当人们购买其他产品或从其他地方获得我们的代金券时,有些产品会免费提供下载代码。

因此有两种情况,1。人们只购买可下载的产品,使用贝宝支付,或者2。如果有代金券,人们可以免费下载产品。

对于许多人来说,输入账单信息是相当困难的,尽管他们只是作为客人下载文件,我们不需要账单信息。

当人们只下载产品时,有人遇到过摆脱账单信息的方法吗?这意味着他们实际上只能通过电子邮件结账,就像在bandcamp.com这样的页面上一样?

非常感谢你的想法。

你不会喜欢这样的
我认为在合理的成本范围内,从Magento删除账单地址是不可能的
它深深植根于订单机制中
对于发货地址,这应该是开箱即用的
如果您的订单中只有虚拟和可下载的产品,则发货地址和发货方法步骤不应出现在结账中。

但如果你坚持要做,我可以给你一些从哪里开始的建议
首先,您需要修改onepagecheckout控制器,或者更好地编写自己的checkout控制器来处理您的需求
然后在Mage_SalesMage_Checkout模块中查找文本getBillingAddresssetBillingAddress,并处理这些值可能为null的情况。

这里有一个例子可以更好地理解我在说什么
在订单模型的sendNewOrderEmail方法中,存在以下

$customerName = $this->getBillingAddress()->getName();

如果帐单地址为空,您需要更改此项。如果它不是null,就让它像现在一样工作。

也许我应该更清楚,我不一定需要完全删除账单。我只需要一个名字和一个电子邮件地址就可以发送带有下载链接的购买电子邮件。但我需要去掉Street、Tel、City等,或者不需要设置它们,但前提是所有产品都可以下载。

Magento已经根据购物车检查我们是否需要发货。

所以我会想到类似的东西

  1. 如果我们需要发货,请登录OPC(或者,所有产品都可以下载)
  2. 将帐单字段更改为"不需要"或将其删除2a。如果Magento需要一个地址,可以设置一个对客户隐藏的虚拟地址

欢呼Marek