Skip to content
feedlab Request early access

The Shopify feed engine
that speaks every channel.

feedlab syncs your Shopify catalog, maps every field through a transformation rule engine, and publishes schema-perfect feeds for Google Shopping, Meta, OpenAI, and any other channel on a schedule. One pipeline, full control over every field.

app.feedlab — Google Shopping · field mappings Live
Field mappings 34 of 34 mapped
variants.0.price currency round price
metafields.custom.material strip_html material
discounts (auto-matched) promotion promotion_message
Live preview 24.90 EUR Organic Cotton, GOTS certified 15% off with code SUMMER15
Schedule */15 * * * * · regenerated 2 min ago 3,482 products · 9,204 rows

Ships to every channel that matters

Schema-perfect field mappings out of the box, ready to publish the moment you connect a store.

Need something else? Export a custom CSV, XML, or JSON feed from the same rule engine.

merchant-center · feed diagnostics

$ feed validate --channel=google

item 1042 · missing required attribute [gtin]

item 2210 · invalid price "24,90 EUR" (expected "24.90 EUR")

384 items · description contains raw HTML

96 items · promotion expired 6 days ago

feed disapproved · last successful fetch 14 days ago

3 blocking · 2 warnings Last checked 2 min ago

Where product feeds usually break

Most merchants hit the same wall: the catalog is fine, the channel still rejects it.

Schema mismatch
Shopify's product model doesn't match Google's, Meta's, or TikTok's. Every channel wants different fields, casing, and formats.
Feed apps hit a ceiling
Off-the-shelf apps cover the happy path. Need a metafield, a locale, or a conditional label, and you're often out of options.
Scripts break silently
Hardcoded transforms fail quietly when a field is missing, a metafield changes shape, or a locale gets added.
No visibility
You usually learn a feed is broken when the ad account flags it, and by then it has already cost you spend.

Purpose-built for feed work

Field mapping, transformation rules, filters, and publishing in one pipeline.

description strip_html case: title truncate: 30
Output <p>aurora ribbed tee in <b>organic cotton</b></p> aurora ribbed tee in organic cotton Aurora Ribbed Tee In Organic Cotton Aurora Ribbed Tee In Organic C…

Transformation rules you can chain

Pick from 18 rule types per field: strip HTML, recase, truncate, regex extract and replace, currency conversion, lookup tables, conditionals. Each step runs in order and previews against your real products.

inventory > 0 status = active
Aurora Ribbed Tee
Ember Knit Hoodie
Drift Canvas Cap excluded

Ship only what qualifies

Include or exclude products by any field, grouped into condition sets. Filters run before a single row is rendered.

shopify_field static combined custom_label metafield promotion

Six ways to fill a field

Direct fields with dot-path access, static values, combined templates, conditional labels, metafields with metaobject drill-down, and auto-matched promotions.

Aurora Ribbed Tee €39.00
Coast Pocket Tee €35.00
Ember Knit Hoodie €89.00

Promotions that write themselves

feedlab syncs your product- and collection-scoped discount codes, indexes them per product at generation time, and offers them as a mapping source with localized summaries. When a code expires it leaves the feed on the next run.

feedlab.app/feeds/8f3a1c9e-….csv
Generating 9,204 rows… ✓ Generated · just now

One URL, always fresh

Every feed lives at a stable, token-protected URL in CSV, XML, or JSON. A cron schedule regenerates it in the background, so you point Merchant Center at it once and never re-upload.

Aurora Ribbed Tee 3 variants
S €39.00
M €39.00
L €41.00
en de fr

Variant-level, multi-locale

Expand one product into a row per variant, with per-locale titles and market-aware storefront URLs.

From OAuth to published feed

Three steps, no scripts to maintain.

1

Connect a store

One OAuth flow. feedlab pulls the entire catalog and registers webhooks, so a price edit or inventory change in Shopify lands in feedlab within seconds rather than at the next sync. A daily reconciliation pass catches anything a webhook missed, and the connection also discovers what your store actually has, so the mapping UI only offers fields that exist.

  • Full catalog sync over Shopify's bulk API
  • Webhook-driven updates, so every scheduled feed run reads current data
  • Locales, markets, metafield schemas, and discount codes discovered automatically
Connect Shopify store
aurora-supply.myshopify.com Connect

read_products

read_translations

read_metaobjects

read_discounts

✓ Synced 3,482 products · 4 locales · 12 metafield definitions
2

Map and transform

Every channel is a schema: required and optional fields, tracked per feed. A channel template prefills the obvious mappings, and you refine the rest with rules while watching the resolved output against real products.

  • Required-field tracking, so a feed can't ship half-mapped
  • 18 transformation rule types, chainable per field
  • Live rule-aware preview while you edit
Google Shopping · schema 1 required field unmapped
id variants.0.sku
title title 2 rules
gtin * unmapped
sale_price promotion
3

Publish and forget

Each feed gets a stable URL whose slug doubles as an unguessable access token, so the channel needs no credentials. Set a cron schedule and feedlab regenerates in the background, streaming products lazily to keep large catalogs fast.

  • CSV, XML, or JSON from the same mapping
  • Cron-scheduled regeneration with export history
  • Memory-safe generation, built for 50k-SKU catalogs
CSV XML JSON
feedlab.app/feeds/8f3a1c9e-….csv
Schedule */15 * * * * next run in 9 min
#248 · just now 9,204 rows
#247 · 15 min ago 9,204 rows
#246 · 30 min ago 9,198 rows

Deploy your next feed in minutes

Join the early access program and be among the first to map your channel-ready feed.