Magidoc

Product Recommendations

Use Suggest other items to show alternatives on a product's details page. In Cloudshelf Manager , open your Cloudshelf's Recommendations settings and choose Matched on rules.

Rules compare the product the shopper is viewing with each other product that could be suggested. They use both products' data. The viewed product itself is never one of the alternatives.

Quick example: other items in the same range

#

Suppose your products have tags such as Range:TB.490 and Range:TB.491 . You want a shopper viewing a TB.490 product to see other TB.490 products.

  1. Choose Matched on rules.
  2. Set Title for matched products: to Other items in this range .
  3. Click Add rule and name it Same range .
  4. Set Match on to Product tag.
  5. Set Comparison to Wildcard Match (*).
  6. Enter Range:TB.* in Tag match.

For a viewed product tagged Range:TB.490 :

Another product's tag
Matches this rule?
Why
Range:TB.490
Yes
It shares the actual matching tag on the viewed product.
Range:TB.491
No
It is a different range, even though its tag fits the pattern.
Range:AB.490
No
Its tag does not fit the pattern.
No range tag
No
There is no shared matching tag.

The pattern identifies which tags to compare. Cloudshelf then uses the full matching tag from the viewed product to find alternatives. It does not group every product whose tag starts with Range:TB. together.

If the viewed product carries several tags that fit the pattern, another product can match by sharing any one of them.

What can a condition compare?

#

Match on
Data used
What you enter
Product tag
The product's tags
A tag in Tag match, or a pattern when using a wildcard comparison.
Product metafield
The stored value of a product metafield
Select or enter the Metafield key, including its namespace, such as custom.range . Enter To when the comparison needs a value.
Vendor
The product's vendor
Enter To when the comparison needs a value.
Product type
The product's type
Enter To when the comparison needs a value.

For vendor, product type and metafields, Exists and Doesn't Exist do not need a To value. For tags, you always enter the tag or pattern to check.

What each comparison means

#

In these tables, both products means the viewed product and the potential alternative. Neither means the condition fails if either product has the excluded tag or value.

Product tags

#

Comparison
Meaning
Exists
Both products must have the exact tag entered in Tag match.
Doesn't Exist
Neither product may have the exact tag entered in Tag match.
Equal
Both products must have the exact tag entered in Tag match. This behaves the same as Exists for tags.
Doesn't Equal
Neither product may have the exact tag entered in Tag match. This behaves the same as Doesn't Exist for tags.
Wildcard Match (*)
Both products must share the same full tag, and that tag must fit the pattern.
Doesn't Match Wildcard (*)
Neither product may have any tag that fits the pattern.

Only the two wildcard comparisons interpret * as a wildcard. With Exists or Equal, Range:TB.* means that literal tag, including the asterisk.

Vendor, product type and product metafields

#

Comparison
Meaning
Exists
Both products must have the same non-empty value for the selected field. Having two different non-empty values is not enough.
Doesn't Exist
The selected field must be missing or blank on both products.
Equal
Both products must have the exact value entered in To.
Doesn't Equal
Neither product may have the value entered in To. A missing or blank field passes this condition.
Wildcard Match (*)
Both products must share the same full field value, and that value must fit the pattern in To.
Doesn't Match Wildcard (*)
Neither product may have a field value that fits the pattern in To. A missing or blank field passes this condition.

For example, Vendor → Exists matches Acme with Acme , but not Acme with Contoso . Vendor → Doesn't Equal → Acme requires both products to be outside Acme ; it does not mean “find a different vendor from the viewed product”.

How wildcard patterns work

#

* stands for variable text. Other characters, including dots, are literal. A pattern without * matches the full value exactly.

For a positive Wildcard Match (*), the products must share the full value and at least one * must cover some non-blank text. For example, Range:* can match the shared tag Range:TB.490 , but the bare tag Range: is not enough to identify a range. A negative wildcard comparison can still exclude that bare tag.

Combining conditions

#

