跳转到主要内容

基于bda.plone.shop的产品商店扩展

项目描述

https://travis-ci.org/bluedynamics/bda.plone.productshop.svg?branch=master https://coveralls.io/repos/bluedynamics/bda.plone.productshop/badge.png

为bda.plone.shop提供的产品商店扩展。

概述

此软件包包含用于构建典型产品商店的dexterity内容类型及其对应视图。

关于包含类型的简要描述

产品

可以添加到文件夹中的产品。产品包括默认元数据、图片、详细描述、数据表和相关项目。

产品组

产品组是一组类似于产品的对象集合,并应用于多个方面。包含的项目类型为“变体”。此外,产品组还提供与“产品”相同的字段。可以在产品组上定义新创建的变体的默认方面。

变体

变体是一种 产品,应用了多个方面,如重量、尺寸等,并包含在 产品组 中。不同的方面可以在创建后通过对象操作显式启用和禁用。默认启用的方面是从父产品组读取的。

关于包含视图的简要描述

产品图块

产品图块视图可以应用于网站根目录和文件夹。该视图显示由包含的文件夹和可购买项目组成的图块网格。如果图块上下文是文件夹,则标题和描述来自文件夹,预览图像从包含的可购买项目随机选择。如果图块上下文是可购买项目,则标题、描述和预览图像来自该项目,在鼠标悬停时,将在该项目的覆盖层中渲染可购买控件。渲染的网格列数可以在控制面板中全局定义,或者,如果文件夹直接应用了 IProductTilesViewSettingsBehavior(仅限 plone.app.contenttypes,不支持 Archetypes 文件夹)。

产品列表

产品列表可以应用于文件夹和产品组。当应用于文件夹时,它列出包含产品的第一级和产品组。当应用于产品组时,它列出包含的变体和一个顶部过滤器,以限制通过变体方面进行列表。

产品视图

产品视图可以应用于产品、产品组和变体。当应用于产品时,它显示产品数据和由 bda.plone.shop 提供的可购买控件。当应用于变体时,除了显示方面过滤器外,还可以用于在包含的产品组中快速导航到可用变体。当应用于产品组时,第一个包含的变体将按上述方式显示。

安装

独立安装

安装系统依赖项

sudo apt-get install python-virtualenv

安装实例

virtualenv --no-site-packages vpython
./vpython/bin/python bootstrap.py
./bin/buildout

作为产品安装

bda.plone.productshop 添加到 buildout.cfg 中的实例 eggs 或使您的集成包依赖于它。

在 plone 控制面板中作为插件安装或通过集成包中的通用设置依赖项安装。

提供额外的变体方面

如果所需的变体方面是通用的,请从 https://github.com/bluedynamics/bda.plone.productshop 分支此项目,直接在那里添加它,并创建一个 pull request。

以下步骤是添加变体方面的必要步骤

创建一个类似于 bda.plone.productshop.behaviors 中的变体行为

@provider(IFormFieldProvider)
class IDemandBehavior(IVariantAspect):
    """Demand variant behavior.
    """
    model.fieldset(
        'aspects',
        label=_(u'aspects', default=u'Aspects'),
        fields=['demand'])
    demand = schema.TextLine(
        title=_(u'demand_title', default=u'Demand'),
        description=_(u'demand_description',
                      default=u'Demand of the product'),
        required=False)
注意:方面字段类型必须是文本行,才能正确与

过滤器视图一起工作。

通过 ZCML 注册此行为

<plone:behavior
  title="Demand"
  description="Extend content with product demand."
  provides=".behaviors.IDemandBehavior"
  for="collective.instancebehavior.IInstanceBehaviorAssignableContent" />

创建一个类似 bda.plone.productshop.indexer 中的方面字段索引器

@indexer(IDemandBehavior)
def demand_aspect(obj):
    return obj.demand
注意:索引名称必须在所有地方后缀为 _aspect

这样我们希望避免命名冲突。

通过 ZCML 注册索引器

<adapter name="demand_aspect" factory=".indexer.demand_aspect" />

在安装时通过通用设置配置文件创建索引。添加到 catalog.xml

