Skip to main content
The product information panel is a small script you add to your own product detail pages. It renders recall status, allergens, certifications and the printed ingredient label for a GTIN, served from Closient and kept current without you republishing anything. It is built for the critical rendering path: about 3.5 KB gzipped, loaded asynchronously, with its space reserved before the data arrives so it never pushes your page content around.

Add it to a page

The panel renders immediately after the <script> tag. To place it somewhere else on the page, put the element where you want it and the script will use it instead of injecting its own:

Configuration

The panel inherits your page’s font stack and sizes itself to its container, so it takes on your typography without shipping a webfont of its own.

Content Security Policy

If your site sends a CSP, the script embed needs two directives:
If you want the product photo to render, add Closient’s media origin to img-src as well. That is a different host from www.closient.com — product media is served from its own storage domain — so script-src and connect-src do not cover it. Read the image_url field from the JSON response for a product you carry and take the origin from there; the panel omits the image cleanly if the request is blocked, so this directive is optional.

If you cannot allow a third-party script

Use the iframe instead. It renders the same panel from Closient’s own origin and needs only frame-src:
The trade-off is height. A framed document cannot resize its own frame, so you set the height and the panel scrolls inside it — where the script embed grows to fit its content. Prefer the script embed when your CSP allows it.

What the panel sends

Nothing about your visitors, to anyone.
  • No cookies. The panel’s request is made with credentials: 'omit', and no response it receives sets a cookie. Closient cannot recognise a visitor across your pages or anyone else’s.
  • No third-party requests. Every request the panel makes goes to Closient — the origin it was loaded from, plus Closient’s own media domain when the product has a photo. No analytics, no fonts, no third-party CDN, no map tiles.
  • No client-side tracking. The panel fires no analytics event of any kind. Closient counts panel renders server-side, in aggregate, and those counts are tagged separately from real QR scans so they never inflate a brand’s scan numbers.
This is the same commitment the locator widgets make — see widget privacy for the full statement your DPA can cite.

What the panel shows

Sometimes less than the full record, and always for a reason. Every response carries a disclosure value that says which case applies: An empty certifications list on a full response means the product has none. On any other response it means Closient is not asserting them. Read disclosure before drawing a conclusion from an empty field. If Closient has no record of the GTIN at all, the panel renders nothing — not an error box. An empty compliance panel is a worse shopping experience than no panel.

The URL is the contract

/widget/v1/pip-panel.js is a version you pin, not a release number. Closient ships fixes and improvements by replacing the asset behind that URL, so you get them without touching your theme. The v1 changes only if the embed’s own contract changes — attribute names, element name, the shape of what renders — and a v2 would be published alongside v1, never in place of it. Do not deep-link to the underlying static asset or to the JSON endpoint’s internals; those are free to move.

Reading the data directly

If you would rather render the panel yourself, the same data is available as JSON. It is anonymous, open-CORS and cacheable:
The schema is EmbedPanelOut under PIP Embed (Public) in the Products API reference. Responses carry Cache-Control: public, max-age=300, s-maxage=300 — please respect it rather than polling.