Use Add condition to put more than one condition in a rule:

  • Match all: every condition must pass for the pair of products.
  • Match any: at least one positive condition must pass for the pair of products.

A positive condition is Exists, Equal or Wildcard Match (*). Every rule needs a matching positive condition to find alternatives. A rule made only from Doesn't Exist, Doesn't Equal or Doesn't Match Wildcard (*) cannot find products.

Use Match all when adding exclusions. With Match any, an exclusion neither creates a match on its own nor blocks a product that passes a positive condition.

The sentence beneath the rule describes the conditions in plain English. “Both” and “neither” refer to the viewed product and a potential alternative. The example values beneath individual conditions illustrate a value or pattern; they are not a preview of your catalogue or the final recommendations.

More worked examples

#

Same vendor and same product type

#

Create one rule with Match all:

Match on
Comparison
Vendor
Exists
Product type
Exists

If the viewed product has vendor Acme and product type Chair , this rule finds other Acme chairs. It does not find Acme tables or Contoso chairs. You do not need a separate rule for every vendor and type: the values come from the viewed product.

Same range stored in a metafield

#

Use Product metafield → Exists with Metafield key custom.range .

If the viewed product has custom.range = TB.490 , other products must have that same value in that same metafield. A value of TB.491 does not match. Use Equal with To set to TB.490 only if the rule should specifically apply to TB.490 , rather than following whichever range the shopper is viewing.

Same range, excluding clearance products

#

Create one rule with Match all:

Match on
Comparison
Tag match
Product tag
Wildcard Match (*)
Range:TB.*
Product tag
Doesn't Exist
Clearance

For a viewed product tagged Range:TB.490 without Clearance , the rule finds other TB.490 products without Clearance .

If the viewed product itself has Clearance , this whole rule produces no alternatives, because the exclusion applies to both products. Later rules and then the same-product-type fallback can still supply alternatives. An exclusion inside one rule is not a global exclusion for every recommendation.

Rule order and fallback

#

Drag rules into priority order, with your preferred match first.

  1. Cloudshelf tries the first rule against other eligible products.
  2. If it finds alternatives, it shows up to eight of them and stops. It does not combine results from later rules or fill remaining spaces from those rules.
  3. If that rule finds no eligible alternatives, it tries the next rule.
  4. If no rule finds alternatives, it tries other products with the same product type as the viewed product. This also happens when Matched on rules has no rules.

Normal catalogue and stock eligibility settings still apply. A matching tag or field value alone does not guarantee that a product will be shown. If the fallback also has no eligible products, no alternatives are shown.

The fallback can show products outside the intended range or vendor, and it does not apply exclusions from unsuccessful rules. There is no separate switch in this editor to turn off the fallback while keeping Matched on rules enabled. None turns off these suggestions entirely.

Matching details and troubleshooting

#

  • Unexpected range? Check whether an earlier rule found products, whether the viewed product has multiple matching range tags, or whether the same-product-type fallback ran because no rule found eligible alternatives.
  • A field exists on both products but does not match? For Exists, vendor, product type and metafield values must also be the same.
  • An exclusion seems ignored? Use Match all, and remember that later rules and fallback do not inherit that exclusion.
  • No alternatives? Check for a positive condition, matching data on the viewed product, other eligible products and stock availability. The viewed product is always excluded from its own results.
  • Capital letters or spaces? Rule comparisons ignore letter case and spaces at the start or end of values. Internal spaces still matter. The same-product-type fallback trims outer spaces but is case-sensitive.
  • Metafield selection? Metafields use their namespace and exact key. custom.range and global.range are different fields. A missing namespace defaults to global ; namespace case and outer spaces are ignored, but key case and spaces matter. Matching uses stored product-level text values, not variant metafields or values changed by a display mapper. It does not extract values from JSON objects or lists.
  • Multiple metafield values? If the same product metafield appears more than once, a positive condition can match any shared qualifying value. A negative condition fails if any value is excluded.