BLACK FRIDAY DEALS: 25% OFF FOR ALL MAGENTO 2 EXTENSIONS Check Now
Magento 2

Compatible with: Magento 2.4.7 - 2.4.9, PHP 8.3+

Free Products

Give products away through your normal cart and checkout.

FreeRegular Price $49.99

Check it fits your store

Questions about compatibility? Contact us.

Details

Magento Free Products lets you give products away through your normal Magento 2 cart and checkout. Customers receive free items at no cost, with a real order in their account.

How Magento Free Products works

Mark products as free without changing their catalog prices, so you can make them paid again at any time.

  • Use the Free Product attribute available on every product.
  • Update multiple products with the Make Free and Remove from Free Products catalog mass actions.
  • View free products in the dedicated Catalog → Free Products grid.

The extension supports all product types. Free items cost 0 in the cart, checkout, and order, regardless of their catalog price, custom options, or download link prices. Magento's final price information also becomes 0 for structured data, product feeds, and other integrations, while the regular price remains available.

Display Free instead of zero amounts

Choose the text that replaces free-product prices; the default is Free. Product lists and product pages can also show the regular price crossed out.

The text replaces free-product zero amounts in the mini cart, cart, checkout summary, success page, customer account orders, invoices, credit memos, and order emails. Carts and orders containing paid products keep showing their amounts. Admin pages retain numeric amounts.

Create a dedicated free products page

Give shoppers a page for your free items at a configurable address, with /free-products as the default. The page uses your theme's product list with sorting, paging, and an Add to Cart button on every product.

  • Set the page title, intro text, and optional CMS block.
  • Configure the meta title and description.
  • Use the page's breadcrumbs and canonical link.
  • Permanently redirect other spellings of the address to the configured address.
  • Add an optional footer link on Luma-based themes.

Complete zero-total orders and deliver downloads

Carts containing free products with a total of 0 can use No Payment Information Required, even when Zero Subtotal Checkout is switched off.

Enable automatic invoicing for free orders to make downloadable links available at once. With the optional Techimprovement Licensing extension, automatic invoicing also makes license keys for free orders available immediately.

Luma and Hyvä support

One package supports both Luma and Hyvä. On supported Hyvä store views, the free-price text replaces Hyvä's product price box so configurable options cannot display an amount for free products. It also appears in product lists, the mini cart drawer, and the cart, including zero subtotals and grand totals.

A small plain CSS file follows Hyvä's price styles. Restyle it with CSS variables without a Tailwind rebuild.

Requirements and configuration

  • Platform: Magento Open Source or Adobe Commerce 2.4.7–2.4.9.
  • PHP: 8.2–8.5.
  • Themes: Luma, Luma-based themes, and Hyvä Theme 1.3 or later using Hyva/default or a child theme.
  • Hyvä testing: tested with Hyva/default 1.5.3.

Manage settings under Stores → Configuration → Techimprovement → Free Products, per website and store view. Controls cover the module switch, storefront page content and metadata, footer link, price text, regular price display, Zero Subtotal Checkout, and automatic invoicing.

Available editions and included download

Choose the Community, Enterprise, or Magento Cloud edition. This digital product includes the Free Products — Version 1.2.0 download.

Change Log

Version 1.2.0 – October 30, 2026

