跳转到主要内容

bda.plone.shop的订单持久化和后台UI

项目描述

https://img.shields.io/badge/code%20style-black-000000.svg https://travis-ci.org/bluedynamics/bda.plone.orders.svg?branch=master

安装

此软件包是堆栈的一部分。请参阅https://github.com/bluedynamics/bda.plone.shop以获取安装说明。

集成说明

  • 订单操作通过CSS中的背景图像完成,因此如果您有自己的非Sunburst主题,您将需要添加Sunburst的base.css中的“icons.on”部分。

定制订单

如果您已将自定义字段添加到结账(请参阅bda.plone.checkout),那么您很可能希望将它们添加到订单电子邮件、订单摘要或订单导出中。

请首先遵循bda.plone.shop Readme中的《定制商店》中的说明来设置补丁基础设施。

之后,您可以开始定制订单流程

def patchShop():
    patchMailTemplates()
    patchOrderExport()

邮件通知

订单相关的通知是通过发送包含文本和HTML版本的通告有效负载的多部分邮件完成的。

在自定义邮件通知时,需要自定义文本和HTML模板。

警告

自 bda.plone.orders 1.0a1 版本起,bda.plone.orders.MailNotify.send 函数的签名已更改。现在它接受 subjectreceivertext 作为位置参数,以及可选的 html 参数。

HTML 模板

默认的 HTML 模板位于 bda.plone.orders:mailtemplates。要自定义它们,将整个模板文件夹复制到您的集成包中,并像这样修补 bda.plone.orders.mailnotify.MAIL_TEMPLATES_DIRECTORY

from bda.plone.orders import mailnotify
import os

mailnotify.MAIL_TEMPLATES_DIRECTORY = os.path.join(
    os.path.dirname(__file__),
    'mailtemplates'
)

文本模板

将您需要定制的消息从 bda.plone.orders.mailtemplates 复制过来,并根据您的需求更改文本。有两个字典包含所有字符串,分别是 ORDER_TEMPLATESRESERVATION_TEMPLATES。这是一个嵌套字典。第一层是语言代码,第二层是 subjectbodydelivery_address。更改它们,例如如下所示

from bda.plone.orders.mailtemplates import ORDER_TEMPLATES
from bda.plone.orders.mailtemplates import RESERVATION_TEMPLATES

ORDER_TEMPLATES['en']['body'] = """
This is my heavily customized confirmation mail."""

RESERVATION_TEMPLATES['de']['body'] = "Ihre Reservierung ist da!"

当更新 bda.plone.order 到新版本时,请确保与原始模板保持同步,并检查所有库存变量(如 global_text 或在版本 0.4 中添加的 @@showorder 链接)是否都存在。

自定义通知机制

或者,您可以添加/替换通知方法,并实现自己非常定制的版本。为此,提供两个类似于 bda.plone.orders.mailnotify.notify_checkout_success 和 bda.plone.orders.mailnotify.notify_payment_success 的函数。然后

from bda.plone.orders.mailnotify import NOTIFICATIONS

# register as additional action
NOTIFICATIONS['checkout_success'].append(my_notify_checkout_success)
NOTIFICATIONS['payment_success'].append(my_notify_payment_success)

# OR
# register as replacement:
NOTIFICATIONS['checkout_success'] = [my_notify_checkout_success]
NOTIFICATIONS['payment_success'] = [my_notify_payment_success]

订单导出

要使新字段在导出中显示,只需将其添加到列表 ORDER_EXPORT_ATTRS 中。

在此示例中,我们在公司名称后添加了公司 uid,以便自定义 bda.plone.checkout

from bda.plone.orders.browser.export import ORDER_EXPORT_ATTRS

def patchOrderExport():
    idx = ORDER_EXPORT_ATTRS.index('personal_data.company')
    ORDER_EXPORT_ATTRS.insert(idx+1, 'personal_data.uid')

订单详情

要显示新字段的订单详情视图中的数据,请使用 z3c.jbot 或通过为您策略包的 browserlayer 或 themelayer 注册浏览器页面来自定义 bda/plone/orders/browser/templates/order.pt

