Feeder
Feeder turns Craft elements (products, entries, categories, orders, customers, users, assets) into export files for external channels — marketplaces, price comparison sites, affiliate networks, or any partner that consumes a periodic CSV/JSON/XML feed instead of an API integration.
Instead of one fixed export format, Feeder is built around independently configurable profiles:
- A feed picks a source (element type + site), an output format, and how it runs (manually, by schedule, or via the console).
- A mapping translates values from your store's vocabulary to a
channel's vocabulary — most commonly categories (e.g.
Electronics > Phones→ a marketplace's numeric category ID). - A rule is a reusable element condition (date range, related-to, slug pattern, ID list, …) that can be attached to one or more feeds to filter which elements get exported.
Why teams use it
- One feed profile per channel, no code. A store with five sales channels (a marketplace, two comparison engines, an affiliate network, an internal BI export) configures five feeds from the CP — each with its own source, fields, and delivery target — without a developer touching code per channel.
- Format flexibility. Built-in CSV/JSON/XML writers cover the common
case; Template mode (header/element/footer patterns with
{field|modifier}placeholders) covers channels with a specific XML schema or a format none of the built-in writers produce. - Delivery included. A feed can push its output straight to an FTP, FTPS, or SFTP target after generating it — no separate cron script needed to move the file where the channel expects it.
- Traceable runs. Every generated export (successful or failed) is recorded in History, with the row count, delivery target, and — for local files — a direct re-download link.
Admin use cases
- Publish a Google Shopping–style or marketplace product feed on a daily schedule, in the exact field order and format the channel requires.
- Re-map internal category names or attribute values to a partner's taxonomy using a mapping profile, without renaming anything in Craft.
- Restrict a feed to a subset of products (e.g. only entries related to a specific category, or created after a given date) using rules, instead of hand-maintaining a filtered element source.
- Push a generated feed directly to a marketplace's FTP/SFTP drop folder as part of the same run that generates it.
- Audit past export runs — row counts, delivery target, failures — from History, and re-download a previously generated file.
- Trigger or inspect exports from the console for CI/deploy pipelines or cron, instead of relying on the CP.
Feed model
| Concept | What it is |
|---|---|
| Feed | A named export profile: source element type + site, output format (CSV/JSON/XML or a custom template), row filtering (conditions + attached rules), field selection, run mode, and optional FTP/FTPS/SFTP delivery. |
| Mapping | A named source-value → target-value lookup table (e.g. category or attribute translation), referenced from a feed's field template with the map modifier. |
| Rule | A named, reusable element condition (by date, ID, slug, related-to) with a priority, attachable to any number of feeds. |
| History | A log of every export run, per feed: status, row count, delivery target, and (for local writes) a download link. |
A feed's row filtering combines its own inline condition with every rule
attached to it (via rule_ids) — a feed doesn't need its own bespoke
condition if an existing rule already expresses it.
Supported sources
Feeder discovers export sources from the current Craft/Yui installation. Always available: Entries, Categories, Users, Assets. When the relevant plugin is installed, also available: Products, Variants, Orders, Customers (from the store/commerce plugin). The full, currently-registered list — including each source's default currency and capabilities — is shown at the bottom of Feeder → Settings.
Basic setup
- Open Feeder → Feeds → New Feed, pick a source (element type) and site, and give the feed a name and filename.
- Choose an output format (CSV, JSON, XML) — or leave the header/element/ footer pattern fields blank for the built-in writer, or fill them in to use Template mode (see Usage → Fields, Template mode and modifiers).
- Optionally restrict rows with the feed's own conditions and/or by attaching one or more rules.
- Optionally enable FTP/FTPS/SFTP delivery so the generated file is pushed to the channel automatically.
- Choose how the feed runs: Manually (via the Generate feed button
or console), or By Schedule (a cron expression, processed by a
recurring
feeder/export/run-dueconsole call — see Developer API → Scheduling). - Save, then use Generate feed to run it once and confirm the output in History before relying on the schedule.
Further reading
- Settings — plugin-wide defaults: export path, chunk size, history retention, and feature toggles.
- Usage — creating feeds, mappings and rules, template mode and modifiers, generating exports, and reading history.
- Developer API — the console command, the
craft.feederTwig variable, PHP services, and scheduling feeds via cron. - Release Notes