跳转到主要内容

结账

项目描述

提供的结账流程和表单。

安装

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

自定义结账表单

要自定义结账表单,您通常从具有自定义provider_registry的自己的表单开始。

您将使用您满意的FieldsProvider对象,并替换需要适配的对象。

在此示例中,我们将向PersonalData提供者添加一个额外的字段uid,并重用其他字段

from zope.i18nmessageid import MessageFactory
from bda.plone.checkout.browser import form as coform


_ = MessageFactory('my.package')
my_provider_registry = coform.ProviderRegistry()


class MyPersonalData(coform.PersonalData):
    fields_template = 'my.package.shop:forms/personal_data.yaml'
    message_factory = _


my_provider_registry.add(coform.CartSummary)
my_provider_registry.add(MyPersonalData)
my_provider_registry.add(coform.BillingAddress)
my_provider_registry.add(coform.DeliveryAddress)
my_provider_registry.add(coform.ShippingSelection)
my_provider_registry.add(coform.PaymentSelection)
my_provider_registry.add(coform.OrderComment)
my_provider_registry.add(coform.AcceptTermsAndConditions)


class MyCheckoutForm(coform.CheckoutForm):
    """Customized checkout form to add UID field for company.
    """
    provider_registry = my_provider_registry

bda/plone/checkout/browser/forms/personal_data.yaml复制到my/package/shop/forms/personal_data.yaml并做出您的更改。

此软件包使用另一个表单小部件库 (YAFOWIL) 来渲染结账表单。

我们将在“个人信息”部分的末尾添加一个新字段uid

- company:
    factory: "#field:text"
    value: context.get_value
    props:
        label: i18n:label_company:Company
        display_proxy: True
    mode: expr:context.mode
- uid:
    factory: "#field:text"
    value: context.get_value
    props:
        label: i18n:label_companyuid:UID Number
        display_proxy: True
    mode: expr:context.mode

(注意:在yaml文件中无法混合i18n域,因此最好将您的翻译添加到包的本地化目录中的单独的bda.plone.checkout.po文件中)

现在通过覆盖浏览器页面为您的browserlayer或skinlayer注册您自定义的表单

<browser:page
  for="*"
  name="checkoutform"
  class=".checkout.MyCheckoutForm"
  permission="zope2.View"
  layer=".browser.interfaces.IThemeSpecific" />

权限

bda.plone.checkout.PerformCheckout

此权限控制用户是否可以实际执行结账过程。与结账相关的视图绑定到此权限,因此,没有授予此权限的访客将被重定向到登录/注册表单。

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

  • 管理员

  • 网站管理员

  • 客户

为了启用非客户或匿名用户执行结账,根据需要编辑集成包中的rolemap.xml

创建翻译

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

贡献者

  • Robert Niederreiter(作者)

  • Peter Holzer

  • Harald Friessnegger

更改日志

2.0b1(2024-04-17)

  • 重写CSS资源为SCSS [petschki]

  • 引入checkout_button_factoriesconfirmation_button_factories。 [rnix, jensens]

  • 在结账表单中考虑IPayment.clear_session。 [rnix]

  • 结账结束时通过表单提交来激活plone.protect CSRF验证器。 [jensens]

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

  • 购物车上更多CSS类。 [jensens]

  • 反映购物车/运输的最新更改。 [jensens]

  • 代码风格黑色。isort. [jensens]

  • 更新版本和分类器 - 2.x针对Plone 5.1/5.2,不使用Archetypes [agitator]

1.0a1(未发布)

  • 使用ENABLED_COUNTRIES的排序顺序 [agitator]

  • 用untittest替换unittest2 [llisa123]

  • 在购物车概览中显示购物车项目折扣。 [rnix]

  • 引入bda.plone.checkout: Perform Checkout权限并将与结账相关的视图绑定到它。 [rnix]

  • 为Plone 5添加data-context-url,以进行合理的cartDatavalidate_cart_item调用。 [agitator]

  • Plone 5更新。 [rnix, agitator]

0.5

  • JSHint JavaScript。 [thet]

0.4

  • 始终为购物车概览提供运输标记。显示由购物车JS控制。 [rnix]

  • ShippingSelection字段提供者上实现skip属性,如果没有购物车项目是可运输的,则跳过运输选择。 [rnix]

  • bda.plone.checkout.browser.form.CheckoutForm中用bda.plone.checkout.interfaces.ICheckoutSettings适配器代替self来处理skip_paymentskip_payment_redirect_url。 [rnix]

  • bda.plone.checkout.interfaces.ICheckoutAdapter接口中删除skip_paymentskip_payment_redirect_url属性。它们现在作为接受数据uid的函数存在于bda.plone.checkout.interfaces.ICheckoutSettings中。 [rnix]

  • 引入bda.plone.checkout.interfaces.ICheckoutSettings接口。 [rnix]

  • PaymentSelection字段提供者上实现skip属性,如果总购物车价格为0,则跳过支付选择。 [rnix]

  • 添加bda.plone.checkout.interfaces.IFieldsProvider.skip属性。 [rnix]

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

  • 在结账表单中考虑来自cookie的运输方法。 [rnix]

  • 不要依赖于acquisition和基本链接来在导航根中显示<terms and conditions>。(path/to/navroot/<ID>)

    <ID>可通过修补bda.plone.checkout.browser.form.TERMS_AND_CONDITONS_ID进行配置 [fRiSi]

0.3

  • 注册pycountry翻译并使用它们。 [rnix]

  • 采用结账摘要以考虑货币和折扣。 [rnix]

  • 结账表单中“接受条款”的标题。这使该按钮在视觉上与其他按钮区分开来。[thet]

  • 使用ICheckoutFormPresets适配器预填充结账表单的默认值。[thet]

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

  • 引入bda.plone.checkout.ICheckoutFormPresets。[rnix]

0.2

  • bda.plone.checkout.ICheckoutAdapter上引入skip_paymentskip_payment_redirect_url,并在bda.plone.checkout.browser.form.CheckoutForm中考虑。[rnix]

0.1

  • 初步工作 [rnix]

许可证

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

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

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

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

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

本软件由BlueDynamics Alliance“按原样”提供,并且任何明确或隐含的保证,包括但不限于适销性和针对特定目的的适用性保证均被排除。在任何情况下,BlueDynamics Alliance均不对因使用本软件而产生的任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,即使已被告知此类损害的可能性,也不受责任。

项目详情


下载文件

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

源代码分发

bda.plone.checkout-2.0b1.tar.gz (35.7 kB 查看哈希)

上传时间 源代码

构建分发

bda.plone.checkout-2.0b1-py3-none-any.whl (48.9 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面