<browser:page
  for="zope.component.interfaces.ISite"
  name="order"
  template="my-order.pt"
  class="bda.plone.orders.browser.order.OrderView"
  permission="bda.plone.orders.ViewOrders"
  layer="my.package.interfaces.IMyBrowserLayer"/>

警告

从 bda.plone.orders 1.0a1 版本开始,模板位置从浏览器包更改为浏览器包中的模板文件夹。请根据您在集成包中通过 z3c.jbot 自定义模板的位置进行调整。

发票视图

发票模板是 bda/plone/orders/browser/templates/invoice.pt。它可以通过 z3c.jbot 或通过为您策略包的 browserlayer 或 themelayer 注册浏览器页面来自定义。

<browser:page
  for="zope.component.interfaces.ISite"
  name="invoice"
  template="my-invoice.pt"
  class="bda.plone.orders.browser.invoice.InvoiceView"
  permission="bda.plone.orders.ViewOrders"
  layer="my.package.interfaces.IMyBrowserLayer" />

与 souper.plone 的限制

  • 请确保您不要将订单或预订从门户网站根目录中移动出去。这会导致意外的行为和错误。

供应商支持

bda.plone.orders 支持供应商的概念。供应商能够管理自己的产品,并查看与这些产品相关的订单和预订。

供应商有一个自己的区域,这是门户网站中的某个位置的容器。要启用容器的供应商支持,导航到该容器,并对其应用“启用供应商区域”操作。然后导航到该容器的本地角色管理视图,并将 Vendor 角色授予所需用户。

被授予 Vendor 角色的用户现在能够在此容器的上下文中查看与订单相关的视图并执行与订单相关的操作。

权限

通常,定制商店部署可能根据其用例配置权限和角色设置。

权限 bda.plone.orders.ViewOrderDirectlybda.plone.orders.ViewOwnOrders 被授予默认的 Plone 角色,而不是客户角色。客户角色应作为本地角色上下文相关地授予。《@@orders》、《@@showorder》 和 《@@showinvoice》 视图应在 ISite 根上可调用。因此,可能的客户可能是网站根目录上的非客户。

以下为权限及其目的的列表

bda.plone.orders.ViewOrderDirectly

授予查看与单个订单数据相关的视图的访问权限,这些视图受 ordernumber 和相关电子邮件地址的保护。

目前订单详情和发票已作为此类视图实现。在成功结账后,这些视图的链接将通过订单确认邮件发送。

默认情况下,此权限设置为以下角色

  • 管理员

  • 网站管理员

  • 已认证用户

为了默认情况下向所有访客公开这些视图,请通过您的集成包的通用设置的 rolemap.xml 添加 匿名 角色。

bda.plone.orders.ViewOwnOrders

授予查看当前认证用户制作的订单的权限。

默认情况下,此权限设置为以下角色

  • 管理员

  • 网站管理员

  • 已认证用户

要自定义此权限,根据需要编辑您的集成包中的 rolemap.xml

bda.plone.orders.ViewOrders

授予查看给定上下文或全局中所有订单的权限。

默认情况下,此权限设置为以下角色

  • 管理员

  • 网站管理员

  • 供应商

要自定义此权限,根据需要编辑您的集成包中的 rolemap.xml

bda.plone.orders.ModifyOrders

授予用户修改订单的权限。这包括对订单和预订执行状态转换以及修改预订注释。

默认情况下,此权限设置为以下角色

  • 管理员

  • 网站管理员

  • 供应商

要自定义此权限,根据需要编辑您的集成包中的 rolemap.xml

bda.plone.orders.ExportOrders

授予用户以 CSV 格式导出订单的权限。

默认情况下,此权限设置为以下角色

  • 管理员

  • 网站管理员

  • 供应商

要自定义此权限,根据需要编辑您的集成包中的 rolemap.xml

bda.plone.orders.ManageTemplates

授予用户管理现有订单的通知邮件模板的权限。

默认情况下,此权限设置为以下角色

  • 管理员

  • 网站管理员

  • 供应商

要自定义此权限,根据需要编辑您的集成包中的 rolemap.xml

bda.plone.orders.DelegateCustomerRole

通过本地角色视图将 客户 角色授予其他用户。

默认情况下,此权限设置为以下角色

  • 管理员

  • 网站管理员

