Magento - 购买可下载产品时删除帐单和运输信息
Posted
技术标签:
【中文标题】Magento - 购买可下载产品时删除帐单和运输信息【英文标题】:Magento - Remove Billing and Shipping Information when buying downloadable products 【发布时间】:2014-11-26 05:42:40 【问题描述】:我经营一家 Magento 商店,里面有几种可下载的产品,有些是在人们购买其他产品或从其他地方获得我们的代金券时免费提供的。
所以有 2 种场景,1. 人们只购买可下载的产品,使用 paypal 付款,或者 2. 人们免费下载产品,如果他们有优惠券的话。
尽管他们只是以访客身份下载文件并且我们不需要帐单信息,但对于许多人来说输入帐单信息是相当烦人的。
当人们只下载产品时,有没有人发现过一种摆脱帐单信息的方法?这意味着他们实际上只能通过电子邮件结帐,就像在 bandcamp.com 之类的页面上所做的那样?
非常感谢您的想法。
【问题讨论】:
【参考方案1】:也许我应该更清楚一点,我不一定需要完全删除帐单。我只需要一个姓名和一个电子邮件地址就可以发送带有下载链接的购买电子邮件。但我需要去掉 Street、Tel、City 等或将它们设置为不需要,但前提是所有产品都可下载。
Magento 已经根据购物车检查我们是否需要发货。
所以我会想到类似的东西
-
如果我们需要运送,请检查 OPC(或者,所有产品都可以下载)
将帐单字段更改为“非必填”或将其删除
2a。如果 Magento 需要地址,可以设置一个对客户隐藏的虚拟地址???
干杯马雷克
【讨论】:
【参考方案2】:你不会喜欢这个的。 我认为从 Magento 中删除帐单邮寄地址是不可能的(在合理的成本范围内)。 它深深嵌入在订单机制中。 对于送货地址,这应该是开箱即用的。 如果您的订单中只有虚拟和可下载产品,则收货地址和送货方式步骤不应出现在结帐中。
但是如果你坚持这样做,我可以给你一些关于从哪里开始的指示。
首先,您需要修改 onepagecheckout 控制器,或者更好地编写自己的结帐控制器来满足您的需求。
然后在 Mage_Sales
和 Mage_Checkout
模块中查找文本 getBillingAddress
和 setBillingAddress
并处理这些值可以为空的情况。
这是一个示例,可以更好地理解我在说什么。
在订单模型的sendNewOrderEmail
方法中有这个
$customerName = $this->getBillingAddress()->getName();
如果帐单地址为空,您需要更改此设置。如果它不为空,让它像现在一样工作。
【讨论】:
嘿马里乌斯,谢谢你的,不太有希望的见解 ;-) 也许我会开始使用控制器进行黑客攻击,我正在考虑创建某种虚拟客户来隐藏地址来自真正的客户。 @摩西。告诉你你不会喜欢的:)。我认为最好启动自己的控制器而不是破解核心控制器。并且只是在结帐过程中进行检查。如果您只有免费的可下载产品重定向到您的控制器。这应该是最安全的方式。 问题是,我有实体的免费下载(通过凭证)和可下载的付费产品。但是我会专注于控制器,当然我不会改变核心。以上是关于Magento - 购买可下载产品时删除帐单和运输信息的主要内容,如果未能解决你的问题,请参考以下文章