Craft shows the sale running, and can tell which products are on sale using a:
{% set saleProducts = craft.products()
.hasVariant({
hasSales: true,
hasStock: true
}).all() %}
loop, but on the product itself. However, variant.onSale
doesn't detect the sale, and variant.salePriceAsCurrency
brings up the original price.
In the CMS looks like things are set up correctly -- the sale is connected to the product/varient and the product is promotable.
What am I missing here?
for
code that spits out thesaleProducts
?