
- MODX 3
- PHP 8.2
- Vue 3


Result: the page shows cards with a photo, a price, and an Add to cart button. msProducts runs inside the chunk. The template does not need its own snippet call. Requires PageBuilder Pro and miniShop3 (requires: ["pro", "minishop3"]).
[[!PageBuilder]].products_grid is in the Blocks catalog. If it is missing, check requires.products_grid section.menuindex, popular, new, price_asc, price_desc. An unknown value sorts as menuindex.Catalog root 101 (an example, use your category). Limit 6. An empty limit becomes 12 in the chunk. Sort price_asc. For a "often bought" block use popular.
An empty category prints lexicon pagebuilder_fe_listing_empty_products ("No products in this category yet."). The section has "cacheable": false, so the page HTML cache does not freeze the listing.
A narrow strip uses products_carousel. A hand-picked SKU list uses curated_products.
The site shows cards from the category you picked. Changing sortby to price_asc lists products by ascending price. An empty category prints the lexicon string, not a blank block.
Delete the section.