AstroBaaS

Integrations & channels

Marketplace Feed Syndication

Paid pluginsize Mplanned, not built

Indicative price, not an offer: EUR 200-350/year or EUR 400 one-off

Generated from docs/plan/paid/marketplace-feed-syndication/PLAN.md in the AstroBaaS repository. Nothing described below is implemented — it is the written plan for it.

Paid module that auto-generates and uploads product feeds to Google Shopping, Facebook Catalog, and TikTok Shop. Handles data transformation, validation, and scheduling without OAuth (merchants configure upload URLs manually).

The problem

Manual feed uploads to Google Shopping, Facebook, TikTok waste hours every week. Our CSV is in one format, Google Shopping wants another, and manual column mapping is error-prone. We need weekly feeds to stay current.

What it does

  • Feed templates for Google Shopping (title, description, GTIN, price, availability, shipping weight)
  • Feed templates for Facebook Catalog (product_id, name, description, image_url, price)
  • Feed templates for TikTok Shop (product_id, product_name, product_image, price, quantity)
  • Automatic field mapping (AstroBaaS product → template field)
  • Multi-language feed generation (one feed per language if configured)
  • Price currency conversion if needed
  • Inventory availability handling (in stock / out of stock flags)
  • Feed validation before upload (required fields, format errors, schema compliance)
  • Scheduled feed generation (daily, weekly, monthly via cron)
  • Feed upload via URL (direct HTTP POST to platform)
  • Feed version history (last 10 versions retained for rollback)
  • Tax category assignment per product

What it deliberately does NOT do

Each boundary carries its reason. A boundary without a reason gets crossed by the next person who reads this.

  • Manual feed URL entry UI per merchant (reason: URL management belongs to paid integration addon)
  • Platform policy validation (reason: platform rules change weekly; belongs to support tier)
  • Dynamic pricing feeds (reason: belongs to paid pricing optimization addon)
  • Real-time feed updates (reason: syndication is batch-based; real-time sync is social-shop-sync module)
  • Feed analytics (impressions per product) (reason: belongs to paid analytics addon)

Data model

Migration required. New tables: feed_templates (platform, merchant_id, field_mappings JSON, schedule, upload_url). feed_history (template_id, generated_at, record_count, file_path, status, upload_status). New fields: product.google_category, product.facebook_category, product.tiktok_category.

API

  • POST /admin/feed-syndication/templates
  • GET /admin/feed-syndication/templates/:id
  • PATCH /admin/feed-syndication/templates/:id
  • POST /admin/feed-syndication/generate-now
  • GET /admin/feed-syndication/status
  • GET /admin/feed-syndication/history
  • GET /admin/feed-syndication/download/:id
  • PATCH /admin/products/:id/feed-categories

Every route added here must also appear in src/pages/openapi.json.ts — a test fails the build if it does not.

Admin

Feed template builder with visual field mapping (AstroBaaS column → template field). Feed preview (first 10 rows). Schedule configuration (cron-like UI). Feed upload log (success/failure per platform). Validation error report (products failing schema). Feed version selector (rollback to previous version).

The seam — why this is paid

Core owns product catalog and export API. Paid pack owns feed templates, field mapping, and upload scheduling. Core provides product data; paid pack transforms and validates for each platform. Core audit log tracks changes; paid pack logs all feed generations and uploads.

Requires marketplace account credentials (Google Shopping, Facebook, eBay). Paid for feed transformation and validation support.

Dependencies

  • Core product catalog API (must be exportable with filtering)
  • Scheduler system (for timed feed generation)
  • Storage system (to save generated feeds and history)

Acceptance checks

Each of these must be able to fail. Before claiming this is done, break the code deliberately and watch each one go red.

  • A product is included in Google Shopping feed if it has title, description, price, and at least one image
  • A product missing required fields is logged in validation report and excluded from feed
  • Feed generation for 10,000 products completes in < 30 seconds
  • Generated feed passes validation against platform schema (tool confirms compliance)
  • If feed upload fails (e.g., platform server down), next scheduled generation retries automatically
  • A feed includes only products marked as active/published
  • Tax category maps correctly (AstroBaaS tax class → Google/Facebook/TikTok category ID)
  • Price in feed reflects shop currency (not per-variant currency)

Risks

If field mapping is wrong, products are rejected by platforms (e.g., price formatted as ‘19.99 EUR’ instead of ‘19.99’). If feed generation is too slow, scheduled syncs are missed. If old versions aren’t retained, can’t recover from platform rejections. If validation is incomplete, malformed feeds upload and get silently rejected. If product filtering is wrong, dead products appear in feed.

Commercial context

Suggested priceEUR 200-350/year or EUR 400 one-off
Rival anchorMirasvit Advanced Product Feeds (50+ templates)

The anchor is what the nearest equivalent charges on Shopify or Magento today. It is context for a pricing decision, not the decision.


Generated from the commerce plan. See docs/COMMERCE-PLAN.md for the full catalogue and ../../AI-GUIDE.md for how to work on this repository.