2014-10-01 166 views
2

我运行Magento的商店,有几个下载的产品时,删除计费和航运信息,一些免费的午餐有downloadcode当人们购买其他产品或他们从别的地方得到我们的优惠券。Magento的 - 购买可下载产品

因此,有2种情况,1人只能购买下载的产品,使用PayPal支付,或2人下载的免费产品,如果他们有一个凭证。

其相当annyoing对许多人来说,进入计费信息,虽然他们只下载文件作为嘉宾,我们并不需要一个帐单信息。

没有人曾经遇到过的方式来摆脱计费信息的,当人们只能下载的产品?这意味着他们实际上只能通过电子邮件退房,就像在bandcamp.com这样的页面上完成的一样?

非常感谢您的想法。

回答

1

你不会喜欢这个。
我认为从Magento中删除帐单邮寄地址是不可能的,不是合理的成本。
它深深植入了订单机制。
对于送货地址,这应该是开箱即用的。
如果您的订单中只有虚拟和可下载的产品,则送货地址和送货方式步骤不应出现在结帐中。

但是,如果你做到了这一点坚持,我可以给你从哪里开始一些指针。
首先,您需要修改onepagecheckout控制器,或者更好地编写自己的结帐控制器来处理您的需求。
然后查看Mage_SalesMage_Checkout模块中的文字getBillingAddresssetBillingAddress,并处理这些值可能为空的情况。

这里是一个例子,以更好地理解我在说什么。
在订单模式的sendNewOrderEmail方法有这个

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

你需要改变这种情况下的帐单地址为空。如果它不为空,让它像现在一样工作。

+0

嘿马吕斯, 感谢,没有那么promissing,见解;-)也许我将开始与控制器黑客,我想创建某种虚拟客户那会获得隐藏在真实客户面前的地址。 – Moses 2014-10-01 12:08:44

+0

@摩西。告诉你你不会喜欢它:)。我认为最好是创建自己的控制器而不是黑客攻击核心控制器。并在结帐过程中进行检查。如果您只有免费的可下载产品重定向到您的控制器。这应该是最安全的方式。 – Marius 2014-10-01 12:17:03

+0

有问题,我有物理免费下载(通过凭证)和可下载的产品。但我会专注于控制器,当然我不会改变核心。 – Moses 2014-10-01 12:23:15

0

也许我应该更清楚一点,我不一定需要彻底清除帐单。我只需要一个名称和一个电子邮件地址即可发送带有下载链接的购买电子邮件。但是我需要摆脱街道,电话,城市等,或者设置它们不是必需的,但只有在所有产品都可以下载的情况下。

的Magento已经检查我们是否需要送货,或不基于购物车。

所以,我觉得像在OPC

  1. 检查,如果我们需要发货(或者,所有的产品都下载)到“不要求”
  2. 改变计费领域或删除它们 2A 。如果Magento需要一个地址,可能会设置一个隐藏于客户的虚拟地址?

欢呼马立克