Generate product catalog feeds for Google Shopping, Meta/Facebook, Pinterest, and TikTok from any Laravel app. Ships with a built-in admin UI at /feedify, batch XML/CSV/TSV generation, scheduled refresh, attribute mapping, and a Fortify-style ProductRepository contract so you can plug in your own ca

Maintainers

Package info

github.com/ShahariarAhmad/Feedify

Homepage

Issues

pkg:composer/shahariarahmad/feedify

Transparency log

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

v2.0.0 2026-07-23 10:30 UTC

This package is auto-updated.

Last update: 2026-08-23 10:35:26 UTC


README

Latest Version on Packagist Total Downloads License GitHub Stars

composer require shahariar-ahmad/feedify

What is Feedify?

Feedify is a Laravel package that generates product catalog feeds for advertising and shopping channels — Google Shopping, Meta (Facebook / Instagram), Pinterest, TikTok, and custom merchants.

Install it into any Laravel project, open /feedify, create a feed, and get a public URL (XML/CSV/TSV/…) you can paste into Google Merchant Center, Meta Commerce Manager, or similar platforms.

It is designed like:

  • opcodesio/log-viewer — ships its own admin UI at a package route (no UI to build per project)
  • Laravel Fortify — headless contracts (ProductRepository, Feedify::auth()) so you plug in your catalog and access rules

Works with Bagisto, Lunar, custom e‑commerce, or a simple product table via the repository contract.

What you get

Area Details
Admin UI Manage feeds, make feed, mappings, settings, status — at /feedify
API JSON API under /feedify/api/* for generation and CRUD
Formats XML (RSS/g: for Google & Meta), CSV, TSV, TXT, JSON
Catalog Default feedify_products table or your own ProductRepository
Scale Batch generation + optional scheduled refresh via Laravel queue/scheduler
Compliance Meta catalog field formats (in stock, 19.99 USD, g: XML tags)

Who it’s for

  • Laravel store owners who need Google Merchant Center / Meta catalog feeds
  • Developers who want one reusable feed package across many Laravel projects
  • Teams that need a publishable feed URL for shopping platforms

Features

  • Built-in admin UI at /feedify — Log Viewer style; publish assets once, use everywhere
  • No host-app frontend — developers don’t rebuild feed UI per project
  • Fortify-style extensionFeedify::auth() and Feedify::useProductRepository()
  • Works with any catalog — implement ProductRepository + map to ProductDto
  • Multi-merchant templates — Google, Facebook/Meta, Pinterest, TikTok, Custom
  • Multiple export formats — XML, CSV, TSV, TXT, JSON (Meta: XML/CSV/TSV/TXT)
  • Batch + queue generation — large catalogs via per-batch processing and GenerateFeedJob
  • Scheduled auto-refresh — enable feed status; Laravel scheduler regenerates feeds
  • Mappings — attribute, category, dynamic attributes, and option mappings
  • Public feed URLs/feeds/{provider}/{type}/{filename} for merchant platforms
  • Meta catalog compliant — RSS + g: namespace, spaced availability, ISO price format
  • REST generation API — save config → get product IDs → batch generate → save file
  • EventsFeedGenerating, FeedGenerated, FeedFailed for hooks (CDN, notify, upload)
  • Laravel 10–12 — auto-discovered service provider

Requirements

PHP 8.2+
Laravel 10, 11, or 12
Database MySQL, PostgreSQL, SQLite, etc.

Installation

composer require shahariar-ahmad/feedify

Publish config and assets, run migrations:

php artisan feedify:publish
php artisan migrate

Optional — seed sample products for testing:

php artisan feedify:seed-products

Open the admin UI:

https://your-app.test/feedify

Laravel auto-discovers FeedifyServiceProvider. No manual registration needed.

Quick start

1. Protect the admin UI (production)

In App\Providers\AppServiceProvider::boot:

use Feedify\Facades\Feedify;

Feedify::auth(fn ($request) => $request->user()?->can('manage-feeds'));

2. Create a feed

  1. Visit /feedify
  2. Go to Make Feed
  3. Choose merchant (e.g. Google or Facebook)
  4. Choose format (XML recommended)
  5. Click Save & generate

3. Use the feed URL

Generated files are available at:

/feeds/{provider}/{type}/{filename}.{ext}

Example:

https://your-app.test/feeds/google/xml/google_feed.xml

Paste this URL into Google Merchant Center or Meta Commerce Manager.

Connect your product catalog

By default Feedify uses the feedify_products table. For a real store, bind your own repository:

use Feedify\Facades\Feedify;

Feedify::useProductRepository(\App\Feedify\MyCatalogRepository::class);

Implement Feedify\Contracts\ProductRepository and map your models to Feedify\DTO\ProductDto.

→ Full guide: docs/custom-catalog.md

Configuration

Publish config:

php artisan vendor:publish --tag=feedify-config

Common environment variables:

Variable Default Description
FEEDIFY_PATH feedify Admin UI + API base path
FEEDIFY_DISK local Storage disk for feed files
FEEDIFY_PER_BATCH 200 Products per generation batch
FEEDIFY_SCHEDULE_INTERVAL 86400 Auto-refresh interval (seconds)

→ Full reference: docs/configuration.md

Artisan commands

Command Description
php artisan feedify:publish Publish config + UI assets
php artisan feedify:seed-products Insert sample products
php artisan feedify:generate Generate all feeds
php artisan feedify:generate {slug} --sync Generate one feed synchronously
php artisan feedify:generate --scheduled Generate feeds with scheduling enabled

Ensure Laravel scheduler is running in production:

* * * * * cd /path-to-app && php artisan schedule:run >> /dev/null 2>&1

Supported merchants

Merchant Key Formats
Google Shopping google XML, CSV, TSV, TXT, JSON
Facebook / Meta facebook XML, CSV, TSV, TXT
Pinterest pinterest XML, CSV, TSV, TXT, JSON
TikTok tiktok XML, CSV, TSV, TXT, JSON
Custom custom XML, CSV, TSV, TXT, JSON

→ Field specs & Meta notes: docs/merchants.md

Events

Hook into feed lifecycle:

use Feedify\Events\FeedGenerated;
use Feedify\Events\FeedGenerating;
use Feedify\Events\FeedFailed;

Event::listen(FeedGenerated::class, function ($event) {
    // Notify, upload to CDN, etc.
});
Event Fired when
FeedGenerating Full generation starts
FeedGenerated File written successfully
FeedFailed Generation throws an exception

Documentation

Document Contents
Installation Path repo, publish tags, production checklist
Configuration All config keys, env vars, publish tags
API reference REST endpoints (/feedify/api/*)
Architecture Pipeline, database, package layout
Custom catalog ProductRepository + ProductDto
Merchants Google, Meta, Pinterest, TikTok specs
Troubleshooting Common errors and fixes
Changelog Release history

Testing

composer install
composer test

The test suite covers feed generation, API pipeline, Meta catalog compliance, auth, and repository filters.

License

The MIT License (MIT). See LICENSE.