<index name="demand_aspect" meta_type="FieldIndex">
  <indexed_attr value="demand_aspect" />
</index>

创建对象动作,以便方面可以像 bda.plone.productshop.browser.actions 中的那些一样启用 ttw

class DemandAction(VariantAspectAction):
    aspect_title = _(u'aspect_demand', default=u'Demand')
    aspect_behavior = 'bda.plone.productshop.behaviors.IDemandBehavior'
    aspect_schema = IDemandBehavior

配置必要的动作视图

<!-- demand -->
<browser:page
  name="enable_demand"
  attribute="enable_aspect"
  for="..interfaces.IVariant"
  class=".actions.DemandAction"
  permission="cmf.ModifyPortalContent"
  layer="..interfaces.IProductShopExtensionLayer" />

<browser:page
  name="disable_demand"
  attribute="disable_aspect"
  for="..interfaces.IVariant"
  class=".actions.DemandAction"
  permission="cmf.ModifyPortalContent"
  layer="..interfaces.IProductShopExtensionLayer" />

<browser:page
  name="can_enable_demand"
  attribute="can_enable"
  for="*"
  class=".actions.DemandAction"
  permission="cmf.ModifyPortalContent"
  layer="..interfaces.IProductShopExtensionLayer" />

<browser:page
  name="can_disable_demand"
  attribute="can_disable"
  for="*"
  class=".actions.DemandAction"
  permission="cmf.ModifyPortalContent"
  layer="..interfaces.IProductShopExtensionLayer" />

在安装时通过通用设置配置文件创建相应的对象动作。添加到 actions.xml

<!-- demand -->
<object name="enable_demand"
        meta_type="CMF Action"
        i18n:domain="bda.plone.productshop">
  <property name="title" i18n:translate="">
      Add demand
  </property>
  <property name="description" i18n:translate="">
      Add demand to product variant
  </property>
  <property name="url_expr">
      string:${object/absolute_url}/@@enable_demand
  </property>
  <property name="icon_expr"></property>
  <property name="available_expr">
      object/@@can_enable_demand
  </property>
  <property name="permissions">
      <element value="Modify portal content" />
  </property>
  <property name="visible">True</property>
</object>

<object name="disable_demand"
        meta_type="CMF Action"
        i18n:domain="bda.plone.productshop">
  <property name="title" i18n:translate="">
      Remove demand
  </property>
  <property name="description" i18n:translate="">
      Remove demand from product variant
  </property>
  <property name="url_expr">
      string:${object/absolute_url}/@@disable_demand
  </property>
  <property name="icon_expr"></property>
  <property name="available_expr">
      object/@@can_disable_demand
  </property>
  <property name="permissions">
      <element value="Modify portal content" />
  </property>
  <property name="visible">True</property>
</object>

待办事项

  • 定义哪些产品的 richtext 字段在产品视图中作为选项卡渲染。

  • 创建控制面板。这应包含全局配置,指定实例中可用的变体方面。

贡献者

  • Robert Niederreiter(作者)

  • Espen Moe-Nilssen

  • Peter Holzer

来自

变更

1.0b1(2024-04-22)

  • Plone 6 兼容性。[petschki, agitator]

  • 修复了 AvailableVariantAspectsVocabulary 不尊重命名行为的问题。[jensens]

  • 修复了一些命名和 DE 翻译。[jensens]

  • 编辑列表中的编辑图标和在叠加层上的编辑功能。[jensens]

  • 从产品视图中移除占位图像,只有上传了图像才显示。[jensens]

  • 使用Bootstrap类的基本响应式瓷砖视图。[jensens]

  • 在瓷砖列表中显示空文件夹或没有图像的文件夹。[jensens]

  • 修复行为中的弃用警告。[jensens]

  • 修复Python 3除法问题(使用浮点数而不是整数)。[jensens]

  • 从ZCML中移除对CMFDefault皮肤的绑定。[jensens]

  • 修复对< cite>details富文本的条件。[petschki]

  • 添加意大利语翻译。[ale-rt]

0.8

  • 在点击缩略图时,在产品视图中添加带有大产品图像的ajax叠加。[rnix]

  • 改进瓷砖视图。[rnix]

