# berrypath/magento2-berrypath-product-feed

> Scheduled product feeds for Magento 2 shopping channels, marketplaces and product discovery.

`composer require berrypath/magento2-berrypath-product-feed`

Canonical URL: https://packagento.com/berrypath/magento2-berrypath-product-feed

## At a glance

- **Vendor**: berrypath (https://packagento.com/berrypath.md)
- **Latest version**: 1.0.4 — released 2026-07-01
- **Pricing**: Free
- **Package type**: Magento 2 module
- **Status**: active, accepting new buyers

## Installation

Packagento is licence-gated, so even free packages need a licence on a project before Composer can resolve them.

1. **Sign in or create an account** at https://packagento.com/customer/account/.

2. **Add the package to your account.** Open https://packagento.com/berrypath/magento2-berrypath-product-feed and complete the free checkout. A licence is minted automatically.

3. **Create or pick a project, then activate the licence on it.**
   - Projects represent the Magento installs you deploy to. Manage them at https://packagento.com/projects/.
   - Activate the new licence on the project you'll deploy this package to. Activation is what generates the Composer credentials scoped to that project.

4. **Add the project credentials to your Magento codebase.**

   Grab the project's public + private key from https://packagento.com/projects/ (open the project, then its Credentials tab), and add them to `auth.json`:

   ```json
   {
     "http-basic": {
       "packagento.com": {
         "username": "ppk_live_...",
         "password": "psk_live_..."
       }
     }
   }
   ```

   Add the Packagento Composer repository to `composer.json`:

   ```json
   {
     "repositories": [
       { "type": "composer", "url": "https://packagento.com" }
     ]
   }
   ```

5. **Install and apply.**

   ```bash
   composer require berrypath/magento2-berrypath-product-feed:*
   bin/magento setup:upgrade
   bin/magento setup:di:compile
   bin/magento cache:flush
   ```

## What it does

Scheduled product feeds for Magento 2 shopping channels, marketplaces and product discovery.

## README

Magento 2 module for scheduled product feeds for shopping channels,
marketplaces and product discovery.

Create separate feeds for shopping channels, product discovery tools,
marketplaces and guided-selling platforms. Each feed can target its own store
view, channel type and output format, including XML, CSV and JSON. Feed files
are generated to Magento media storage, can be refreshed manually or through
Magento cron, and can be enriched with selected product attributes and
channel-specific options such as Google Shopping shipping data.

### Screenshots

Manage multiple feeds per channel, store view and output format:

![BerryPath Product Feed overview](docs/screenshots/berrypath-product-feeds-overview.png)

Configure each feed with its own type, format, CDATA setting and generated live
file link:

![BerryPath Product Feed general options](docs/screenshots/berrypath-product-feed-general.png)

Choose product data options and optional Magento product attributes per feed:

![BerryPath Product Feed product data options](docs/screenshots/berrypath-product-feed-product-data.png)

Schedule automatic feed generation through Magento cron:

![BerryPath Product Feed schedule options](docs/screenshots/berrypath-product-feed-schedule.png)

### Installation

```bash
composer require berrypath/magento2-berrypath-product-feed
bin/magento module:enable BerryPath_ProductFeed
bin/magento setup:upgrade
bin/magento cache:flush
```

For local `app/code` development, place it at:

```text
app/code/BerryPath/ProductFeed
```

### Configuration

```text
Catalog > BerryPath > Product Feeds
```

Generated feed files are written to:

```text
pub/media/berrypath/product-feed/feed_{feed_id}.{format}
```

Each feed has its own store view, market code, locale code, feed type,
output format, CDATA setting, product selection rules and URL. The
preview URL in the admin is limited to the first 25 products. The live link in
the admin points to the last generated file and exports all products.

Use `Generate Feed` from the feed edit page, or the grid mass action, to write
the feed file to `pub/media/berrypath/product-feed`. Saving feed options keeps
the existing live file available. Generate again when the live file should
reflect changed options.

Each feed can also be generated automatically through Magento cron. Configure
the refresh day and one or more refresh times on the feed edit page, under
`Schedule`.

CLI generation:

```bash
bin/magento berrypath:product-feed:list
bin/magento berrypath:product-feed:generate 1
bin/magento berrypath:product-feed:generate --all
```

Output formats:

- XML
- CSV
- JSON

XML output wraps text-heavy fields such as title, description, product type and
brand in CDATA sections by default. This can be disabled per feed.

Product selection options can be configured per feed. Defaults keep disabled
products out, keep catalog/search-hidden products out, keep out-of-stock products
in, and skip variant rows when their parent product is inactive.

The Conditions tab uses Magento's standard rule builder for feed filtering.
Leave it empty to include every product that matches the product data options.

### Feed Types

The default feed type is Product Feed and the default output format is XML.
Every feed type can be exported as XML, CSV or JSON.

| Feed type | XML format | Notes |
| --- | --- | --- |
| Product Feed | `<product_feed>` | Generic full product dump. Default. |
| Google Shopping | RSS 2.0 + `g:` namespace | `g:id`, `g:title`, `g:price`, `g:availability`, optional `g:shipping`. |
| Meta (Facebook) | RSS 2.0 + `g:` namespace | Google-compatible feed with space-form `availability` (`in stock`). |
| Pinterest | RSS 2.0 + `g:` namespace | Pinterest catalogs use the Google-compatible feed. |
| Microsoft / Bing | RSS 2.0 + `g:` namespace | Microsoft Merchant Center (Bing Shopping); adds `g:seller_name`. |
| Snapchat | RSS 2.0 + `g:` namespace | Snap catalogs accept the Google-compatible feed. |
| TikTok | `<catalog_feed>` | Rows keyed on `sku_id`. |
| Criteo | `<products><product>` | Criteo field names: `producturl`, `bigimage`, bare `price`/`retailprice`, `instock`, `categoryid`. |
| OpenAI Product | `<openai_product_feed>` | Emits `item_id`, `is_eligible_search`, `seller_name`, `target_countries`. |

Google Shopping, Meta, Pinterest, Microsoft / Bing and Snapchat share the same
RSS 2.0 output with the Google `g:` namespace, since those channels all ingest
the Google-compatible product feed. Shipping, condition and sale-price options
apply to every Google-compatible channel.

### Current Feed Fields

The feed includes core product data such as ID, SKU, type, name, URL, image,
price, final price, currency, salability, visibility, tax class, categories and
review summary data. Configurable, grouped and bundle product prices use the
Magento price index so parent products do not export `0.00` prices when indexed
prices are available.

### Possible Channel Usage

The Google-compatible channels (Google, Meta, Pinterest, Microsoft / Bing,
Snapchat) cover the core RSS format, namespace and shared attributes. TikTok,
Criteo and OpenAI use their own field mapping. Some merchants may still need
extra channel-specific enrichment such as Google product category mapping,
GTIN/MPN/brand mapping, promotion feeds or custom title and description
optimization.

### BerryPath

BerryPath helps ecommerce teams build guided selling flows, product finders and
guided product advice experiences. Learn more at [berrypath.eu](https://www.berrypath.eu).

For embedding BerryPath advice flows in Magento category pages, product pages
and CMS/widget placements, use the companion module:

- Package: [`berrypath/magento2-berrypath-flow`](https://github.com/BerryPath/magento2-berrypath-flow)

## Recent Versions

| Version | Released |
|---|---|
| 1.0.4 | 2026-07-01 |
| 1.0.3 | 2026-07-01 |
| 1.0.2 | 2026-07-01 |
| 1.0.1 | 2026-07-01 |
| 1.0.0 | 2026-06-30 |

## Dependencies

### Require

| Package | Constraint |
|---|---|
| php | >=8.1 |

### Suggest

| Package | Constraint |
|---|---|
| berrypath/magento2-berrypath-flow | Magento 2 Guided Selling module. |

## Quality

Latest release (1.0.4) fails the Packagento QA pipeline. Verdicts below are per-cell (Magento line × PHP version) for the matrixed tools, and run-once for the static / security tiers.


### Compatibility

Each Magento line is installed on its supported PHP versions, then the module is built (DI compile + static-content deploy). Cells show passed / failed / untested; staircase gaps render as `–`.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | Pass | Pass | – | – |
| 2.4.8 | – | Pass | Pass | – |
| 2.4.9 | – | – | Pass | Pass |


### Code Quality

Advisory checks against the module's source. Never affect the Compatibility verdict — a phpcs finding can't make a module incompatible.

#### Static Analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Warning | 59 | 59 warnings (ruleset: Magento2), 9 auto-fixable with phpcbf |
| PHPMD | Warning | 2 | 2 rule violations (UnusedPrivateField:2) |
| Cpd | Pass | 0 |  |
| Composer validate | Info | 1 | valid; 1 advisory note (composer validate --strict) |

#### PHPStan

Type-checks the module against a real Magento install. Re-runs per Magento + PHP version because resolvable symbols differ between releases.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | 18 | 18 | – | – |
| 2.4.8 | – | 18 | 18 | – |
| 2.4.9 | – | – | 18 | 18 |


### Tests

Unit and integration suites run per Magento + PHP cell. Test failures speak to the module's behaviour, not its compatibility with a line, so they're reported here separately.

#### Unit Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |

#### Integration Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |


### Security

Dependency-advisory audit (composer audit) plus a source malware scan. A malware detection fails the version outright.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| Composer audit | Pass | 0 |  |
| Malware scan | Pass | 0 |  |

## Licence and pricing

Free. A licence is still minted on checkout and bound to your project for Composer access — no payment step.

Refundable within 14 days of first purchase via https://packagento.com/account/refunds/.

## Install via Claude Code or any MCP client

The Packagento MCP server can run the licence + project + Composer steps above in one tool call:

```
purchase_and_install_packages(
  composer_names=["berrypath/magento2-berrypath-product-feed"],
  project_id="proj_xxx"
)
```

This handles cart, checkout, licence minting, project activation, and writes auth.json credentials. Connect a client with `claude mcp add packagento https://mcp.packagento.com`. Full setup at https://packagento.com/docs/mcp-setup.

## Vendor

berrypath is a Magento 2 vendor on Packagento. See https://packagento.com/berrypath.md for their full catalogue.

