Description
Stop copy-pasting affiliate products. Stop fixing dead links by hand. Start writing.
MyFeeds drops live product tiles into your posts. The prices, stock and links update themselves, so you write once and stop maintaining.
You write about products you recommend. You drop them into your posts. A few weeks pass, and half the prices are off, a couple of products went out of stock without telling you, and one merchant quietly disappeared from your network. Every roundup, every gift guide, every product page tells the same story. Quietly going stale while you write the next one.
MyFeeds takes your affiliate program’s product feed and quietly keeps it in sync with your site. You pick a product inside the block editor the way you’d pick an image, hit publish, and move on. The next morning the prices are still right. The dead products are flagged. Your readers see what the merchant is actually selling today.
You get to stay where the value is. Writing. Instead of pasting URLs at midnight.
Who is this for
Anyone earning a cut when readers click and buy. Whatever you cover, from clothing and gear to books, beauty, supplements, tools, baby, garden, hobbies, niche electronics, or deals: if there’s an affiliate program for it, there’s a product feed somewhere, and MyFeeds can read it.
The block editor stays your block editor. The plugin works in the background.
What changes for you
- Your posts get product tiles, not paragraphs of pasted links. A visual grid your readers can scan: image, brand, price, discount, shipping, affiliate link. You compose it in seconds inside the block editor.
- Your prices stop lying. The price your reader sees today is the price on the merchant’s checkout right now.
- Your posts stop rotting. Dead products surface so you can replace them. Stock that comes back lights up again. Nothing decays silently.
- You publish faster. Two letters in the editor, the product appears, you click, the card is in. No new tab, no copy, no paste.
- Your site stays yours. Products live in your own WordPress database. Visitors don’t wait on a third-party server, and nothing about them is sent off-site when a page loads.
- No translation tax. Whatever your program sends you, MyFeeds reads it and figures out which column is the price, which is the image, which is the link. You don’t have to learn the format.
How it works
- Drop your affiliate product feed URL into MyFeeds.
- Every product is imported and stored locally in your WordPress database. The plugin figures out the column structure on its own.
- In any post or page, add the MyFeeds Product Picker block. Search by name, brand, or category. Click to insert.
- The published page renders a responsive product card with the current price, image, brand, shipping, and your affiliate link. All served direct from your database, with no external call on render.
The next day the nightly sync refreshes what changed. The week after, a full import catches everything else. You don’t think about it.
What’s in the box
- Universal feed import. Almost any format your program hands you, detected automatically.
- Smart Mapping. Automatic recognition of common feed structures, with a manual editor for anything custom.
- Smart Search inside the block editor with synonym handling and multi-language support.
- Native Gutenberg Product Picker block with live in-editor search.
- Responsive product grid with prices, brands, shipping, and your affiliate links.
- Background imports. Large feeds process without locking your admin.
- Nightly auto-sync and weekly full re-import, scheduled and quiet.
- Honest pricing. What the feed publishes is what visitors see. No silent currency assumptions.
- Works with any WordPress theme that supports the block editor.
A few things worth saying out loud
- No CSV downloads, no FTP, no spreadsheet uploads, no manual price updates.
- Self-hosted. The frontend never contacts an external service to render a product.
- If your program publishes a feed file you can download, MyFeeds will almost certainly import it.
Related paid plugins
This plugin is fully functional on its own. Separate, independent paid plugins called MyFeeds Pro and MyFeeds Business are available at myfeeds.site. They add things like a carousel block, a visual card designer with Google Fonts, click and conversion analytics, and a full multi-feed shop system. They are not required to use this plugin.
External Services
This plugin connects to external services only when the site administrator chooses to configure a feed that uses them. No external services are contacted on the frontend or for visitors.
AWIN Publisher API
When you add an AWIN feed in the WordPress admin, the plugin calls the AWIN Publisher API on your behalf to verify your publisher credentials, look up your approved advertisers, and resolve their feed download URLs so the import job knows where to pull the product feed from.
- What data is sent: your AWIN publisher ID, the advertiser ID, and your AWIN API key (passed as an HTTP header). No WordPress user data, no visitor data, and nothing from the frontend is transmitted.
- When it is sent: only in the WordPress admin, when you open the AWIN feed setup dialog, verify credentials, or trigger a feed refresh. No frontend page view ever calls this API.
- Where it is sent:
https://api.awin.com/, AWIN’s official publisher API endpoint. - Why: AWIN requires publishers to fetch feed download URLs via their API rather than hard-coding them, because the URLs are rotated and tied to your publisher account.
AWIN’s terms of service and privacy policy apply to this data exchange:
- Terms of Service: https://www.awin.com/gb/publisher-terms
- Privacy Policy: https://www.awin.com/gb/legal/privacy-policy
Configured product feed URL (your affiliate network)
To import products, the plugin downloads the feed file from the URL you save in the Feed Manager. The feed URL points to your affiliate network’s product feed export, in CSV, TSV, XML, or JSON format.
- What data is sent: an HTTP GET request to the feed URL with a
User-Agentheader identifying the WordPress site and plugin version. No publisher credentials, user data, or visitor data are sent in the request body. - When it is sent: in the WordPress admin only, when you click “Reimport”, and on the configured cron schedule (nightly quick sync and weekly full import). The frontend never calls the feed URL.
- Where it is sent: to the host in the feed URL you configure. The plugin does not share that URL with any third party.
Because the feed URL itself is provided by an affiliate network, the privacy and terms of that download are governed by that network. Please refer to your network’s terms of service and privacy policy for details on what they record about feed downloads.
No data is sent to any other external service. The plugin stores imported products in your own WordPress database and serves them from there; the frontend never contacts an external host to render a product.
Source Code
The full source for this plugin is open-source. See https://myfeeds.site for the project homepage and links to the public repository.
- Block editor source:
src/index.js - Build tool: terser via
npm run build(configuration inpackage.json)
To rebuild the editor bundle from source, run npm install && npm run build inside the plugin folder.
Screenshots