0.7

  • 以红色显示无效方面信息。[rnix]

  • 在文件夹上检查ILeadImage,而不是在ProductTiles.query_tile_items中检查image属性是否存在。[rnix]

  • 添加通用设置viewlets.xml文件,并默认隐藏plone.belowcontentbody.relateditems。[rnix]

0.6

  • 格式化actions.xml以使操作翻译正常工作。需要GS配置文件应用程序。[rnix]

  • bda.plone.productshop.behaviors.IProductBehavior中移除item_number。它现在由bda.plone.shop.dx.ITradingBehavior提供,用于产品和变体,而产品组根本不依赖此信息。[rnix]

  • bda.plone.shop.dx.ITradingBehavior行为应用于产品变体内容类型。[rnix]

  • 如果存在,在产品视图描述选项卡中显示手动下载链接。[rnix]

  • 如果鼠标光标进入空占位符列,则还隐藏可购买控件叠加。[rnix]

  • 考虑在产品瓷砖中查看可购买信息权限。[rnix]

  • 如果存在,在产品瓷砖视图中考虑文件夹上的图像字段。[rnix]

  • 添加bda.plone.productshop.behavior.IProductManualBehavior并将其应用于产品变体内容类型。[rnix]

  • bda.plone.shop.dx.IBuyablePeriodBehavior添加到产品变体内容类型。[rnix]

  • shopviews.css重命名为productshop.css。重新应用GS配置文件需要。[rnix]

  • 修复产品瓷砖视图,只有当瓷砖项目直接表示可购买项目时才显示可购买控件叠加。[rnix]

0.5

  • 如果瓷砖中显示的项目是可购买的,则在鼠标悬停时将可购买控件作为叠加显示在产品瓷砖上。[rnix]

  • 添加IProductShopSettingsIProductTilesViewSettingsBehavior,它们都提供product_tiles_view_columnsproduct_tiles_view_image_scale属性,用于ProductTiles视图。[rnix]

0.4

  • 为Plone站点和文件夹添加产品瓷砖视图。[rnix]

  • 在产品组上启用折扣设置。[rnix]

  • 绝对导入。[rnix]

  • 添加IMaterialBehavior变体方面。[rnix]

  • 将通知文本行为应用于产品商店类型。[rnix]

0.3

  • 产品列表现在是分批的。[rnix]

  • 添加IAngleBehavior变体方面。[rnix]

  • 添加IIPCodeBehavior变体方面。[rnix]

  • 将查询标准作为unicode处理,以避免UnicodeDecodeError。[rnix]

  • IShippingBehavior添加到产品和变体类型。[rnix]

  • IProduct添加项目编号。[rnix]

  • 添加变体方面ILengthBehaviorIWidthBehaviorIHeightBehavior。[rnix]

0.2

  • 产品组可以定义默认变体方面。[rnix]

  • 添加德语翻译。[rnix]

  • 引入IProductExcludeFromNavigation。[rnix]

  • 将包重命名为bda.plone.productshop。[rnix]

  • 添加内容类型productproductgroupvariant。[rnix]

  • 减少可用视图。[rnix]

0.1

  • 初步工作。[espenmn]

许可协议

版权所有(c)2013-2024,Espen Moe-Nilssen,BlueDynamics Alliance。保留所有权利。

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

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

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

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

本软件由BlueDynamics Alliance提供,“按原样”提供,并明确或暗示放弃任何形式的明示或暗示保证,包括但不限于适销性和针对特定目的的适用性保证。在任何情况下,BlueDynamics Alliance均不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,即使被告知了此类损害的可能性,即使是在基于责任、严格责任或侵权(包括疏忽或其他)理论的情况下,即使是在使用本软件的情况下发生的。

项目详情


下载文件

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

源代码分发

bda.plone.productshop-1.0b1.tar.gz (93.3 kB 查看哈希值

上传时间 源代码

构建分发

bda.plone.productshop-1.0b1-py3-none-any.whl (110.1 kB 查看哈希值

上传时间 Python 3

由以下机构支持

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