PHPackages                             jreinke/magento2-google-shopping-feed - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. jreinke/magento2-google-shopping-feed

ActiveMagento2-module[File &amp; Storage](/categories/file-storage)

jreinke/magento2-google-shopping-feed
=====================================

This module provides a google shopping product feed csv export.

093PHP

Since Jul 1Pushed 2y agoCompare

[ Source](https://github.com/jreinke/Magento-2-Google-Shopping-Feed)[ Packagist](https://packagist.org/packages/jreinke/magento2-google-shopping-feed)[ RSS](/packages/jreinke-magento2-google-shopping-feed/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

General
-------

[](#general)

Generate feed with product data.

Installations
-------------

[](#installations)

```
composer require jreinke/magento2-google-shopping-feed
bin/magento setup:upgrade

```

Features
--------

[](#features)

### Feed generation

[](#feed-generation)

Generate product feed every 2 hours with minimal required attributes, for each storeview.
Places file into `pub/run_as_root/feed/%s_store_%s_feed.csv`.

Technical Specification
-----------------------

[](#technical-specification)

### Commands

[](#commands)

groupcommanddescriptionrun\_as\_rootrun\_as\_root:product-feed:executeRuns feed generation for all store views.### Crons

[](#crons)

groupcronjobdescriptiondefaultrun\_as\_root\_product\_feed\_exporter\_cronRuns feed generation based on `run_as_root_product_feed/general/cron_schedule` config - default each 15 minutes### Entities

[](#entities)

#### Attribute config

[](#attribute-config)

DTO: `\RunAsRoot\GoogleShoppingFeed\Data\AttributeConfigData`

Incapsulates the next information:

- attribute name/code
- handler class

List of attributes configurations can be found here: `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`

### Data providers

[](#data-providers)

#### `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributesConfigListProvider`

[](#runasrootgoogleshoppingfeeddataproviderattributesconfiglistprovider)

Provides the list of DTOs ( `AttributeConfigData` ).
Used for CSV row data mapping from product - provides information regarding attributes that should be taken from the product and in wich way (handler).
See configuration list here: `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`

#### `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlerProvider`

[](#runasrootgoogleshoppingfeeddataproviderattributehandlerprovider)

Provides attribute data provider (handler) of type `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlers\AttributeHandlerInterface`, by `AttributeConfigData` DTO.

#### `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlers\AttributeHandlerInterface`

[](#runasrootgoogleshoppingfeeddataproviderattributehandlersattributehandlerinterface)

Generic interface for attribute data providers.
Each attribute has its own data provider, that incapsulates current interface.
Data provider for specific attribute is configured here `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`.

### Services

[](#services)

#### `\RunAsRoot\GoogleShoppingFeed\Service\GenerateFeedService`

[](#runasrootgoogleshoppingfeedservicegeneratefeedservice)

Perform feed generation for all storeviews with enabled feed generation.
`\RunAsRoot\GoogleShoppingFeed\Service\GenerateFeedService` is injected.

#### `\RunAsRoot\GoogleShoppingFeed\Service\GenerateFeedService`

[](#runasrootgoogleshoppingfeedservicegeneratefeedservice-1)

Generate feed for specific store, based on feed enable\*disable configuration.
Incapsulates attributes config provider `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributesConfigListProvider` and csv row mapper `\RunAsRoot\GoogleShoppingFeed\Mapper\ProductToFeedAttributesRowMapper`.
Performs iteration on all products provided by this collection provider `\RunAsRoot\GoogleShoppingFeed\CollectionProvider\SimpleProductsCollectionProvider` and adds rows into the CSV file.

Configuration
-------------

[](#configuration)

tabgroupsectionfieldrun\_as\_rootgeneralProduct Feed ExporterEnablerun\_as\_rootgeneralProduct Feed ExporterCron Schedulerun\_as\_rootgeneralProduct Feed ExporterCategory Whitelistrun\_as\_rootgeneralProduct Feed ExporterCategory BlacklistExtensability points
--------------------

[](#extensability-points)

### Add new attribute to feed

[](#add-new-attribute-to-feed)

1. Create new attribute data provider. @see interface `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlers\AttributeHandlerInterface`.
2. Add configuration for new attribute in `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`.

Google Shopping Feeds Grid
--------------------------

[](#google-shopping-feeds-grid)

Generated feeds could be reviewed inside Admin Backoffice

- Navigate to Marketing -&gt; run\_as\_root -&gt; Google Shopping Feed

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity22

Early-stage or recently created project

 Bus Factor1

Top contributor holds 60% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/59621af480ac1b02234043e4708fc99289a8533be2d029c631afea0fe77c4a4d?d=identicon)[jreinke](/maintainers/jreinke)

---

Top Contributors

[![jreinke](https://avatars.githubusercontent.com/u/598419?v=4)](https://github.com/jreinke "jreinke (6 commits)")[![DavidLambauer](https://avatars.githubusercontent.com/u/1841317?v=4)](https://github.com/DavidLambauer "DavidLambauer (4 commits)")

### Embed Badge

![Health badge](/badges/jreinke-magento2-google-shopping-feed/health.svg)

```
[![Health](https://phpackages.com/badges/jreinke-magento2-google-shopping-feed/health.svg)](https://phpackages.com/packages/jreinke-magento2-google-shopping-feed)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[google/cloud-storage

Cloud Storage Client for PHP

34390.8M125](/packages/google-cloud-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15261.6M2.6k](/packages/illuminate-filesystem)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
