ether / purchase-patterns
轻松跟踪并展示客户一起购买的产品。此外,还可以按个人和订单销售额排序。
1.1.5
2020-03-18 14:01 UTC
Requires
- craftcms/cms: ^3.0.0
- craftcms/commerce: ^2.0.0-beta.2|^3.0.0
README
购买模式
轻松跟踪并展示客户一起购买的产品。此外,还可以按个人和订单销售额排序。
需求
此插件需要Craft CMS 3.0.0或更高版本,以及Craft Commerce 2.0.0-beta.2或更高版本。
安装
通过插件商店购买。
使用方法
在您的模板中使用 craft.purchasePatterns.related
函数来获取客户也购买的相关产品。
ProductQueryExtended related ( Product|Order $target [, int $limit = 8 [, ProductQuery $paddingQuery = null [, array $filter = [] ] ] ] )
该函数返回一个 ProductQueryExtended
,因此您可以按需包含额外的查询参数。已设置 id
参数,不应覆盖。
{% set customersAlsoBought = craft.purchasePatterns.related( product, 10 ).fixedOrder(true).all() %}
将 fixedOrder
设置为 true 将按购买一起的次数对产品进行排序。
paddingQuery
允许您指定一个 ProductQuery
,当相关结果低于给定 limit
时,将使用此查询进行填充。此查询不应包含如 order
、limit
或执行命令如 all
之类的项目。
{% set customersAlsoBought = craft.purchasePatterns.related( order, 20, craft.products.relatedTo(product.myCategory) ).orderBy('random()').all() %}
编辑备注: random()
是Postgres特定的。对于MySQL,请使用 RAND()
。
filter
期望一个属性数组,这些属性将用于过滤最终结果。您可以使用此功能确保查询始终返回预期的结果数量。您可以传递任何您原本要在外部查询中包含的属性。
{% set customersAlsoBought = craft.purchasePatterns.related( order, 20, craft.products.relatedTo(product.myCategory), { availableForPurchase: 1 } ).all() %}
有关过滤器功能的更多信息(由 jmauzyk 添加),请参阅 #3。
扩展产品查询
扩展产品查询允许您按 qtyCount
和 orderCount
对产品进行排序。它扩展了基本产品查询,因此您可以像使用 craft.products
一样使用它。上面的 related
查询返回一个扩展查询,同样
{% set products = craft.purchasePatterns.extended().orderBy('orderCount DESC').all() %}