Live product grid inside a real blog post. Pick products in the editor, hit publish, and your readers see what the merchant is actually selling today, for as long as the post exists. 
Swipeable carousel layout (MyFeeds Pro). The same picker behind it, a second way to present what you’ve curated for image-heavy posts and roundups. 
Card design editor (MyFeeds Pro). Cards that look like your blog wrote them. One save, every card across every post catches up. The live editor opens more than this screen lets on. 
Full storefront on your own domain (MyFeeds Business). Visitors see your real online shop with categories, filters and sorting. The controls they already know from any modern shop, all on your domain. Every checkout goes through your affiliate link. 
Category manager (MyFeeds Business). A shop organised the way your readers shop. Build the tree once, then curate products into each category by hand. Smart keyword search behind the scenes; you stay the editor. 
Shop design editor (MyFeeds Business). Your storefront tracks your taste. A phone, tablet and laptop preview moves with you, so what you ship is exactly what your reader meets. The live editor carries plenty more.
Blocks
This plugin provides 1 block.
- Myfeeds Product Picker
Installation
- Upload the
myfeeds-affiliate-feed-managerfolder to the/wp-content/plugins/directory, or install the plugin directly from the WordPress plugin screen. - Activate the plugin through the Plugins screen in WordPress.
- Go to MyFeeds in your admin sidebar and click Add your first feed.
- Paste a product feed URL from your affiliate network and click Import.
- In the block editor, add the MyFeeds – Product Picker block to any post or page.
- Search for products, select them, and publish.
Where do I get a product feed URL?
Sign up with an affiliate network (such as AWIN, CJ Affiliate, Rakuten, or Impact), navigate to the product feed section (usually labelled “Create a feed” or “Product feeds”), and copy the feed URL.
FAQ
-
How long does an import take?
-
It depends on the feed size. A feed with 10,000 products typically takes 2–5 minutes. Imports run in the background via Action Scheduler, so you can keep working while they process.
-
Why are some products missing after import?
-
Only products with valid data (title, price, image, and affiliate link) are imported. Check your feed source for incomplete entries.
-
Does MyFeeds slow down my site?
-
No. All product data is stored locally in your WordPress database. The frontend makes no external API calls, so your site stays fast.
-
Does MyFeeds work with any theme?
-
Yes, it works with any WordPress theme that supports the Gutenberg block editor (WordPress 5.8+).
-
Can I use MyFeeds with the Classic Editor?
-
No. MyFeeds requires the block editor.
-
Which affiliate networks are supported?
-
If your affiliate program hands you a product feed URL you can download, MyFeeds will almost certainly read it. The plugin handles the common feed formats automatically and recognises the field structure that most networks use. For everything custom there’s a manual mapping editor inside the plugin.
-
Does the plugin make any external requests?
-
Yes. See External Services below. In short: when you add an AWIN feed, the plugin talks to the official AWIN Publisher API to confirm your credentials and look up feed URLs. No data leaves your site on the frontend.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“MyFeeds — Affiliate Product Feed Manager” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “MyFeeds — Affiliate Product Feed Manager” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.18
- Block editor: product images in the picker now match what visitors see on the published post. The selected-tile refresh endpoint, the colour-sibling swatch endpoint, and the product preview that runs on block mount all pipe their image URLs through the same CDN-aware upgrader the frontend renderer already uses, so a saved block can’t look soft in the editor while the published post renders crisp. Pure render-time logic, no migration.
- Smart mapper: generic hi-res image priority for custom and small-network feeds. Feeds that ship both a small
image_urland an explicit hi-res mirror (large_image,original_image,hires_image,full_image— with or without_urlsuffix) now pick up the hi-res variant on every sync path (Full Import, Quick Sync, Action Scheduler batches, single-feed reimports). Feeds with only a single image column behave exactly as before. AWIN priority is unchanged.
1.0.17
- Product images: render-time URL upgrade for the known CDNs. AWIN’s
images.productserve.com/preview/thumbnails get rewritten to the/large/mirror; Shopify size suffixes (_grande,_NNNxNNN, …) get bumped to_1024x1024; Cloudinary upload paths without a transformation getw_1024,q_auto,f_autoinjected; BigCommerce stencil paths bump to1024x1024; WordPress-NNNxNNNresize suffixes get stripped. Unknown URLs pass through untouched. Images go from soft thumbnail to crisp source on Retina displays without any cloud storage or extra account on your side. - AWIN feeds:
merchant_image_urlnow wins overaw_image_urleverywhere. The AWIN variant routes through their resized/preview/bucket; the merchant variant is the original-resolution mirror. The smart mapper used to prefer the AWIN one, which produced soft cards on every Retina display, and the importer’s force-overwrite pass would silently re-apply that choice on every Quick Sync. Both paths now converge on the merchant URL. - AWIN affiliate links:
aw_deep_linknow wins overmerchant_deep_linkeverywhere, in every sync path. The AWIN URL goes throughawin1.comso the commission gets attributed; the merchant URL is the merchant’s direct link with no AWIN involvement, so a click on it silently bypasses tracking and the publisher loses the commission. Same “last one wins” loop order in the force-overwrite map was silently overwriting the tracked URL on every Quick Sync. Replaced with explicit priority overrides inprocess_critical_fieldsso Full Import, Quick Sync, Action Scheduler batches and single-feed reimports all produce the same tracked URL. Existing rows where the untracked URL was already cached heal at the next nightly sync.
1.0.16
- Mapping Editor: new “Default currency” card at the bottom of the mapping grid. Pick an ISO 4217 three-letter code (USD, EUR, GBP, CHF, JPY, INR and many more, plus a custom code option) for feeds that silently omit a currency column. Without an override, silent-currency feeds used to land in the database with empty currency and the front-end rendered the price without a symbol. The override is saved together with the rest of the mapping when you click Save Mapping, so there’s still just one big save button to remember. Existing imported rows pick up the override at the next sync.
- Mapping Editor: three places that hardcoded “EUR” as a fallback are gone (class-batch-importer.php, class-feed-manager.php’s Single-Source-of-Truth path, and class-smart-mapper.php’s apply_fallbacks). All three used to stamp “EUR” on currency-less rows before the override could run, which made the new override invisible on USD-only feeds. Now currency stays empty through the entire mapping chain and the per-feed default fills it in at the right moment.
- Mapping Editor: layout polish. Field rows inside each section (Essential, Important, Product Attributes, Additional Info, etc.) are now sorted A-Z by label. “Available Feed Columns” pills and the per-field dropdown options are also sorted A-Z. The preview pane is a collapsible details element, closed by default, so the raw-JSON sample row no longer dominates the editor.
- Mapping Editor: drag and drop from a feed-column pill onto a field-mapping select now actually works. The pills had cursor: grab and looked draggable since 1.0.2 but had no JS handler. Native HTML5 dragstart -> dragover -> drop with dataTransfer payload and a hover highlight on the target select.
- Smart Search: tokens longer than three characters now get a trailing
*in the FULLTEXT match, so a query like “trouser” finds the same products and the same brand / colour / category facets as “trousers”. Earlier behaviour: the German-leaning stemmer was producing “trous” for “trouser” — neither form existed in the FT index, so the main search found rows via a fuzzy fallback but compute_facets returned zero buckets and the filter panel disappeared. Prefix-wildcard fixes both paths.
1.0.15
- Product Picker: colour-variant swatches now catch the case where the feed leaves the colour column empty but spells the colour out in the product name. Example from a real merchant: “Denim Tears Wreath Jean Short Light Wash – S” and “Denim Tears Wreath Jean Short Black – S” both arrive with empty colour and identical attributes; we now extract “Light Wash” and “Black” from the names themselves and present them as switchable swatches. Multi-word colour phrases (Light Wash, Dark Wash, Off White, Light Blue, Hot Pink, etc.) are matched longest-first so “Light Wash” wins over “Light”.
1.0.14
- Product Picker: the detail modal now shows clickable colour-variant swatches when a product has siblings in the same feed. Each swatch carries a thumbnail of that colour’s actual product image, the colour name, and the colour-dot indicator. Click a swatch and the modal switches to that variant — image, price, affiliate link and title update in place. Add-to-Selection then picks up the chosen variant. Single-colour products and feeds where no family can be detected fall back to the existing display-only colour pill. The home-page counts, importer counts, feed-list stats and search result dedup are untouched: this is purely additive on the detail-modal-open path.
- Product Picker: variant family detection uses a three-step strategy chain. First, an explicit family id from the feed’s raw payload (item_group_id, parent_sku, aw_group_id and friends). Second, exact product_name match within the same feed when at least two distinct colours exist (Carhartt-style merchants). Third, a conservative name-strip fallback that removes size suffixes and common colour words, then groups by the cleaned base — only triggered when the first two return nothing and the base is long enough that false-positives are unlikely. All matches are scoped to the same feed_id so colours never cross feeds.
1.0.13
- Product Picker: the product detail view (the “i” icon next to a search result) now centers inside the visible content area instead of the full viewport. The wp-admin sidebar stays uncovered, and the modal and its dark overlay only span the area to the right of it. JS measures the sidebar live (including when the block editor runs inside an iframe, by walking up to the parent admin document) and reapplies the offset on window resize.
1.0.12
- Feature preview pages: marketing copy rewritten across Shop, Card Design and Analytics. Em-dashes traded for periods so the cadence stops reading like AI. The card-design subtitle no longer leans on the “no CSS, no theme overrides, no broken mobile layouts” reassurance triplet that flagged in voice review. Benefit bullets moved from feature-listy to outcome-first (“Your blog gets a real storefront on its own domain. Visitors browse, click out, and you keep the commission.”) so the reader sees what changes for them, not what the feature is.
- Feature preview pages: defensive screenshot caption “No save-and-reload loop.” replaced with a positive description of what actually happens.
- Feature preview pages: the screenshot zoom lightbox now measures the wp-admin sidebar live with JavaScript and anchors its left edge to the sidebar’s right edge. The previous pixel-based offsets (160 / 36 / 0) didn’t survive custom admin themes, hover-expand of the auto-fold menu, or admin-theme plugins that set their body classes after first paint, so the overlay still covered the sidebar on some setups. The image now centers cleanly inside the visible content area regardless of which admin theme you run.
- Feature preview pages: CSS and JS now version themselves with file modification time, so a layout tweak between releases shows up on the next page load instead of waiting for the next plugin version bump.
1.0.10
- Listing copy: short description rewritten to name the actual mechanic up front. “Insert live affiliate product tiles into your posts. Prices and stock stay current, automatically.” The old version said “searchable product cards” which buried the visual format under a feature word.
- Listing copy: new bridge paragraph at the top of the long description makes the core mechanic visible in the first 50 words (“MyFeeds drops live product tiles into your posts. The prices, stock and links update themselves…”). The pain-first narrative below stays as-is.
- Listing copy: “What changes for you” now leads with a product-tile bullet so the visual nature of the plugin is no longer a paragraph-3 discovery.
- wp.org listing banners refreshed (772×250 + 1544×500) with a clearer subhead that mirrors the new copy.
1.0.9
- Mapping Editor: new intro card at the top of the page that frames the editor as a polish tool, not a setup step. Auto-mapping handles your columns at import time. You only open the editor when a feed shows less than 100% in the Quality column on the Feeds page, and the card links straight there.
- Mapping Editor: Apply Template, Save as Template, Auto-Detect and the modal Save Template button now share a coherent brand look (outlined indigo for secondary actions, gradient indigo for primary). The bare WordPress grey button no longer sits next to the brand-gradient Save Mapping CTA.
- Mapping Editor: deleting a template no longer fires a native browser confirm dialog. A brand-styled confirm modal asks once with the template name spelled out, and the destructive action uses a red gradient so it reads as different from the indigo save actions.
- Mapping Editor: every alert() in the editor is gone. Save, apply, delete and validation feedback now use auto-dismissing toast notices in the top-right corner, including a clean error message for network or server failures.
- Mapping Editor: deleting a template removes the row inline (fade-out, no page reload) and only triggers a refresh when the list becomes empty so the friendly empty state can render.
- Feature preview pages: the screenshot zoom lightbox now centers in the visible content area instead of the full viewport. The wp-admin sidebar (160px expanded, 36px folded, 0 on mobile) is accounted for, so a screenshot you click no longer drifts behind the menu on the left.
1.0.8
- Compatibility: tested with WordPress 7.0. No code changes — the new “Modern” admin theme renders MyFeeds screens cleanly, and the iframed editor falls back to non-iframe mode for posts containing the product-picker block (block-API v3 upgrade is a future-proofing item, not a regression).
1.0.7
- Smart Search: the result counter and the facet pills now report the same number of products the grid actually renders. Previously, every size variant of a product was tallied separately in the header total and in the brand/colour/category pills, so a search for “head” could promise “17 results” or “Bape (15)” and then deliver 5 and 3 once the result deduplicator collapsed the sizes. Counts now flow through the same size-suffix pipeline as the result set.
1.0.6
- Smart Search: fixed a recall bug where any query containing a short token (e.g. “air force 1” or “nike 1”) returned zero results because the FULLTEXT engine drops sub-min tokens from required clauses and the LIKE fallback was using a MySQL 5.x word-boundary regex that broke on 8.0.4+. Short tokens now AND-constrain the FULLTEXT match via a portable space-padded LIKE.
- Smart Search: quoted-phrase queries (“air force 1”) now use a substring LIKE constraint instead of a FULLTEXT phrase clause, so phrases that contain short tokens work too. Quote characters are also properly stripped before tokenization.
- Smart Search: phrase + filter combinations now honour the phrase in facet aggregation and the honest-total count, so the result number and the facet pills stay in sync when you have a quoted phrase active.
1.0.5
- Smart Search: the picker can now narrow a result set without leaving the page. Brand, colour, category and price all live as one-click filters with live counts that respect every other active filter. Sort by best match, price, biggest discount or newest.
- Smart Search: results-as-you-type. The picker refetches after a short pause so you stop having to hit Enter every time you change your mind.
- Smart Search: did-you-mean. Type “addidas” and the picker offers “adidas” instead of returning nothing. Powered by edit-distance against your own product vocabulary, so it learns from the feeds you import.
- Smart Search: phrase support. Put “nike air max” in double quotes and exact matches float to the top.
- Smart Search: smart query parser. Type “schwarze sneaker unter 80 euro im sale” and the price + sale intent get pulled out of the query automatically.
- Smart Search: visual colour picker. Tick a colour swatch instead of typing the colour name.
- Smart Search: recently used products show up as quick-insert chips before you type anything, so a product you used yesterday is one click away.
- Smart Search: honest result count. The total at the top now reflects the real number of products in your feed that match, not just the dedup’d top of the fetched batch.
- Smart Mapper: self-healing repair pass at every sync (previously released in 1.0.4) — corrects a stale mapping when a merchant drops a column instead of writing default values into your DB.
1.0.4
- Smart Mapper: self-healing repair pass. After the initial auto-map the mapper now checks each chosen source column against a real sample row. If the column is empty for that row, the mapper walks the full ranked candidate list and swaps in the next column that genuinely carries data. Same pass runs at the start of every sync so a stale mapping (column dropped by the merchant after the feed was first added) gets corrected before the import writes default values into the DB.
- Smart Mapper: kept-not-dropped policy. When no better alternative shows up in the inspected sample row, the existing mapping is kept rather than removed – the inspected row is one of thousands and the column may be populated for most products even if empty in the first row.
1.0.3
- Content Health: new read-only card on the MyFeeds page that surfaces published posts referencing products no longer in your feed. Shows the count, lists the affected post titles with how many products are missing each, and refreshes itself after every sync.
- Importer: Quick Sync now self-heals from a crashed background worker. If the worker is killed mid-feed (PHP timeout, host OOM, feed-download stall), a watchdog auto-cancels the stale “running” state after 5 minutes so the UI stops looping on a phantom progress bar.
- Importer: Cancel during a large batch is now respected. Previously a Cancel click that landed mid-feed could be silently overwritten by the in-flight batch finishing, leaving the UI showing IMPORTING for a sync that was actually done.
- Importer: each Quick Sync now writes a starting-feed and finished-feed log line so a future stall points directly at the culprit feed.
- Admin assets: per-file cache-buster so a single CSS or JS tweak invalidates the browser cache instantly between releases.
- Listing copy: short description and feature list rewritten to focus on what changes for you (prices stop lying, posts stop rotting, you publish faster) instead of technical plumbing.
1.0.2
- Mapping Editor: new pill-style mapping quality bar with three buckets (>=90 green, >=70 orange, <70 red) – same palette as the feed-status badges.
- Mapping Editor: click the quality bar to open a detail modal that lists every standard field with its actual source column from the feed (
<source_column>to<db_column>) plus per-field tier and missing-row counts. Makes it obvious when the mapper picked the wrong source slot. - Mapping Editor: fixed a stale “Select a feed” dropdown bug – entries left behind from older multi-feed installs are now filtered out and the option is self-healed on first render.
- Mapping Editor: long feed column names like
merchant_product_category_pathno longer push selects out of their card. Field rows now shrink correctly inside the grid. - Mapping Editor: bigger help icons with an instant on-hover tooltip that shows the field description (no more 1 second browser delay).
- Mapping Editor: redesigned with the plugin’s brand styling – cleaner cards, brand-accent panel titles, draggable pill-style column tags, focus rings, brand-gradient primary CTA.
- Plugins screen: added an Upgrade action link on the plugin row that points at myfeeds.site.
- New marketing preview pages for the Shop, Card Design and Analytics features – opened from the MyFeeds submenu, each shows a benefits overview and screenshots from the paid plugins.
- Cleanup: removed the legacy dismissible top banner and the in-plugin Contact Us page (use the wp.org support forum or myfeeds.site/contact instead).
- Internal: stripped emoji prefixes from debug-log lines.
1.0.1
- Importer: detect feed format from the URL (AWIN
format/csvpath, query strings like?format=csv, file extensions) so large AWIN datafeeds with 80+ columns no longer get misclassified. - Importer: format detection now reads 32 KB instead of 4 KB and walks the first unquoted line, so commas inside quoted product descriptions stop fooling the delimiter vote.
- Importer: network-agnostic product-id detection covers AWIN, CJ, ShareASale, Belboon, Impact, Webgains, Tradedoubler, Adcell, Daisycon, and standard EAN/GTIN/UPC/MPN keys out of the box.
- Importer: stop dropping
original_pricewhen the feed’s rrp/list price equals the current price. The mapping is preserved; the strike-through display still only kicks in when there is a real discount. - Importer: stop defaulting
currencyto EUR when the feed has no currency column. Empty stays empty so a USD merchant never shows “€” on cards that link to a USD checkout. - Smart Mapper: AWIN category mapping now probes
category_name,merchant_product_category_path,merchant_category,product_type, and the Fashion-feed taxonomy in order, so merchants that only fill the breadcrumb path get categorised correctly. - Card display: cap product-card z-indexes so they no longer punch through sticky theme headers.
- Card display: drive grid gap and padding from CSS variables (no visible change with defaults).
- Card display: remove mobile typography hardcodes that overrode user font-size settings; lock card line-height against host themes so prices stop inheriting oversized body line-heights.
1.0.0
- Initial release on WordPress.org.
- Universal CSV, TSV, XML, and JSON feed parser.
- Smart Mapping with automatic field detection and manual override.
- Smart Search with FULLTEXT indexing, synonym expansion, and German-language handling.
- MyFeeds – Product Picker Gutenberg block with a responsive grid layout.
- Background imports via the bundled Action Scheduler library.
- Nightly quick sync (active products) and weekly full import via WP-Cron.
- AWIN Publisher API integration for credential and feed-URL resolution.
