result.productResults automatically: no flag, no extra credits, since the panel is already in the HTML the scrape fetches.

Right-rail product panel on the Google SERP
stores[]. This panel is separate from the main-column “Popular products” and “More products” grids, which remain shopping cards — both can appear on the same SERP.
Same shape as the product that a productResultToken returns.
Product result structure
Each entry describes one product cluster and its merchant offers.
Only
title is guaranteed (Google Search entries also always carry stores) — anything Google’s panel omits is left out of the object rather than sent as null. Panels can also carry rating, reviews, variants, relatedProducts and userReviews, emitted under those names when present, though most carry none of them.
Specifications
A category name mapped to a flat set of spec key/value pairs:Store structure
Expect the first six on most offers and the rest only occasionally. Everything beyond
name is optional and omitted when absent — Google shows different combinations per merchant, so an “Out of stock” listing may have no price or link at all.
Price shape
Currency codes
cloro maps the currency token Google displays next to the price to its ISO 4217 code. Multi-character and word tokens are recognized, so"R$ 5.597,99" returns "BRL", "MXN 19,499.00" returns "MXN", and "3,399.00 د.إ" returns "AED". Yen written as ¥, ¥ or 円 returns "JPY".
A bare $ doesn’t name a market on its own, because Google writes US, Canadian and Australian offers the same way. On AI Mode, cloro resolves a bare $ from the request country: CA returns "CAD", AU returns "AUD", NZ returns "NZD", SG returns "SGD", HK returns "HKD", and any other country returns "USD". On Google Search, a bare $ always returns "USD".
An explicit token always takes priority over the request country. A country: "CA" request that gets an offer displayed as "R$ 5.597,99" still returns "BRL".