要自定义此权限,根据需要编辑您的集成包中的 rolemap.xml

bda.plone.orders.DelegateVendorRole

授予用户通过本地角色视图将 供应商 角色授予其他用户的权限。

默认情况下,此权限未设置为任何角色。

要自定义此权限,根据需要编辑您的集成包中的 rolemap.xml

如何允许匿名用户购买商品

在您的通用设置的配置文件中,将以下内容添加到 rolemap.xml

<!-- Allow Anonymous to buy items -->
<permission name="bda.plone.orders: View Order Directly" acquire="True">
  <role name="Manager" />
  <role name="Site Administrator" />
  <role name="Authenticated" />
  <role name="Anonymous"/>
</permission>
<permission name="bda.plone.shop: View Buyable Info" acquire="True">
  <role name="Manager" />
  <role name="Site Administrator" />
  <role name="Reviewer" />
  <role name="Editor" />
  <role name="Customer" />
  <role name="Anonymous"/>
</permission>
<permission name="bda.plone.shop: Modify Cart" acquire="True">
  <role name="Manager" />
  <role name="Site Administrator" />
  <role name="Customer" />
  <role name="Anonymous"/>
</permission>
<permission name="bda.plone.checkout: Perform Checkout" acquire="True">
  <role name="Manager" />
  <role name="Site Administrator" />
  <role name="Customer" />
  <role name="Anonymous"/>
</permission>

REST-API

有一个 REST API 可用。它是基于 plone.rest 端点的。

REST API 仍在开发中,并将随着时间的推移而增强。

我们提供了以下端点

GET @shop-order/${ORDER-UID}

具有给定订单-uid 的订单数据。它包括预订和预订数据。

创建翻译

$ cd src/bda/plone/orders/
$ ./i18n.sh

