我试图写一个航运方法的基础上都按国家和重量也在Django-oscar的基础上。似乎默认的航运方法也必须有这些
from oscar.apps.shipping.methods import Free, FixedPrice, NoShippingRequired
我不需要任何上述,只会提供折扣航运通过折扣。
我怎么写的repository.py,所以我不适用于这些奥斯卡。应用程序。航运。方法导入免费,固定价格,NoShippingRequired
所以我可以直接写我的类Repository(CoreRepository):
没有文字
methods += [NoShippingRequired()]
methods += [FixedPrice()]
methods += [Free()]
我写的方法不是基于代码的,而是通过 Jmeter 板中的发货菜单实现的。我按照下面的步骤设置发货。
https://groups.google.com/forum/#!topic/django-oscar/H4tf20ujm8k
测试时,在“送货菜单”页面上,“HandDelivery”和我的基于重量的国家送货方法按钮都显示给客户。这意味着即使客户是国际客户,客户也可以单击“HandDelivery”按钮。我希望在送货方法页面上禁用“HandDelivery”按钮,因此它不是客户可以选择的选项。
另一种选择是附加一条消息到这个按钮,使客户清楚地知道,点击该按钮意味着安排从仓库收集项目在1周内预订。
我如何向客户显示该消息?客户没有进入付款页面。并发送一封电子邮件,使项目可以在7天内收集?像类似的argos,保留,项目,去商店,支付,并收集。所以我可以改变'手送'的描述保留。然后客户不支付,但在收集支付。但如何?
1条答案
按热度按时间zfycwa2u1#
编辑:显然奥斯卡有几种方法来定义航运;更新答案以涵盖 Jmeter 板中定义的方法!
一旦拥有了forked Oscar's shipping app,就可以覆盖存储库类,只返回想要的运费。
如果您已经通过 Jmeter 板定义了基于重量的发货,则可以使用
WeightBased
模型获取它,并且只返回:分支应用程序/运输/repository.py:
分支应用程序/运输/methods.py:
延迟付款将涉及分叉payment app,这将是值得自己的问题。
Oscar文档在“How to configure shipping“部分中还提供了一些关于进一步定制运输选项的好信息。