Purchase Patterns
Use the craft.purchasePatterns.related
function in your templates to get related products that customers also bought.
ProductQueryExtended related ( Product|Order $target [, int $limit = 8 [, ProductQuery $paddingQuery = null ] ] )
The function returns a ProductQueryExtended
, so you can include additional query parameters as needed. The id
parameter is already set and shouldn't be overridden.
{% set customersAlsoBought = craft.purchasePatterns.related(
product,
10
).fixedOrder(true).all() %}
Setting fixedOrder
to true will sort the products by times purchased together.
The paddingQuery
allows you to specify a ProductQuery
that will be used to pad out the related results if they fall below the given limit
. This query should NOT include things like order
, limit
, or execution commands like all
.
{% set customersAlsoBought = craft.purchasePatterns.related(
order,
20,
craft.products.relatedTo(product.myCategory)
).orderBy('random()').all() %}
Editor's Note: random()
is Postgres specific. Use RAND()
for MySQL.
Extended Product Query
The extended product query allows you to sort the products by qtyCount
and orderCount
.
It extends the base product query, to you can use it the same way as you would craft.products
.
The related
query above returns an extended query, as does:
{% set products = craft.purchasePatterns.extended().orderBy('orderCount DESC').all() %}
Standard
Plus $5/year after one year.
To install this plugin, copy the command above to your terminal.
This plugin doesn't have any reviews.