# E-commerce product images from a template: share cards, sales and pins

> Generate product share cards, sale and price-drop graphics, coupons and Pinterest pins from your catalogue — every product, every size, from one template.

Published 2026-11-04 · https://shareglint.com/en/use-cases/ecommerce-product-images

Product images that carry information — the price, the discount, "back in stock", a coupon code — are the same layout repeated across a catalogue. With Shareglint you keep that layout as a template and generate the image for each product from its data: one request when a price drops, a batch for the whole catalogue, or an automatic share card for every product page. Templates built for stores include `product-og`, `product-sale`, `price-drop`, `flash-sale`, `coupon-code`, `product-review` and `product-grid`; your own HTML and CSS works as well.

These are marketing images, not catalogue photos. Your product photography stays as it is; the generated image puts it into a card with the name, price and offer for places where that card helps: link previews, social posts, emails, ads and pins.

## A share card for every product page

When someone shares a product link, the preview shows the page's `og:image` ([Open Graph protocol](https://ogp.me/)) — often the first product photo cropped badly, or the store's logo. An auto OG URL fixes the whole catalogue with one tag: it reads the product page's title, description and image and renders a card the first time a crawler asks for it. Allow your store's domain in the dashboard, then put the tag into the theme:

```liquid
{%- assign og_card = canonical_url | url_encode | prepend: 'https://shareglint.com/u/acc_YOUR_ACCOUNT_ID.png?url=' -%}
<meta property="og:image" content="{{ og_card }}">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
```

The [Shopify page](https://shareglint.com/en/og-image-generator/shopify) has the full snippet for Dawn's `meta-tags.liquid`, including which existing tag to replace so there is one `og:image`, not two; the same idea works on [WooCommerce (WordPress)](https://shareglint.com/en/og-image-generator/wordpress), [Webflow](https://shareglint.com/en/og-image-generator/webflow) and other builders. An unchanged product is never charged twice, and tracking parameters such as `?utm_source=` do not create new images.

## Sale, price-drop and coupon graphics

For campaigns, send the values yourself:

```bash
curl -X POST "https://shareglint.com/v1/images?wait=true" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "template": "price-drop",
    "sizes": ["square", "story"],
    "modifications": {
      "name": "Trail Runner 2",
      "brand": "Northwind",
      "old_price": "$129",
      "price": "$89",
      "saving": "Save $40",
      "cta": "Shop now",
      "photo": "https://cdn.example.com/products/trail-runner-2.jpg"
    }
  }'
```

`sizes` returns the square post and the story of the same graphic in one call — the presets are og 1200×630, square 1080×1080, portrait 1080×1350, story 1080×1920, pinterest 1000×1500, youtube 1280×720 — so a price change in your store can post itself: a webhook on the price update calls the API and hands the image URLs to your scheduler. `flash-sale` takes a discount and an end date, `coupon-code` a code to show (put the code in the text of the post or email too, so it can be copied), and `product-grid` up to four products in one image for "new arrivals" posts. Prices are text you send, so format them for the market: `"89 zł"`, `"€89"`, `"$89"`.

## The whole catalogue from a CSV

Most store platforms export products as CSV. Keep the columns that match the template's fields — `name`, `brand`, `price`, `old_price`, `photo` — add a `filename` (the SKU works) and an `id`, and send the file:

```bash
curl -X POST "https://shareglint.com/v1/batches" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "template": "product-sale", "sizes": ["og", "pinterest"],
        "csv_url": "https://example.com/exports/products.csv" }'
```

Each product × size is one image; `GET /v1/batches/{id}` gives every URL (with your `id`) and one ZIP. Rows per batch by plan: Free 50, Starter 500, Pro 1,000, Scale 2,000, Business 5,000. Run it again after a price update and only the changed products render anew — the rest come back free. The `pinterest` preset is 1000×1500, a 2:3 pin; `columns` maps CSV headers that do not match field names.

## Where these images may and may not go

- **Google Shopping: not with overlays.** Merchant Center's image rules say the main product image must not include "promotional text, watermarks, or borders", and additional images may show the product in use or include graphics but not promotional overlays ([Google Merchant Center](https://support.google.com/merchants/answer/7052112)). Use your clean photos in the feed; use the cards everywhere else.
- **Marketplaces** have their own photo rules (white backgrounds, no text) — the same split applies.
- **Social, email and your own pages** are where the cards earn their keep: link previews, organic posts, newsletters, abandoned-cart emails, and pins.
- **Ads**: check the network's own rules on text in images before uploading.

## Practical notes

- **Photos come from your CDN.** Image fields take public URLs, fetched when the image renders. Private or internal addresses are refused.
- **Transparent product shots** look best on templates with a solid or gradient background; set `accent` to your brand colour and `theme` to light or dark.
- **Animation** for a launch post: `animated-product-reveal` renders an MP4 or GIF of up to 5 seconds, at 5 renders of quota each.
- **Fonts** are the families installed on our renderer (`GET /v1/fonts`); custom font files cannot be uploaded.

## Cost

One render per image and size; repeats with the same values are free. A 2,000-product catalogue in two sizes is 4,000 renders the first time and only the changed products after that. The Free plan's 100 renders a month carry a watermark. Starter is $9 a month for 2,000 renders, Pro $29 for 10,000 ([pricing](https://shareglint.com/en/pricing)).

## What it does not do

- No background removal, retouching or AI-generated product scenes — the template lays out the photo you give it.
- No publishing to social networks or upload to Google Merchant Center; your scheduler or feed tool does that with the URLs.
- No live prices inside an already-shared image: a new price is a new image.

## FAQ

### Can I give every product page its own og:image without code?

Yes, with an auto OG URL: one tag in the theme points at an image URL that reads the product page's title, description and image and renders a card. On Shopify it goes into the theme's meta-tags snippet. Only domains you allowed in the dashboard get images.

### Can I use these images in Google Shopping?

Not the ones with prices or sale banners on them. Google Merchant Center's image rules say the main product image must not include promotional text, watermarks or borders. Use your clean product photo for the feed and the generated cards for social posts, ads where overlays are allowed, and email.

### How do I make images for the whole catalogue?

Export the products as CSV — name, price, old price, photo URL — and send it to POST /v1/batches with a product template and the sizes you need. Every product comes back as an image URL and all of them in one ZIP; unchanged rows are free the next time.

### Do the images update when a price changes?

A new price is a new image: send the new values and you get a new file, while the old one keeps its URL. Auto OG URLs re-read the page at most once per cache period, so a changed price shows up after that.
