Commerce now available for first alpha testers

I’m please to share that the first 5 alpha invites have just been sent, with another 5 going out after dinner. These alpha testers have access to Commerce v0.1. Rather than spamming the announcement board with every bug fix for Commerce in 0.1, I’ll collect those in this thread.

If all goes well, another 10 invites will go out next week, with the pace picking up from there. If you’ve signed up for early access and want to get an ETA on when you’ll receive your invite just let me know.

1 Like

0.1.1 is now available with some js fixes for the merchant dashboard. The browser support for the dashboard is IE10 or up, Mac OS Safari 7.1 or up (El Capitan) and recent Chrome/Firefox versions.

0.1.2 is now available with the following fixes/changes:

  • Slight markup simplification in merchant dashboard for better experience on older browsers
  • Fix incorrect validation when editing a status that prevented creating a status with “draft” state
  • Add missing name field to currency form
  • Fix missing CSS scoping class causing conflicts in the manager
  • Add more currencies to setup (USD, EUR, GBP, RUB, BYN, CHF, CAD, AUD), and a default currency selector [#97]
  • Add setup options to create a cart and checkout resource automatically [#100]
  • Only show setup options if there are options available (so it isn’t shown on upgrade, basically) [#95]
  • Add proper date + time field to editing coupon date fields [#92]
  • Rename Commerce->CommerceGrid and CommerceJS to Commerce
  • Fix filtering of grids
  • Add no results message to grids when there are no results [#88]

0.2.1 is now out with a bunch of new features and improvements.

New features:

  • [security] Implement CSRF tokens in the merchant dashboard
  • [taxes] TaxJar integration added via module for automatic US Sales Tax calculation
  • [taxes] Internal (module-managed) tax rates are now exposed under Configuration > Tax Rates
  • [taxes] Add configurable rate and reverse charge mechanism (w/ EU VAT Validator module) added to EU VAT module
  • [checkout] Add tracking of order log entries before the order is persisted to the database
  • [checkout] New module EU VAT Validator which checks for a vat_registration address field and validates it against the VIES web service
  • [dashboard] Add ability to set default currency from the merchant dashboard
  • [reports] Add support for composite headers (e.g. combining product name and currency into name) to reports
  • [reports] Add support for multiple datasets in report charts
  • [reports] Add pie chart type and 2 pie charts on the top products report
  • [products] comProduct->getPrice now returns a Price object that is linked with the currency (for potential multi currency support)
  • [products] Add comProduct.stock field and getStock/updateStock methods, also added to the standard comProduct fields and grid
  • [products] New Update Stock module to automatically reduce the stock when an order is paid in full


  • [taxes] Clean up no longer correct tax records in EU VAT module (e.g. after changing billing country)
  • [checkout] Don’t count shipping/transaction price in determining if a shipping/payment method is available for an order
  • [dashboard] Handle exceptions triggered by invalid CSRF token or other errors more cleanly
  • [reports] Implement real revenue data, period and group by currency option on TopProducts report
  • [reports] Add multiple datasets to TopProducts and Sales report charts
  • [reports] Divide financial amounts in reports/charts by 100
  • [reports] Change Bar chart type to be a Bar instead of horizontalBar


  • Disable PaymentSense gateway, not yet implemented
  • Make sure exports are filtered on the current mode where appropriate
  • Fix missing placeholders for the response-messages.twig causing response errors and messages to not appear

Breaking changes in this release:

  • comProduct received 2 new methods: getStock, updateStock.
  • comProduct->getPrice now returns modmore\Commerce\Products\Price object which includes currency info
  • Minimum PHP version increased from 5.4.4 to 5.5.0

(If you’re wondering what happened to 0.2.0, the installer had a bug preventing it from being installed so I released 0.2.1 immediately afterwards)

0.3.0 is now available. Highlight of this release is support for weight-based shipping prices, but there’s also been some improvements to the dashboard worth checking out.


  • Add shipping method restriction by country
  • Add weight + weight unit support for products, and shipping method by weight to accompany it
  • Make all product information available via {{ item.product. }} in cart/checkout templates
  • Organise lexicons somewhat and enable translations via CrowdIn

Merchant dashboard tweaks:

  • Add better editing UI for shipping method by country
  • Progressively enhance currency/price fields with currency formatting
  • Improve hover and focus styles [#89]
  • Improve configuration checklist styling [#75]
  • Improved modal styling [#55] + close button [#96]
  • Fix alignment of toolbar buttons [#82]
  • Some quick tweaks towards a more responsive manager

Breaking changes in this release:

  • comProduct received a new method: getWeight which returns a PhpUnitsOfMeasure\PhysicalQuantity\Mass instance.

0.3.1 is now out. Mostly bug fixes, but after my visit to Sterc last week this release also adds the ability to specify the order for payment and shipping methods. This release also has a full Dutch translation, and a start of the French and German translations. If you’re interested in helping with the translations, read about it here.

  • [statuses] Fix processing > completed state change not running
  • [reports] Fix period selector not working on Daily Sales chart
  • [reports] Add stock and weight to product and top products reports
  • [checkout] Add sort order to payment and shipping methods
  • [dashboard] Load frontend lexicon in the manager as well to fix some missing shared lexicon entries
  • [dashboard] Fix filtering on customer/address in orders grid
  • [dashboard] Increase connect timeout on HTTPS check to make sure it has enough time to fully run
  • [dashboard] Make modal close button work [#96]
  • [dashboard] Fix missing error messages on textarea fields
  • [dashboard] Fix creating email status change action [#115] / bug where properties aren’t available in getModelFields on new objects
  • [i18n] Fix missing pricing lexicon on product form
  • [i18n] First translations included thanks to community help: NL, FR and DE (

0.3.2 is now available, it’s only a small release with these changes:

  • [checkout] Remove placeholder text in the cart form
  • [checkout] Don’t show coupon form if the coupon module isn’t enabled
  • [checkout] Replace coupon form with a link that shows the form

Commerce 0.4 is here!

This release has a completely rebuilt taxes system. It’s now centered around tax groups with tax rules that define rate providers. If that sounds complicated, it’s because taxes are complicated, and also it is documented and explained in more detailed here.

The release also adds a Paymill payment provider, which is a Stripe-like payment provider available across Europe. While this provider wasn’t in the top list of payment providers to add, I needed it personally so there you go. By the time we get to the 4th batch of alpha invites, I expect to have another 2 gateways implemented, likely and SagePay.

Another cool new feature in 0.4 is bundle products. These are products made up from multiple other products. The bundle product will automatically get its stock and weight from the bundled products.

Two new snippets, get_product and get_products have also been added to help display product information on the frontend.

Here’s the 0.4 changelog with all the details:

Commerce 0.4.0-pl

New features:

  • [taxes] Completely rebuilt taxes system based on Tax Groups, Tax Rules and Rate Providers. See documentation.
  • [taxes] New “Manual” rate provider (alongside EU VAT and TaxJar) for manually defined tax rates
  • [taxes] When address info is available (e.g. UserProfileAddress or AutoFillGeoIP module), expected taxes are calculated right away
  • [checkout] Allow alternative field structure for the add to cart form, to easier support variations
  • [checkout] Add UserProfileAddress module that prefills the customer address from a user profile, and can update profile as well.
  • [frontend] Add get_product and get_products snippet to easily access product information in MODX
  • [products] Add Bundle Products which get their weight and stock from the bundled products [#120]
  • [dashboard] Add the products within a bundle to the order item grid
  • [payments] Add support for Paymill payment provider
  • [reports] Add new Collected Taxes report that exports all tax records assigned to order items
  • [reports] Add new Coupon Codes export to get coupons created in a certain period


  • [checkout] Make sure all forms set the action to {{ current_url }}
  • [dashboard] Add footer rows to order item grid with various order totals/calculations

Bug fixes:

  • [cart] Fix bug where invalid product IDs might get added to the cart anyway
  • [adapter] Fix resource url generation not using the link_tag_scheme setting [S10959]
  • [coupons] Make sure created coupons have a created_on and created_by set
  • [coupons] Make sure comCoupon.last_used is updated when an order with coupon is processed
  • [dashboard] Fix “enabled in test” checkbox being ticked when module is disabled

Breaking changes in this release:

  • Taxes have been completely refactored; you will need to reconfigure them.