Skip to content

Product Feed changelog

  • Bundle products, optional (Bundle Products, off by default): one item per visible bundle.
    • Priced by Magento’s price model through Slova\ProductFeed\Api\BundlePriceInterface (the price index keeps 0 for bundles): the lowest configuration, taxed as on the product page (item by item for dynamic bundles), converted to the display currency once; a struck-through price only when the bundle itself is discounted.
    • Feed prices checked against the product page with prices entered with and without tax, shown with and without tax, and shown in another currency.
    • Out of stock as soon as a required item is (Magento Inventory).
    • Described by its items’ categories when it has none below the category root.
    • g:is_bundle=yes when Send Bundles as g:is_bundle is on (a main product with add-ons).

First release as a standalone module, rebuilt from the feed running on caruselbooks.ro since July 2026.

  • Batch processing: products are read 500 at a time (keyset on entity id, variants included) and streamed to the file, so memory stays flat on any catalogue size.
  • Own cron group run in a separate process, a lock per store view, and Generate Now in the admin, which queues the run for cron.
  • Feeds table in the configuration: URL, last run, items, products left out, errors and file size per store view.
  • One feed per store view: store currency, store timezone, file name with {store}.
  • Configurable products as variants: item_group_id, item_group_title, variant_option, color, size, variant titles, and links that preselect the variant’s options (Hyvä and Luma).
  • Product types to export chosen in the admin (simple, configurable).
  • Tax in feed prices: as displayed on the storefront, or forced including / excluding tax, computed with Magento’s tax calculation.
  • Square images within a time budget per run, a background cron job and bin/magento slova:feed:images.
  • Feed Category product attribute choosing the main category branch; branches left out of the taxonomy (Sale, New In, Brands).
  • Custom labels 0–4 each filled from a source chosen in the admin: category level 1–3, all categories, an attribute, on sale, discount band.
  • GTIN check digit validation, MPN, default brand; identifier_exists=no only without GTIN or brand + MPN.
  • Optional gzip output.
  • Item modifier pool (Slova\ProductFeed\Api\ItemModifierInterface) for adding or overriding feed elements.
  • none as an explicit “nothing” for attribute and label settings in another module’s config.xml.
  • Clean uninstall with module:uninstall --remove-data.
  • Category level labels come from one branch, never mixed level by level; the main branch is also the first product_type.
  • The feed is written one element per line (Meta rejects XML lines over 5,242,880 characters).
  • Page Builder styles and scripts are removed from descriptions with their content, and paragraphs no longer run together.
  • Memory grew with the catalogue: the whole collection was loaded at once, and Magento Inventory kept a cache entry per SKU for the whole run.
  • One product with an unreadable date stopped the whole feed.
  • Overlapping runs could write the same file.