ccharz/laravel-openfoodfacts-reader is a Laravel package for get openfoodfacts product infos.
It currently has 0 GitHub stars and 3 downloads on Packagist (latest version v0.1.0).
Install it with composer require ccharz/laravel-openfoodfacts-reader.
Discover more Laravel packages by ccharz
or browse all Laravel packages to compare alternatives.
Last updated
Get product data from openfoodsfacts with a local driver and an api driver.
Laravel Openfoodfacts Reader requires PHP 8.2+ and Laravel 10.
If you use the local driver currently around 50 GB of disk space are required.
Install the package by
composer require ccharz/laravel-openfoodfacts-reader
This driver uses data imported from the official jsonl export from openfoodfacts. Keep in mind that the decompressed files has ~3.5 Million Products and take up to 50GB of storage at the moment.
First publish the migrations using
php artisan vendor:publish --tag openfoodfactsreader-migrations
Run php artisan migrate to migrate your database.
gunzip openfoodfacts-products.jsonl.gz)php artisan openfoodfactsreader:import openfoodfacts-products.jsonl
(asserting the decompressed file exists in the root folder of your application).
namespace App\Models;
use Ccharz\LaravelOpenfoodfactsReader\Driver\Local\OpenfoodfactsProduct as BaseOpenfoodfactsProduct;
class OpenfoodfactsProduct extends BaseOpenfoodfactsProduct
{
...
In the config file of the package you can specify your class:
// config/openfoodfactsreader.php
...
'model' => App\Models\OpenfoodfactsProduct::class
...
This driver uses the official v2 api.
Publish the configuration using
php artisan vendor:publish --tag openfoodfactsreader-config
and set the user agent. The User-Agent should be in the form of AppName/Version (ContactEmail). For example, MyApp/1.0 ([email protected]).
/** @var Ccharz\LaravelOpenfoodfactsReader\Driver\Local\OpenfoodfactsProduct $product */
$product = app(LaravelOpenfoodfactsReader::class)->product('737628064502');
You can access the product data via the data method of the OpenfoodfactsProduct Model.
You can either use the default driver configured in the config file or specify it using the driver method.
app(LaravelOpenfoodfactsReader::class)->driver('local')->product('737628064502');
app(LaravelOpenfoodfactsReader::class)->driver('v2')->product('737628064502');