【问题标题】:Using django-oscar to sell fully custom products使用 django-oscar 销售完全定制的产品
【发布时间】:2021-02-22 19:27:45
【问题描述】:

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

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

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

产品将按订单生产,因此我们只储存原料,不储存成品。

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

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

似乎(但我有点不确定)manage.py oscar_fork_app 在现有的 web 应用中创建了分叉的 Oscar 应用,比如 Frobshop……是这样吗?

从我读到的内容看来,django-oscar 能够销售我所描述的定制产品。我认为我需要分叉目录和仪表板应用程序。我还需要分叉 Basket 和 Order 以及 Partner 吗?

我将如何设置这种类型的商店?我看过https://django-oscar.readthedocs.io/en/latest/topics/customisation.html,但我还没有尝试继续前进,仍在尝试处理事情。

我决定尝试看看发生了什么。我决定调用根模块ancientwarmth。以下工作正常,我分叉了cataloguedashboardbasketorderpartner

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

我收到了类似CommandError: There is no app with the label 'dashboard.catalogue' 的错误。

【问题讨论】:

    标签: django-oscar


    【解决方案1】:

    这是一个相当广泛的问题,而且由于编写一个问题需要时间,所以不可能得到一个全面的答案,而是几个 cmets(并有助于解决分叉错误):

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

    2. 您需要分叉哪些应用程序实际上取决于您的用例以及您需要覆盖 Oscar 的核心功能中的哪些内容。您需要首先充分了解 Oscar 的应用程序提供的开箱即用功能,以确定您是否需要覆盖其功能。在一般情况下,实际上不可能回答您需要分叉哪些应用程序。 Oscar 旨在为您提供尽可能多的灵活性来覆盖其功能 - 知道何时/何地执行此操作确实需要先熟悉其功能。

    3. oscar_fork_app 的第一个参数是 Django AppConfiglabel,而不是您要使用的模块名称。这就是为什么您在尝试分叉仪表板应用程序时遇到错误的原因。正确的命令是manage.py oscar_fork_app catalogue_dashboard <destination_path>。这在文档中不是很清楚,并且有一个issue to fix thiscatalogue_dashboarddefined here

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

    【讨论】:

    • 我现在正在阅读 Oscar 源代码,以便“很好地了解 Oscar 的应用程序提供的开箱即用功能”,因为我发现的文档并没有说太多有用或有见地的内容。您能推荐一种更快的学习方法吗?
    • 如上图所示,我使用 oscar_fork_app 没有出现应用程序目录、仪表板、购物篮、订单和合作伙伴的错误消息。这不正确吗?
    • 致您的第一条评论——在我看来,最有效的学习方法是查看 Oscar 的源代码。对于第二条评论,这些应用程序的分叉有效,因为您提供的参数与应用程序名称相同。但是,dashboard.catalogue 不是,这就是仪表板子应用分叉失败的原因。
    • 我会对此感兴趣的任何反馈:mslinn.com/blog/2021/02/24/django-oscar-app-like.html
    猜你喜欢
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2014-05-11
    • 2015-02-19
    • 1970-01-01
    相关资源
    最近更新 更多