Docs

Product grid blocks

Product grid blocks in Local: the Title, Price, Vendor, Rating, Quick buy, Local availability, Icons list and Dynamic text blocks of product cards.

Applies to: Local 4.2.1 and later. Added in: Local 1.0.0. Last checked: 2026-10-13 against Local 4.2.1.

Every product grid in Local builds its product cards from blocks. You choose which blocks a grid shows and in which order, so a grid on the home page can show less than the collection page. The look of the cards (image ratio, colors, badges, buttons) comes from Theme settings → Product card and is the same everywhere.

Where to find it: Online Store → Themes → Customize → open a page with a product grid → select the grid section → Add block

How product grids use blocks

Each block is one line of the product card, under the product image. The order of the blocks in the sidebar is the order in the card: drag a block to move it. Most blocks can be added once per grid; Dynamic text and Empty space can be added several times.

Collection page in the theme editor: the Product grid section's blocks (Price, Title, Dynamic text, Rating, Quick buy, Local availability, Icons list) with arrows to the matching parts of a product card, and the Product grid settings (Desktop layout, Products per page, Enable filtering, Enable sorting).

Some blocks work as soon as you add them. Others need data first:

  • Rating needs a product reviews app.
  • Local availability needs the store selector and local pickup.
  • Icons list needs the icon metafields in Theme settings.
  • Dynamic text needs a product metafield.

Price, title and vendor

  • Price shows the product price, with the compare-at price when the product is on sale and the unit price when the product has one. When the variants have different prices, it shows the lowest one as "From …". Its size is Theme settings → Product card → Price size.
  • Title shows the product title, linked to the product page. Its font and size are Theme settings → Product card → Title font family and Title size.
  • Vendor shows the product vendor in a lighter color.

None of these blocks has settings of its own.

Quick buy

Quick buy adds a buy button to the card.

  • A product with one variant goes straight to the cart.
  • A product with several variants opens the Quick view popup, where the customer picks the options. See Quick view popup.
  • A sold out product shows no button, unless you turn off Theme settings → Product card → Hide quick buy button when product is out of stock; then it shows a disabled "Sold out" button.

The button style, its label for products with options and Always open quick buy modal are in Theme settings → Product card → Buy buttons. Align buy button to the bottom of the card lines up the buttons of a row; it works best when Quick buy is the last block.

Rating

Rating shows the product's star rating from your reviews app. Choose the app in Theme settings → Product card → Product rating → Rating app (Judge.me by default). Products without reviews show "No reviews" on desktop and nothing on mobile. See Recommended rating apps.

Local availability

Local availability shows whether the product can be picked up at the store the customer chose in the store selector: "Available for pickup at …", "Out of stock at …", or a "Choose a store to see local availability" link that opens the store selector. It checks the product's first available variant and loads when the card scrolls into view.

It needs local pickup on your Shopify locations and the Store selector set up: see "Setting up the Local availability block" on this page.

The block has no settings. It is available in every product grid except Product recommendations.

Icons list

Icons list shows up to six small icons per product (for example "Vegan" or "Gluten free"), with the label as a tooltip. The icons and labels come from product metafields that you connect in Theme settings → Product card → Dynamic icons list. A product with no values shows nothing. See Dynamic icons list theme settings for the setup.

Dynamic text

Dynamic text shows the text of a product metafield in the card, for example a short tagline or the weight. You can add several Dynamic text blocks, one per metafield.

  • Label metafield is the metafield to show, typed as namespace.key.
  • Text size sets Small, Regular or Large text.
  • Text color sets its color (grey by default).
  • Text transform (uppercase) shows the text in capitals.

A product with an empty metafield shows nothing in that line.

Dynamic text block with Label metafield my_fields.product_info, next to Shopify admin → Settings → Metafields → Product Info (namespace and key my_fields.product_info, Single line text) and the product BBQ Sauce whose Product Info metafield reads Fat free, sweet and tangy, shown on its product card.

Product link adds a button that opens the product page. Button label sets its text (default "View product"). Use it instead of Quick buy when you want customers to see the product page first.

Empty space

Empty space adds one more step of vertical space between the blocks above and below it. It has no settings; add two for more space.

Where product grids appear

SectionBlocks it accepts
Collection page → Product gridAll ten
Featured collectionAll ten
Products listAll ten
Shop the lookAll ten
Search page → Search resultsAll except Empty space
Product recommendationsAll except Local availability
Product comparisonIts own row blocks: Price, Vendor, Rating, Quick buy, Local availability, Icons list, Dynamic text, Product link and more

Setting up the Dynamic text block

Create the metafield

In Shopify admin, open Settings → Metafields and metaobjects → Products and select Add definition. Give it a name (for example "Product info") and choose the type Single line text or Multi-line text.

Copy the namespace and key

After you save, copy the value shown under the name, in the form namespace.key, for example custom.product_info.

Fill the metafield on your products

Open each product in Shopify admin → Products and type the text in the new metafield, in the Metafields area at the bottom of the page.

Add the block to the grid

In the theme editor, open the page with the grid, select the grid section and select Add block → Dynamic text. Drag it to its place in the card.

Paste the metafield reference

Paste namespace.key into Label metafield, then set Text size and Text color. Repeat the block in every grid where the text should show.

Type the metafield reference as text. Product grids show many products at once, so the theme reads the metafield of each card itself from the namespace.key you type; there is no dynamic source to connect here.

Setting up the Local availability block

Turn on local pickup

In Shopify admin → Settings → Shipping and delivery → Local pickup, turn on pickup for each store location, and make sure the products have stock at those locations.

Set up the store selector

Add one Store block per location in the Store selector section, with the same name as the Shopify location, and add the Store selector block to the header. The full steps are in Store selector section.

Add the block to your grids

Select the grid section, select Add block → Local availability and drag it to its place. Repeat for each grid.

Why does a block not show in my product cards?

Because it has no data for that product. Rating needs reviews from the app chosen in Rating app, Icons list needs values in the icon metafields, Dynamic text needs a value in its metafield, and Quick buy is hidden for sold out products by default. Check also that the block was added to that grid: every grid has its own blocks.

Can each product grid show different blocks?

Yes. Every grid section has its own blocks, so the collection page can show Vendor, Rating and Quick buy while a home page Featured collection shows only Title and Price. The design of the card (Theme settings → Product card) stays the same everywhere.

Why does Local availability say "Out of stock" for every product?

Because the store the customer picked does not match a Shopify location with local pickup. Check that the Store block's Name has the same words as the Shopify location name, that local pickup is on for that location, and that the product has stock there. See Troubleshoot the store selector and maps.

On this page