New

  • Hyvä theme support (Hyvä Theme 1.3+, Hyva/default or a child theme, no Tailwind rebuild): "Free" appears wherever it appears on Luma.
  • Product page: hyva_catalog_product_view swaps the template of Hyvä's product.info.price block for hyva/product/view/price.phtml, which shows the "Free" price box (with the schema.org offer at 0) for free products instead of Hyvä's Alpine price box, so configurable options, quantity and custom options cannot show an amount; every other product renders the theme's own Magento_Catalog::product/view/price.phtml unchanged.
  • Cart page: js/hyva/cart-totals.js (plain deferred script, hyva_checkout_cart_index) shows "Free" instead of the 0 subtotal and grand total of Hyvä's Alpine totals when every line is free, also after the totals are re-rendered (estimate tax, coupon). Item prices, the mini cart drawer and product lists already used the server-side labels.
  • css/free-products-hyva.css: plain CSS for the label, the crossed-out regular price and the free products page, loaded in of Hyvä store views while the module is enabled (block ti.free.products.hyva.styles); restyle with --ti-free-price-color and the other --ti-free-* custom properties.
  • Free products page: breadcrumbs (Home › page title), an Intro Text setting (ti_free_products/page/intro_text, plain text or simple HTML, store view scope, default text) shown above the products, a default meta description, and the Add to Cart button of every card always visible on Luma-based themes (they reveal card actions on hover).
  • Plugin\Catalog\FreePriceInfo: the pricing framework's final price (getPriceInfo()->getPrice('final_price'), its amount, minimal and maximal price) is 0 for free products, matching the cart price. Structured data, GraphQL price ranges, feeds and Hyvä read 0 instead of the catalog price; the regular price is unchanged.
  • ViewModel\FreePrice, ViewModel\Page, unit tests for them, for FreePriceInfo and for the router redirects.

Improved

  • The CMS block and the intro text of the free products page are rendered in a container above the columns (ti.free.products.top in columns.top; inside the page content on Hyvä), like a category description.

Fixed

  • Other spellings of the page address (/free-products/, /Free-Products) answered 200 as duplicates; they now redirect with 301 to the configured URL key, keeping the query string.
  • On Luma-based themes the CMS block above the products could sit under the product list toolbar.
Earlier versions (3)

Version 1.1.0 – October 24, 2026

New

  • "Free" (the *Text Instead of the Price*) instead of 0 wherever a free product makes an amount 0 on the storefront: cart page item prices, subtotals and totals, mini cart, checkout summary (One Step Checkout and Magento's checkout), success page, customer account orders, invoices and credit memos (also printed), order, invoice and shipment emails, Techimprovement Smart Search and Magento's recently viewed / compared widgets. Orders with paid products show the label only on the free lines; their totals keep the amounts.
  • Order lines of free products remember it (product option ti_free_product with the store's label), so an order keeps showing "Free" when the product is paid later. Older orders: lines at 0 of products that are free now.
  • No "Tax 0" row under orders, invoices and credit memos that only hold free products.
  • No "+ price" next to the links of free downloadable products sold per link.

Notes

  • Admin pages (order view, invoices, grids, PDF invoices printed in the admin) keep the amounts.

Version 1.0.1 – October 24, 2026

Fixed

  • The "Free" price label uses the theme's text shade of the success colour (--ti-color-success-text, 5:1 on white) instead of --ti-color-success (3.3:1, below the 4.5:1 normal-size text needs). Without the theme it stays #1e6b34.

Version 1.0.0 – October 23, 2026

New

  • Product attribute Free Product (ti_free_product) in the *Product Details* group, filterable in the product grid; mass actions *Make Free* / *Remove from Free Products* in Catalog › Products; Catalog › Free Products grid.
  • Storefront page at a configurable URL key (default free-products): title, CMS block, meta texts, canonical link, the theme's product list with toolbar and Add to Cart; footer link; full page cache tags.
  • Free products cost 0 in the cart, checkout and orders (all product types; options and link prices included) and show "Free" instead of the price, optionally with the regular price crossed out.
  • Zero Subtotal Checkout for carts with free products, also when the payment method is disabled, and automatic invoicing of free orders so downloads and license keys are available at once.
  • Admin settings (Stores › Configuration › Techimprovement › Free Products), ACL, uninstall with --remove-data, unit tests.

Compatibility

  • Magento Open Source / Adobe Commerce 2.4.7 – 2.4.9 (verified on a local Magento Open Source 2.4.9 install), PHP 8.2 – 8.5. Luma-based and Hyvä themes.

Reviews

Be the first to review Free Products

Reviews are written by customers with an account. Sign in to tell others how it works on your store.

Ask a Question

Request

Sign in

Sign in with another account

© 2026 Techimprovement. All rights reserved.