What's new

← Back to GiftPickr

2026-05-26

  • Rakuten Etsy MID 54054 — Settings hint for Etsy Affiliate UK + IE; health check compares your saved MID and runs a broad Product Search probe to separate empty Etsy feeds from bad tokens.
  • Rakuten XML parse — Single-product API responses are parsed correctly (fixes false “0 results” when only one item is returned).
  • Etsy health check diagnostics — Failed Rakuten tests now show TotalMatches=0 vs parse errors and clearer MID guidance (program MID, not OAuth Client ID).
  • API settings health checks — Admin → API settings can run live Amazon/Etsy catalogue probes (plus OpenAI key check) and show item counts with a sample product title.
  • Blog product picks — AI blog now uses real Amazon/Etsy product listings only (no generic “ideas for …” search links). Blurbs are written to match each product; live posts and the editor show Amazon/Etsy pill badges.
  • Blog catalogue URL fix — Product matching accepts the same Rakuten/Etsy affiliate links and Amazon ASIN fallbacks as the gift finder (fixes “Could not find real product listings” when shops were working).
  • Blog catalogue parity — Blog AI now uses the same `giftpickr_gift_build_catalog_pool()` + ranking as the homepage gift finder, with a fallback to `giftpickr_gift_search_initial()` if the pool path returns nothing.
  • Blog AI draft save crash — Fixed fatal error when Amazon catalogue returns eligibility `null` (pool passed as null into Etsy balance); clearer client error when save fails.
  • Blog products via gift finder — Blog AI now loads products through `giftpickr_gift_search_initial()` first (same as homepage), not 20 separate weak keyword searches.
  • Real product links only — Removed fake “Stylish Leather Wallet” cards that opened Amazon/Etsy search pages when the catalogue API returned nothing; homepage and blog now show errors or real `/dp/` / listing URLs only.
  • Selective blog regenerate — On blog edit, choose what to regenerate: article text, product picks, and/or content blocks (slug and publish status unchanged).
  • Homepage trust highlights — Four hero points are now icon cards (updated daily, curated, no sign-up, secure) instead of a plain list.
  • How it works layout — Three steps are icon cards in one row (chat, list, bag icons) instead of a numbered list.
  • Gift guide shortcuts — Clicking a browse guide card on the homepage runs a search and shows results (prefills interests, age, sex, and budget where relevant).
  • Result cards — Product cards use equal-height layout with aligned “View on …” buttons at the bottom.
  • Blog affiliate links — Featured pick URLs and http(s) links in post body are wrapped with the same affiliate logic as the gift finder when a post is viewed (admin still stores clean merchant URLs).
  • AI blog drafts — Admin “Generate with AI” writes title, body, and featured picks from Amazon/Etsy catalogue search; optional countdown, share, and view-counter blocks.
  • Blog content blocks — Add countdown, social share buttons, and view counter blocks (before/after article or after picks). Run DB migration `2026-05-26-blog-blocks-views`.
  • Admin blog AI URL — API base from `/public/admin/` pages now points at `/public/api/` (fixes 404 on blog generate).
  • Blog AI API 500 fix — Admin CSRF helpers moved to `includes/auth.php` so `/api/admin-blog-generate.php` no longer fatals; errors return JSON.
  • Blog AI API URL (docroot) — API base is resolved from `DOCUMENT_ROOT` so Hostinger (`public/` as web root) uses `/api/` not `/public/api/` (fixes HTML 200 instead of JSON).
  • Blog AI progress loader — Generate draft shows a progress bar and step checklist (AI writing, catalogue search per product, blocks) via live server updates.
  • Fix double /api/api/ URLs — Corrected API base path detection (fixes gift search 404 and blog catalogue lookup on Hostinger).
  • Blog AI loader overlay — Generation progress now covers the full screen (centred modal) instead of sitting at the bottom of the page.
  • Blog AI progress UX — Redesigned loader (spinner, progress bar, step checks); progress updates after each shop search so it no longer appears stuck at 84%; pulse while waiting on slow APIs.
  • Blog AI draft handoff — Stream ends with a small `draft_id`; draft saved under `data/blog_drafts/` and loaded via POST into the editor (fixes session/host and “No result returned” issues).
  • AI blog (admin) — New **AI blog** flow saves an unpublished post to the database and opens the editor; no inline form fill. Catalogue search optional — article still saves if shop APIs return no products.
  • AI blog catalogue search — Uses the homepage gift finder pipeline: OpenAI search queries, shared catalogue pool, and affiliate search-link fallback when the Creators API returns nothing.
  • AI blog Etsy mix — When Etsy is enabled, targets ~⅓ Etsy picks (extra Etsy searches, balanced selection, Etsy affiliate links if the Rakuten API returns nothing).
  • Regenerate blog draft — On blog edit, **Regenerate with AI** re-runs generation and updates the saved draft (keeps slug and publish status).
  • What's new page — Public `/whats-new` reads `CHANGELOG.md`; footer links added site-wide.
  • Fixed newsletter signup not closing — Cancel/backdrop/`hidden` conflicted with modal CSS; added proper open/close state, × button, and Escape.
  • Etsy vs Amazon labels on results — Cards show shop badge and “View on Etsy/Amazon”; retailer inferred from URL when missing (cached/Rakuten links).
  • Updated UX (light theme) — More spacing, softer `#fff` / `#fafafa` / `#f5f5f5` backgrounds, simpler cards, stronger headings. Secret Santa page stays dark.
  • Slimmer gift finder form — Main fields first; optional details collapsed under “Fine-tune”.
  • Multi-retailer affiliates (backend) — Server-side affiliate links for Amazon + Etsy (Rakuten deeplinks + product search). Admin toggles for enabled shops. No Rakuten Automate JS snippet on site.