mage-os / module-shopping-feed
Product feed generation for Mage-OS and Magento Open Source, including Google Shopping, Local Inventory, and Promotions.
Package info
github.com/mage-os-lab/module-shopping-feed
Type:magento2-module
pkg:composer/mage-os/module-shopping-feed
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- magento/framework: ^103.0.6-p15
- magento/module-backend: >=100.0 <200.0
- magento/module-bundle: >=100.0 <200.0
- magento/module-catalog: >=100.0 <200.0
- magento/module-catalog-inventory: >=100.0 <200.0
- magento/module-catalog-rule: >=100.0 <200.0
- magento/module-config: >=100.0 <200.0
- magento/module-configurable-product: >=100.0 <200.0
- magento/module-customer: >=100.0 <200.0
- magento/module-directory: >=100.0 <200.0
- magento/module-downloadable: >=100.0 <200.0
- magento/module-eav: >=100.0 <200.0
- magento/module-grouped-product: >=100.0 <200.0
- magento/module-msrp: >=100.0 <200.0
- magento/module-quote: >=100.0 <200.0
- magento/module-review: >=100.0 <200.0
- magento/module-sales-rule: >=100.0 <200.0
- magento/module-shipping: >=100.0 <200.0
- magento/module-store: >=100.0 <200.0
- magento/module-tax: >=100.0 <200.0
- magento/module-ui: >=100.0 <200.0
- magento/module-url-rewrite: >=100.0 <200.0
- magento/module-weee: >=100.0 <200.0
- monolog/monolog: ^2.0 || ^3.0
- psr/log: ^1.0 || ^2.0 || ^3.0
- symfony/console: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
None
Suggests
- magento/module-inventory-api: Enables Multi-Source Inventory support and Google Local Inventory feeds.
- magento/module-inventory-sales-api: Enables stock resolution and reservation-aware quantities.
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-30 17:55:07 UTC
README
Version 1.1.0 adds optional Nebula Admin support, safer upload and queue handling, corrected Google feed output, guest tier pricing, consistent variant grouping, and configurable custom output. Read the 1.1.0 release notes and upgrade checklist.
MageOS_ShoppingFeed generates product feeds for Mage-OS and Magento Open Source.
This repository consolidates four related Rocket Web modules into one independently named Mage-OS module:
- Generic product feeds
- Google Shopping feeds
- Google Local Inventory feeds, including optional Multi-Source Inventory support
- Google Promotions feeds
Current integrations include configurable-product deep links, schema.org offer data for Automatic Item Updates, Google Ads view_item events, gzip transfer over FTP or SFTP, reservation-aware MSI quantities, and explicit MSI source-to-Google-store mapping.
The package has its own Composer name, PHP namespace, Magento module name, database tables, configuration paths, routes, cron group, event names, JavaScript aliases, and default output names. It does not replace or mutate an installed Rocket Web package.
Status
Version 1.1.0 is the current stable release. Existing Rocket Web installations are not migrated automatically. Read MIGRATION.md before evaluating it on a store that already uses a Rocket Web shopping feed module.
The release retains custom feed mapping and Hyva/Luma deep links while correcting identifier defaults, backorder dates, Local Inventory statuses, and CSV serialization. Existing Google mappings need review, comma-feed recipients must accept quoted CSV, and setup:upgrade is required for the upload-password column and feed-search index. See the changelog, Google/custom-feed acceptance report, and issue acceptance report. Historical 1.0.0 notes remain available.
Run ACCEPTANCE-TEST-PLAN.md against the exact release candidate before enabling production schedules or uploads.
Requirements
- A currently supported Mage-OS or Magento Open Source release with
magento/framework103.0.6-p15 or later in the 103.x series - A PHP version supported by the selected platform release, within PHP 8.1 through PHP 8.5
- Magento cron when scheduled feed generation is enabled
- Magento Multi-Source Inventory APIs for source-level Local Inventory feeds
Mage-OS 3.4.0, based on Magento Open Source 2.4.9, is an explicit CI compatibility target. Its production checks install the package into a Mage-OS 3.4.0 project, then run the unit and integration suites, Magento coding standard, and dependency-injection compilation.
Mage-OS 3.5.0 on PHP 8.4.24 was also verified locally on Magebox with Hyva: a complete 160-row storefront feed, all exported prices and stock values, and all 38 available configurable deep links passed the recorded checks. This local evidence is separate from CI and Merchant Center acceptance.
The module supports Magento's standard Admin grid and an optional native Nebula Admin grid. With Nebula enabled, feed editing, previews, and logs open in the standard Admin layout so the complete existing editor remains available; returning to the list restores Nebula. No Nebula dependency is required for standard installations. See the Admin compatibility acceptance report for the tested versions and limits.
A fresh Mage-OS 3.5.0 installation with no Nebula packages also passed Composer installation, schema upgrades, DI compilation, production-mode generation, and standard Admin browser checks. See the installation without Nebula report.
Installation
Install the 1.1 release line from Packagist:
composer require 'mage-os/module-shopping-feed:^1.1'
bin/magento module:enable MageOS_ShoppingFeed
bin/magento setup:upgrade
bin/magento cache:clean
For a source checkout, place or symlink the repository at app/code/MageOS/ShoppingFeed, then run the Magento commands above without composer require.
Use
Manage feeds in the Admin under Catalog > Mage-OS Shopping Feed > Feeds Management.
Global settings are under Stores > Configuration > Mage-OS > Mage-OS Shopping Feed.
The module registers two CLI commands:
# Build queued feeds, a specific feed, or one test SKU bin/magento mage-os:shopping-feed:generate [feed_id] [test_sku] # Create feed-generation queue entries from configured schedules bin/magento mage-os:shopping-feed:schedule
The dedicated mageos_shopping_feed cron group schedules feeds hourly and processes its queue every minute by default.
Feed output is restricted to pub/media/mageos-shopping-feed and its safe subdirectories. Files are publicly downloadable for recipient fetches; default filenames contain the feed ID and are predictable. FTP or SFTP upload leaves that public local copy in place. Export only data intended for public distribution. Per-feed logs are restricted to var/log and use mageos_shopping_feed_*.log by default.
Documentation
For setup and troubleshooting, use the Shopping Feed support bot on Rocket Web. Select Open support chat on the product page.
The public GitHub Wiki is published separately; it does not automatically update when this repository changes. The reviewable GitHub Wiki source is under docs/wiki, starting with Home.md. Documentation contributors should update that source and follow docs/WIKI-MAINTENANCE.md rather than editing the public wiki independently.
Development validation
Run the dependency-free consolidation checks and PHP syntax checks from the repository root:
composer validate --strict --no-check-publish php dev/tests/validate.php php dev/tests/validate-wiki.php find . -path './.git' -prune -o -type f \( -name '*.php' -o -name '*.phtml' \) -print0 | xargs -0 -n1 php -l
Validate every Magento XML file against the schemas from an existing Magento or Mage-OS checkout:
php dev/tests/validate-magento-xml.php /path/to/magento
Run the imported and modernized unit suite with the PHPUnit installation from that checkout:
MAGENTO_ROOT=/path/to/magento /path/to/magento/vendor/bin/phpunit -c phpunit.xml.dist
The unit-test bootstrap loads Magento's test framework and the module directly, so the module does not need to be installed in the validation checkout. CI also installs the package into currently supported Magento Open Source releases and explicitly into Mage-OS 3.4.0, runs the unit and integration suites, checks the Magento coding standard, and compiles dependency injection.
Provenance and license
The consolidated source and exact import revisions are documented in PROVENANCE.md. Original Rocket Web copyright and author notices are retained in source files.
The package uses the Open Software License 3.0. Composer metadata, source notices, and the bundled license are aligned on OSL-3.0. See LICENSING.md.