待办事项

  • 修复预订视图过滤器。

  • 将购物车和项目折扣规则存储在结账适配器中,而不是在订单中实际存储折扣值,以确保在保持发票和订单摘要视图正常的同时可靠地修改订单。

  • 将 salaried 重命名为 paid。

  • 在订单视图操作中添加图标。

  • 在联系人视图操作中添加图标。

  • 彻底翻新订单视图。显示折扣后的商品价格等。

  • 如果我们在结账适配器中想要显示相关的文本,请考虑在预订数据中添加通知文本。

  • 在发票中添加供应商支持。

  • 正确实现最初不可计费的预订。向 IStockBehavior 添加一个标志 charge_if_backorder,以便我们可以在每个可购买商品上控制,并为所有可购买商品设置一个控制面板设置,其默认值为此值。实现 UI 以携带未计费的后订货。采用订单和发票视图(问题 #45)。

  • 将文本通知邮件生成采用 mako 模板,并将现有的文本邮件生成移动到旧模块,使用标志在旧样式和新样式文本生成之间切换。作为后备,添加将 HTML 邮件转换为纯文本版本的转换。(https://github.com/collective/Products.EasyNewsletter/blob/master/Products/EasyNewsletter/utils/mail.py#L112

  • 在谱系子站点中,应仅列出该路径中的订单。

  • 在邮件通知中考虑供应商UID和预订状态。

  • 添加 is_customer 工具。

  • 改进客户词汇工具,使其更适用于CPU。

  • 在订单视图中搜索文本时需要考虑供应商和客户筛选。

  • 仅对供应商和管理员显示导出订单链接。

  • 仅内部使用Unicode。

  • IPloneSiteRoot 的 IUUID 适配器移至 bda.plone.cart,这是商店的中心包。

  • 在订单视图和订单导出中计算针对特定供应商订单的 cart_discount_netcart_discount_vat 值。

  • 如果全局更改订单视图中的所有预订状态,则显示警告弹出窗口。

  • 将客户角色移至 bda.plone.cart

  • 修复 bda.plone.payment.cash.__init__ 中的依赖关系,它依赖于 bda.plone.orders

  • 将一些接口移至 bda.plone.cart 以避免循环依赖。

贡献者

  • Robert Niederreiter (作者)

  • Johannes Raggam

  • Peter Holzer

  • Harald Frießnegger

  • Ezra Holder

  • Benjamin Stefaner (benniboy)

  • Jens Klein

使用的图标是 FamFamFam的Silk-Icons,根据CC-BY 2.5许可证。变更日志 =========

2.0b2 (2024-04-17)

  • 添加缺少的编译资源。[petschki]

2.0b1 (2024-04-17)

  • 引入基类,以便更灵活地进行导出子类化。[jensens]

  • 使用 csv23 进行 py2/3 csv 导出。使导出字符集可配置。导出时不要将数字的点转换为逗号。[agitator]

  • 将联系信息添加到导出。[jensens, agitator]

  • 将联系uid存储回订单作为attr contact_uid。[jensens, agitator]

  • 可定制的联系查找查询。[jensens]

  • 为 de-ch 添加 mailtemplate lang 映射。[agitator]

  • 修复:UNSET 电子邮件地址导致 checkout 破坏。[jensens, faro]

  • 在 order.pt 上进行更稳健的 dict-get - 不需要大量字段。[jensens]

  • 不再支持 z3c.autoinclude。[jensens]

  • 使发票字段可选。[agitator]

  • 添加新的订单管理器,具有查询和删除订单的能力。[jensens]

  • common.py 清理到 datamanagers 目录中,并放置弃用消息。[jensens]

  • 更新导入以反映最后购物车/运输更改。[jensens]

  • 启动 rest 端点,并在 @shop-order/ORDER_UID 下添加第一个订单端点。[jensens]

  • 在接口中定义 OrderState、OrderData 和 BookingData 的功能,并让实现者将类添加到类中。[jensens]

  • common.py 重构到不同的文件中,以便更容易开发。[jensens]

  • 删除 Plone 4 特定的 ContentViewBase。[jensens]

  • Python 2/3 兼容性。[agitator]

  • 更新版本和分类器 - 2.x 旨在针对没有 Archetypes 的 Plone 5.1/5.2。[agitator]

1.0a1 (未发布)

  • rolmap.xml 中删除 bda.plone.orders: View Orders 权限的 Authenticated 角色,并添加 Vendor。我们真的不希望所有经过身份验证的用户都能看到所有订单。[rnix]

  • 将页面模板移至专用文件夹。[rnix]

  • 将与发票相关的视图从 views.py 移至 invoice.py。[rnix]

  • 将与订单相关的视图从 views.py 移至 order.py。[rnix]

  • 将与订单相关的视图从 views.py 移至 orders.py。[rnix]

  • 将通用视图从 views.py 移至 common.py。[rnix]

  • Ajaxify 取消预订。[rnix]

  • 修复 plone 5 中的评论编辑。[rnix]

  • 仅当预订未被取消时显示取消预订操作。[rnix]

  • 修复订单详情中的错误,如果产品不再存在(#20)。[rnix]

  • 默认情况下不要排除已预订的预订项从计费中。这解决了由https://github.com/bluedynamics/bda.plone.orders/pull/39引入的不一致性,并在https://github.com/bluedynamics/bda.plone.orders/issues/45中解决。[rnix]

  • 引入ProtectedOrderDataView并将其用作DirectOrderViewDirectInvoiceView的基类。[rnix]

  • 添加发票视图。[rnix]

  • bda.plone.orders.browser.contacts中删除重复的Translate类。[rnix]

  • OrdersContentView重命名为ContentViewBase。引入视图配置属性do_disable_borderdo_disable_left_columndo_disable_right_column。[rnix]

  • 为处理单个订单数据的视图引入OrderDataView基类。[rnix]

  • 为与订单相关的通知邮件添加HTML支持。[rnix]

  • 更改bda.plone.orders.MailNotify.send的签名。现在接受subjectreceivertext作为位置参数,以及可选的html参数。[rnix]

  • bda.plone.common.payment_successbda.plone.common.payment_failed事件订阅者中处理bda.plone.stripe付款的事务id和支付状态。[rnix]

  • @@orders:在更新表格后重新绑定通知绑定器。[thet]

  • @@contacts视图中搜索非ASCII字符时不要失败。[thet]

  • 在Plone 5上显示与订单相关的内容视图的工具栏内容。[rnix]

  • 修复导出订单表单。[rnix]

  • 修复在未应用可购买库存行为时导出。[rnix]

  • 在德语中使用MwSt.而不是Ust.。[agitator]

  • 将项目编号添加到订单邮件中。[agitator]

  • @@exportorders_contextual创建安全的文件名。[thet]

  • 将当前上下文作为OrdersTable和BookingsTable中的ajaxurl的基础URL。这样,就会尊重当前子站点的设置,例如在渲染状态转换下拉菜单时,这又会发送邮件,而那些邮件需要正确的发件人。[thet]

  • 根据转换更改重新实现update_item_stock,文档在transitions.py表。[thet]

  • 在调用@@order视图时未提供uid时,重定向到当前上下文并显示错误消息而不是失败。[thet]

  • @@bookings视图中,默认按可购买项分组。[thet]

  • @@bookings视图中,添加buyable_comment列,并将名字、姓氏和地址信息合并以节省空间。[thet]

  • 不要将预留预订项包括在OrderData支付信息(净额、增值税)中,并且在计算订单的工资状态时不计算它们。[thet]

  • 在邮件模板中,将预留项目与正常订购项目分开列出。[thet]

  • 修复在@@orders视图中修改buyable_comment时未保存的问题。[thet]

  • 在邮件通知中翻译国家代码。[thet]

  • 在邮件通知中,如果没有提供交付地址模板,不要尝试包含交付地址。在某些上下文中,不需要交付地址,例如预订取消。[thet]

  • 几乎到处都是Unicode。修复了一些Unicode Decode Error。[thet]

  • 当状态从“预留”变为时添加过渡动作。向客户和管理员发送邮件通知,该商品已可用并被订购。[thet]

  • 在订单的do_transition_for中,对每个预订设置状态,而不是直接在订单上设置。这样,每个预订设置器都会被调用,例如,更改库存项目、设置整体订单状态等。[thet]

  • 当从@@orders@@bookings视图取消整个订单或单个预订时,发送邮件。这是通过将必要的逻辑移动到bda.plone.orders.transitions.do_transition_for来完成的。[thet]

  • 将供应商、客户、状态和薪金状态的过滤器添加到@@bookings视图。[pcdummy]

  • 彻底改进订单和预订状态以及薪金过渡。[rnix]

  • 将订单状态和薪金的过滤器添加到@@orders视图。[pcdummy]

  • 引入bda.plone.orders.mailnotify.BOOKING_CANCELLED_TITLE_ATTRIBUTE,该属性用于查找预订取消通知的标题属性。[rnix]

  • 修复订单表中电子邮件地址的排序。[rnix]

  • 重新添加订单预订的状态和薪金计算值。这对于确保排序工作正常是必需的。[rnix]

  • 将用户过滤器显示为“Lastname, Firstname (Username) - Email”,而不是“Username (Firstname, Lastname)”,按姓氏排序用户。[pcdummy]

  • Plone 5更新。[agitator]

0.9.dev

  • TableData.__call__中设置JSON响应头。[rnix]

  • 修复notify_customers视图,使其在任何上下文中都能工作。这允许在调用上下文不是ISite时,在@@orders视图中发送邮件。[thet]

  • 修复mailnotify模块中的缩进方法,以处理非ASCII数据。[thet]

  • 使整个网站的订单视图与lineage良好协作。[jensens]

  • 预订/取消预订现在会增加/减少库存。此外,API的一些更改以实现一致性。[jensens]

  • 取消预订现在使用过渡API。[jensens]

  • @@contactsdata需要JSON响应头。[jensens]

  • @@bookingsdata需要JSON响应头。[thet]

  • JSHint JavaScript资源。[thet]

  • 修复:提交结账时的#24错误。[jensens]

  • 功能:预订评论可编辑。[jensens]

  • 功能:从订单中删除单个预订。[jensens]

  • 将与导出相关的代码移动到自己的文件中,以减少长度并提高可读性。[jensens]

  • 修复:在增值税为零的列表中计算价格失败。[jensens]

  • 添加两个表格视图,在其中显示预订,并可按购买者的电子邮件地址或可购买的uid进行分组。这两个视图都支持日期范围过滤和文本索引支持。《预订》视图在门户根目录上调用,而《预订上下文中的预订》返回在调用的上下文中对应的全部预订数据。[benniboy]

  • 主要清理 - 集成代码分析,travis ci,并将IBuyable从bda.plone.shop移动到这个包中,以避免循环依赖。[benniboy]

  • 不依赖于已实现的接口ITrading和IShippingItem。见https://github.com/bluedynamics/bda.plone.shop/issues/31 [jensens]

  • 修复bda.plone.orders.common.OrderCheckoutAdapter.create_booking中的项目计数验证。[rnix]

  • 在订单邮件中添加项目价格。[agitator]

  • 在可用的邮件模板属性中添加已翻译的问候语。[agitator]

0.8

  • @@order视图中,显示每个预订的状态和薪金列,对于订单通知电子邮件,指示何时预订。[thet]

0.7

  • buyable_availablebuyable_overbook导出属性添加到CSV导出中。[thet]

  • 对于CSV编写器使用csv.QUOTE_MINIMAL。[rnix]

  • DynamicMailTemplate.normalized中解码字符串到unicode。[rnix]

  • acquire_vendor_or_shop_root 中,获取直到 IPloneSiteRoot 而不是 ISitelineage.subsite 也可以与 ISite 接口一起工作,但如果我们真的想在没有找到提供 IVendor 的对象时使用 plone 根作为后备供应商,那么这一点非常重要。[rnix]

  • 使用 bda.plone.cart.get_object_by_uid 代替 plone.app.uuid.utils.uuidToObject,它执行相同的操作,但可以处理 uuid.UUID 和字符串对象。[thet]

0.6

  • 引入 ViewOwnOrders (bda.plone.orders: View Own Orders) 来保护 @@myorders 和子视图,并使用专用权限。[thet]

0.5

  • 添加 bda.plone.orders.ExportOrders 权限,并将与导出相关的视图绑定到它。[rnix]

  • 修复 PaymentData.description 的 Unicode 错误。[rnix]

  • 添加升级步骤以重置所有 soup 记录属性存储。[rnix]

  • 包含来自 http://barcode-coder.comjquery-barcode - 尚未交付给客户端或使用。[rnix]

  • 包含来自 http://davidshimjs.github.io/qrcodejs/qrcode.js,并在订单视图中渲染订单 uuid 的二维码。[rnix]

  • 将 JavaScript 和 CSS 移动到资源文件夹。[rnix]

  • 添加 bda.plone.orders.interfaces.ITrading 并在创建订单预订时考虑合同。[rnix]

  • 在视图类中直接翻译 customers_notified_success Ajax 消息。[rnix]

  • 为订单预订添加 shippable 标志并实现升级步骤。[rnix]

  • 删除 bda.plone.orders.common.SKIP_PAYMENT_IF_RESERVED。现在在 bda.plone.shop 控制面板设置中存在等效项(注意 - 默认值已更改为 False)。[rnix]

  • 始终检查订单中的预订,无论邮件是在结账后还是付款后发送,都用于选择使用的邮件模板。[rnix]

  • bda.plone.orders.mailnotify.notify_reservation_if_payment_skipped 重命名为 bda.plone.orders.mailnotify.notify_checkout_success,并使用 bda.plone.checkout.interfaces.ICheckoutSettings 来检查是否应在结账完成后发送通知邮件。[rnix]

  • bda.plone.orders.common.ICheckoutAdapter 中采用 bda.plone.checkout 接口更改。[rnix]

  • @@reservation_done 视图重命名为 @@order_done,并按订单状态处理显示的标题和文本。[rnix]

  • bda.plone.orders.common.PaymentData.currency 中使用 OrderData.currency 而不是 ICartDataProvider.currency。[rnix]

  • bda.plone.orders.mailnotify.create_order_total 重命名为 bda.plone.orders.mailnotify.create_order_summary。[rnix]

  • 在订单通知邮件模板中将 order_total 重命名为 order_summary注意 - 更新您的模板自定义项 [rnix]

  • currency 属性添加到 OrderData 对象。[rnix]

  • 在订单上存储 payment_methodpayment_label 并提供升级步骤。[rnix]

  • 实现通知邮件的摘要列表。[rnix]

  • IPaymentText.payment_text 从属性更改为函数,并接受支付方法 ID 作为参数。[rnix]

  • 添加 @@exportorders_contextual 视图以导出上下文及其以下的所有订单。[thet]

  • 采用 bda.plone.shipping >= 0.4 的发货处理。[rnix]

  • 引入 INotificationSettings,它提供 admin_nameadmin_email 属性。使用这些设置来发送通知。[fRiSi, rnix]

0.4

  • 将浏览器视图和适配器注册从 IPloneSiteRoot 更改为 zope.component.interfaces.ISite。这是为了与 Lineage 兼容。[thet]

  • @@showorder视图集成到匿名用户中,通过提供ordernumber和email作为凭据来访问特定订单的信息。[thet]

  • 修复基于AT的可购买物品的邮件发送问题。[rnix]

  • 禁用订单表的Diazo主题。[ezvirtual, rnix]

  • PaymentData适配器绑定到接口而不是内容类。[ezvirtual]

  • 将折扣信息集成到订单和预订中。[rnix]

  • 将状态、工资和tid移动到预订中。[thet]

  • 订单可以具有processing状态。[rnix]

  • 添加bda.plone.orders.permissions并调用setDefaultRoles以设置包含的权限。[rnix]

  • 此外,为Products.CMFPlone.interfaces.IPloneSiteRoot注册bda.plone.orders.common.OrderCheckoutAdapter。[rnix]

  • @@exportorders中限制订单和预订,使其仅限于用户允许查看的内容。[thet]

  • 将预订URL包含在@@exportorders中。标题可能很容易产生歧义。[thet]

  • 引入用于结账后邮件通知的bda.plone.orders.interfaces.IItemNotificationTextbda.plone.orders.interfaces.IGlobalNotificationTextbda.plone.orders.interfaces.IPaymentText。[rnix, jensens]

  • 如果购物车cookie中的uid对应的商品不再存在,则OrderCheckoutAdapter不再失败。[rnix]

  • OrderCheckoutAdapter中实现专门的create_booking函数,以便更好地进行定制。[rnix]

  • 通过Vendor角色和适当的权限实现多客户端功能。将预订分配给供应商。允许通过IVendor接口定义供应商区域。[thet, rnix]

  • 引入Customer角色。[thet, rnix]

  • @@order视图中渲染指向预订项目的链接。[thet]

  • 修复BrowserLayer的顺序优先级。[thet]

  • create_mail_body中复制所有订单数据到模板属性,以支持在邮件模板中直接支持自定义(字符串)字段。[fRiSi, rnix]

  • bda.plone.orders.common.OrderData现在接受uidorder作为关键字参数,并在__init__中接受可选的vendor_uid。[rnix]

0.3

  • bda.plone.payment.six_payment.ISixPaymentData已被删除。请改用bda.plone.payment.interfaces.IPaymentData。[rnix]

0.2

  • 根据需要考虑购物车商品库存。[rnix]

  • 使用Mailhost发送邮件(参见文档)以支持类似Products.PrintingMailHost的产品设置。[fRiSi]

0.1

  • 初始工作。[rnix]

许可证

版权(c)2012-2019,BlueDynamics Alliance,奥地利。保留所有权利。

在满足以下条件的情况下,允许重新分发和使用源代码和二进制形式,无论是否修改:

  • 源代码重新分发必须保留上述版权声明、本许可证列表和以下免责声明。

  • 二进制形式的重新分发必须在文档和/或其他与分发提供的材料中复制上述版权声明、本许可证列表和以下免责声明。

  • 未经事先书面许可,不得使用BlueDynamics Alliance的名称或其贡献者的名称来认可或推广源自本软件的产品。

本软件由BlueDynamics Alliance提供,按“原样”提供,并明确或隐含地放弃任何保证,包括但不限于适销性和针对特定目的的适用性隐含保证。在任何情况下,BlueDynamics Alliance均不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论损害是由何种原因引起的,无论基于何种责任理论,包括合同、严格责任或侵权(包括疏忽或不作为)责任,即使BlueDynamics Alliance已被告知此类损害的可能性。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

bda.plone.orders-2.0b2.tar.gz (159.9 kB 查看哈希值)

上传时间 源代码

构建分发

bda.plone.orders-2.0b2-py3-none-any.whl (199.4 kB 查看哈希值)

上传时间 Python 3