使用django-oscar销售完全自定义的产品



我正在考虑使用django-oscar销售定制产品。只有一个SKU,但它有4个属性,客户可以指定:化学物质,颜色,气味和重量。

  • Chemicals是一个JSON对象(名称/值对的字典),我们需要使用它来跟踪化学品的库存。
  • 权重为200 ~ 20000之间的整数。
  • 香味和颜色目前各有十几个值。

客户将制作食谱并相互分享。配方是4个属性的组合。

产品将按订单生产,所以我们只储备原料,不储备成品。

我们已经有了一个HTML/JavaScript页面,允许客户为4个产品属性选择值。成本需要通过Ajax调用一个需要Django公开的API来完成。

目前,有一个履行合作伙伴(我),但开箱操作的django-oscar只将履行合作伙伴应用于完全定义的产品。

似乎(但我有点不确定)manage.py oscar_fork_app在现有的web应用程序中创建分叉的奥斯卡应用程序,如Frobshop…对吗?

从我读到的内容来看,django-oscar似乎有能力销售我描述的定制产品。我想我需要叉目录和仪表板应用程序。我还需要叉篮和订单和合作伙伴吗?

我该如何设置这种类型的存储?我已经看了https://django-oscar.readthedocs.io/en/latest/topics/customisation.html,但我还没有尝试前进,仍然试图得到一个处理的事情。

我决定试着看看发生了什么。我决定将根模块命名为ancientwarmth。下面的工作很好,我分叉了catalogue,dashboard,basket,orderpartner

for x in catalogue dashboard basket order partner; do
./manage.py oscar_fork_app $x ancientwarmth
sed -i s/oscar.apps.$x.apps.${x^}/ancientwarmth.$x.apps.${x^}/ 
frobshop/settings/base.py
done

但是,我无法分叉其中的任何一个:

  • oscar.apps.dashboard.orders.apps.OrdersDashboardConfig
  • oscar.apps.dashboard.catalogue.apps.CatalogueDashboardConfig
  • oscar.apps.dashboard.partners.apps.PartnersDashboardConfig

I got a error likeCommandError: There is no app with the label 'dashboard.catalogue'.

这是一个相当宽泛的问题,而且不太可能得到一个全面的答案,因为写一个问题需要花费时间,但是有一些注释(并帮助解决分叉错误):

  1. 使用Oscar销售定制产品是很有可能的。

  2. 你需要分叉哪些应用真的取决于你的用例和你需要覆盖的Oscar的核心功能。首先,你需要充分了解Oscar的应用提供了哪些现成的功能,以决定是否需要覆盖它们的功能。一般情况下,你不可能回答你需要分叉哪些应用。Oscar的设计是为了给你尽可能多的灵活性来重写它的功能——知道什么时候/在哪里这样做确实需要首先熟悉它的功能。

  3. oscar_fork_app的第一个参数是DjangoAppConfig的标签,而不是模块名,这是你想要使用的。这就是为什么你在尝试分叉仪表板应用程序时会得到一个错误。正确的命令应该是manage.py oscar_fork_app catalogue_dashboard <destination_path>。这在文档中不是很清楚,有一个问题需要修复。这里定义了catalogue_dashboard

    (它适用于catalogue,basket等应用程序,因为为应用程序定义的应用程序名称与您提供的参数相同)