mirror of
https://github.com/wearepixel/laravel-facebook-feed.git
synced 2026-11-14 13:51:42 +00:00
85 lines
2.9 KiB
Markdown
85 lines
2.9 KiB
Markdown
# Laravel Facebook Feed
|
|
|
|
[](https://packagist.org/packages/wearepixel/laravel-facebook-feed)
|
|
[](https://github.com/wearepixel/laravel-facebook-feed/actions/workflows/tests.yml)
|
|
[](https://packagist.org/packages/wearepixel/laravel-facebook-feed)
|
|
[](https://packagist.org/packages/wearepixel/laravel-facebook-feed)
|
|
[](https://packagist.org/packages/wearepixel/laravel-facebook-feed)
|
|
|
|
A simple package to easily create an XML feed for the Facebook Catalog API to parse and retrieve your products.
|
|
|
|
We recommend adding this to an API controller and generating it on the fly so your feed is always up to date.
|
|
|
|
## Requirements
|
|
|
|
- PHP 8.4+
|
|
- Laravel 10, 11, or 12
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
composer require wearepixel/laravel-facebook-feed
|
|
```
|
|
|
|
## Usage
|
|
|
|
```php
|
|
use Wearepixel\LaravelFacebookFeed\LaravelFacebookFeed;
|
|
|
|
$feed = LaravelFacebookFeed::init(
|
|
title: 'My Store',
|
|
description: 'My store product feed',
|
|
link: 'https://mystore.com',
|
|
);
|
|
|
|
$feed->addItem([
|
|
'id' => 'item_001',
|
|
'title' => 'Blue Nikes',
|
|
'link' => 'https://mystore.com/products/blue-nikes',
|
|
'price' => '29.99 AUD',
|
|
'image_link' => 'https://mystore.com/images/blue-nikes-001.jpg',
|
|
]);
|
|
|
|
return $feed->generate();
|
|
```
|
|
|
|
### Required item fields
|
|
|
|
| Field | Description |
|
|
| ------------ | ------------------------------------------------ |
|
|
| `id` | Unique product identifier |
|
|
| `title` | Product name |
|
|
| `link` | URL to the product page |
|
|
| `price` | Price including currency code (e.g. `29.99 AUD`) |
|
|
| `image_link` | URL to the main product image |
|
|
|
|
Any additional fields supported by the [Facebook Product Feed Specification](https://www.facebook.com/business/help/120325381656392) can be passed alongside the required fields.
|
|
|
|
### Methods
|
|
|
|
**`LaravelFacebookFeed::init(string $title, string $description, string $link): static`**
|
|
|
|
Creates a new feed instance with channel metadata.
|
|
|
|
**`$feed->addItem(array $item): void`**
|
|
|
|
Adds a product to the feed. Throws `MissingRequiredFieldException` if any required field is absent.
|
|
|
|
**`$feed->toXml(): string`**
|
|
|
|
Returns the feed as an XML string.
|
|
|
|
**`$feed->generate(): Response`**
|
|
|
|
Returns an HTTP response with the XML content and `application/rss+xml` content type. Suitable for returning directly from a controller.
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
composer test
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|