Skip to content

V2 Changelog

Tobias Wolf edited this page Aug 13, 2025 · 3 revisions

There a several breaking changes. It is not recommended to convert Merx 1 to Merx 2.

Merx 2 is dedicated to new projects.

Features

Multi-currency (Pricing rules)

// site/config.php
return [
	'ww.merx.pricingRules' => [
		'de' => [
			'name' => 'de (EUR)',
			'currency' => 'EUR',
			'rule' => fn (?App $kirby): bool => $kirby->languageCode() === 'de',
			'taxIncluded' => true,
		],
		'en' => [
			'name' => 'en (USD)',
			'currency' => 'USD',
			'rule' => fn (?App $kirby): bool => $kirby->languageCode() === 'en',
			'taxIncluded' => false,
		],
	],
];

Improved tax handling (Tax rules)

// site/config.php
return [
	'ww.merx.taxRules' => [
		'default' => [
			'name' => fn (): string => t('taxRule.default'),
			'rule' => fn (?App $kirby): float => $kirby->languageCode() === 'de' ? 19 : 20,
		],
		'reduced' => [
			'name' => fn (): string => t('taxRule.reduced'),
			'rule' => fn (?App $kirby): float => $kirby->languageCode() === 'de' ? 7 : 5.5,
		],
	],
];

Core

  • More Classes
    • ListItem
    • ListItems
    • Price
    • Tax

API

  • Integrated API

Panel

Breaking changes

  • Remove formatPrice helper method. Use Merx::formatCurrency() instead.
  • Product prices must have a currency.
  • There is no more success page. Payments are handled by API (e.g. https://example.com/api/shop/success) Merx::successUrl
  • OrderPageAbstract renamed to Wagnerwagner\Merx\OrderPage

Clone this wiki locally