Commerce now in beta

Commerce makes it easy to sell online exactly the way you want. Extend functionality with our Payment Methods and Modules or build your own.



Recent Releases

Commerce 0.9.0-pl

Released on 2017-07-27 (Commerce Channel)

  • [dashboard] Fix incorrect check in checklist template causing wrong options to be shown
  • [dashboard] Make HTTPS check required for switching on live mode
  • [templates] Use lexicons for previously hardcoded text in emails, checkout summary, account and shipping method steps [S12251]
  • [templates] Simplify frontend/account/orders.twig template to a table linking to a separate order detail page
  • [snippets] Add commerce.get_order snippet to retrieve a single order, based on &order query parameter

Commerce 0.9.0-rc1

Released on 2017-07-25 (Commerce Channel)

Deprecations / Breaking Changes:

  • All EVENT_ related constants have been moved from model and other classes, onto the main Commerce service. The old constants are deprecated and planned to be removed in 1.0. Check your modules to make sure all event listeners are applied to \Commerce:EVENT_ classes.

New features:

  • [dashboard] Add ability to sort grids by clicking on column headers, and an icon in the top right to switch direction [#159]
  • [dashboard] Add convenience returnError/returnSuccess methods to Page class
  • [dashboard] Add buttons to set the mode to test/live/disabled to the config checklist [#2]
  • [gateways] Implement SagePay payment gateway (Server/redirect integration) [#37]
  • [reports] Add new "Customers that bought a Product" report that exports a list of customers/order items for a product [#166]
  • [snippets] Add new commerce.get_orders snippet to list orders places by a logged in user. [#119]

Improvements:

  • [dashboard] Show name of rate provider instead of class name in Tax Groups > Rules
  • [dashboard] Add order creation date to orders grid
  • [dashboard] Make active item in top navigation bold and blue
  • [dashboard] Use nicely formatted error message on error pages
  • [dashboard] Add ability for form widgets to not submit in a modal and to change csrf key
  • [internal] Add Commerce->isDisabled() method and change Commerce->isTestMode() to check specificially for test/unit_test mode
  • [taxes] EU VAT RateProvider slight refactor in getRates and useReverseCharge methods with improved tests

Bug fixes:

  • [dashboard] Fix clicking on pagination icons loading a different page instead of updating the grid via AJAX
  • [snippets] Make sure all snippets halt execution if commerce.mode is set to disabled.

Commerce 0.8.3-pl

Released on 2017-07-17 (Commerce Channel)

  • [checkout] Fix confusing placeholder usage in cart/items.twig in tax_exclusive block: use {{ item.total_ex_tax_formatted }} instead of {{ item.total_formatted }} [#135]
  • [checkout] Fix inability to progress in checkout when checkout_show_account_step is off [S12251]
  • [dashboard] Fix submitting the limit field on grids sending the user to the MODX dashboard [#160]
  • [dashboard] Fix currency fields storing a wrong value when a comma or period is added [#158]
  • [productstv] Fix "Select Product" button only responding to click on the text [#161]
  • [productstv] Fix Product TVs outputting ",123" when adding a first product [#162]

Commerce 0.8.2-pl

Released on 2017-07-04 (Commerce Channel)

  • [dashboard] Fix creating/editing a shipping method with only 1 delivery type available causing the delivery type to be set to 0 [S12251]
  • [modules] Fix incorrect error handling in AutoFillGeoIp causing a fatal error if it could not connect
  • [gateways] Make sure the OmniPay Card is filled with as much data as possible, including correct email value
  • [shipments] Fix shipping methods not being available on orders while they should be, due to bug in Order Shipments getting the incorrect order

Commerce 0.8.1-pl

Released on 2017-06-27 (Commerce Channel)

  • Fix Address step missing in Standard checkout process, causing infinite redirects [S12225]
  • Check if comProduct->getWeight returns a PhpUnitsOfMeasure\PhysicalQuantity\Mass instance [S12225]

Commerce 0.8.0-pl

Released on 2017-06-26 (Commerce Channel)

New features:

  • [checkout] New checkout_requires_account and checkout_show_account_step settings to give easier control over the account step [#134]
  • [checkout] If only one shipping method is available for a shipment, it is automatically selected, allowing the shipping step to be skipped
  • [checkout] New checkout_class system setting to change the used checkout process class (advanced) [#134]
  • [coupons] Add ability to (soft) delete coupons [S11328]
  • [reports] Add transactions report to export transactions during a timeframe
  • [shipping] Add min and max weight options to the weight-based shipping method [#121]
  • [shipping] Orders are now split up into shipments, based on new delivery types. See: https://docs.modmore.com/en/Commerce/v1/Delivery_Types.html
  • [products] Add new Products TV to easily manage products linked to a resource. See: https://docs.modmore.com/en/Commerce/v1/Product_Catalog/Products_TV.html [#68]

Improvements:

  • [dashboard] Use lexicons for the HTTPS check
  • [products] Fix 1 cent inaccuracy in resource product prices managed as decimals
  • [products] Add weight_formatted placeholder on products

Bug fixes:

  • [dashboard] Fix broken products, customers, and tax rates tabs on certain environments [S12034]
  • [dashboard] Fix MultiSafePay gateway selection not showing properly when editing the payment method [S12060]

Breaking changes in this release:

  • The templates for the checkout has seen various changes that will need to be updated in your own themes. Most importantly the shipping step (frontend/checkout/shipping-method.twig) is very different due to the introduction of Delivery Types and Shipments (see https://docs.modmore.com/en/Commerce/v1/Delivery_Types.html), and the sidebar summary (frontend/checkout/partial/summary.twig) has also seen similar changes.
  • Shipping method classes should start implementing getPriceForShipment/isAvailableForShipment methods instead of getPrice/isAvailableForOrder. There's some level of backwards compatibility for now, but the previous getPrice/isAvailableForOrder methods will be removed before v1.0.
  • The 0.7 approach to setting a checkoutClass on the checkout snippet has been replaced with a setting.
  • Various Checkout classes (NoAccount, RequiresAccount, OnePage) have been marked as deprecated and will be removed before v1.0. Use the settings to control the Standard process instead.

Commerce 0.7.0-pl

Released on 2017-05-30 (Commerce Channel)

  • [checkout] Prevent "Your order is free" message right after paying an order [#145]
  • [checkout] Fix incorrect total estimate on shipping methods when going back to shipping step after selecting a method before [#146]
  • [checkout] Fix incorrect shipping calculation when sending cart info to payment provider
  • [checkout] Fix incorrect classes on buttons in Pending Transactions view [#144]
  • [checkout] Add support for continuing an off-site transaction from the pending transactions view
  • [dashboard] Slightly change statuses grid to have buttons in the actions menu
  • [dashboard] Add ability to (soft) delete payment methods, shipping methods, currencies, statuses (incl. changes and actions), tax groups (incl. rules), products ...
  • [dashboard] Ensure missing weight_units would not cause fatal errors in the dashboard
  • [dashboard] Add new transaction view, accessible via an order's list of transactions, to expose more information and error messages
  • [dashboard] Add event to add checks to the configuration checklist [#79]
  • [dashboard] Coupons module now adds a check to the configuration checklist to make sure active coupons are available
  • [payments] Improve transaction handling of webhook-based gateways (e.g. Mollie), with more solid cancelled/failed checking, proper response on webhook, and improved messages in log and checkout [#143]
  • [payments] Prevent double slash in webhook url
  • [products] Include price in resource product sync [#147]
  • [products] Add setting (resourceproduct.price_field_decimals) to allow resource product price TVs to be defined with decimals [#131]
  • [settings] All settings now have lexicons and descriptions to explain their purpose. [#98]
  • [snippets] Add commerce.get_cart snippet to list cart information outside the actual cart/checkout [#126]
  • [snippets] Add (temporary!) checkoutClass property to checkout snippet to allow specifying checkout class
  • [statuses] Make comStatus and comProduct objects use soft delete instead of hard delete

Breaking changes in this release:

  • Price TVs for resource products are now assumed to be specified as numbers with decimals. This can be disabled with

the resourceproduct.price_field_decimals system setting to restore the old behaviour of expecting a number in cents.

Commerce 0.6.2-pl

Released on 2017-05-17 (Commerce Channel)

  • [checkout] Fix RequiresAccount checkout process not moving to account step
  • [gateways] Fix Paymill gateway javascript error

Commerce 0.6.1-pl

Released on 2017-05-10 (Commerce Channel)

  • [checkout] Fix coupons form showing even a coupon is already selected
  • [checkout] Fix emails getting sent multiple times when more than one send per php request
  • [checkout] Remove logs from order properties when they're moved into the dedicated table
  • [checkout] Make sure address errors in one address type are shown if the other address is valid [#142]
  • [dashboard] Restrict Top Products widget on dashboard and Sales and Top Products reports to processing/completed orders in the current mode
  • [dashboard] Restrict total sold count on products tab only to processing/completed orders in the current mode
  • [dashboard] Improve "orders with product" listing on product page
  • [dashboard] Fix inability to uncheck checkboxes introduced in 0.6.0
  • [modules] Fix AutoFillGeoIP module setting the state into the country field

Commerce 0.6.0-pl

Released on 2017-05-04 (Commerce Channel)

  • [cart] Show discounted and original price in right order in cart
  • [checkout] Make sure the thank you page requires an address
  • [checkout] Persist messages and errors to the sessions before a redirect
  • [checkout] Fire additional event after the step is processed
  • [checkout] When the order total_due is 0, send the customer forward to complete the order
  • [checkout] Replace hard-coded "Cart Totals" header with lexicon
  • [checkout] Make it possible to use lexicons in shipping and payment method name and description [S11848]
  • [coupons] Allow coupons to be removed from the cart [#132]
  • [dashboard] Fix live licenses being treated as development licenses in checklist
  • [modules] Add MinOrderAmount module to force a minimum order total in the checkout
  • [modules] Update UpdateStock and Coupons module to use new state-specific events instead of payment event [#125]
  • [modules] Add EnforceStock module to prevent customers buying more than is available
  • [orders] Fire new state-specific events (eg Cart->Processing) that fire regardless of a payment or other reason for an order being changed [#126]
  • [orders] New updateItemQuantity method and new comOrder::EVENT_ITEM_UPDATED and comOrder::EVENT_ITEM_REMOVED event
  • [orders] Make order available via $event->getOrder() on comOrder::EVENT_ITEM_* events

Commerce 0.5.1-pl

Released on 2017-05-01 (Commerce Channel)

  • [snippets] Fix issue with get_product snippet not setting placeholders
  • [checkout] Put a few hard-coded cart/checkout strings into the lexicon
  • [checkout] Set button type to submit to fix remove item button in cart
  • [checkout] Move to top to ensure submitting the form uses the update cart button
  • [checkout] Only handle cart update or remove item from cart per POST.
  • [checkout] Ignore product add to cart where quantity is less than 1
  • [gateways] Make sure notify/webhook URLs are generated as a full URL
  • [dashboard] Fix save after create causing duplicate records [#76]

Commerce 0.5.0-pl

Released on 2017-03-17 (Commerce Channel)

  • [dashboard] Fix product and order links on the dashboard
  • [dashboard] Prevent issue loading modules from breaking the backend
  • [dashboard] Fix issue in Firefox where prices could not be edited [#130]
  • [dashboard] Add license status to the configuration checklist [#106]
  • [checkout] Fix enter in the cart quantity field submitting with the remove item button
  • [checkout] Fix cart/checkout when friendly urls are off, and the xhtml_urls setting is on [#128]
  • [gateways] Rewrite client-side payment handling
  • [gateways] Add Authorize.net gateway, using the Accept.js integration (on-site JavaScript AIM)
  • [gateways] Add MultiSafePay gateway
  • [orders] Fix PHP notice: Undefined index: total
  • [setup] Use PHP 5.3 array style in setup options to make sure install doesn't break before the requirements validator
  • [emails] Add new email templates for order confirmation and shipping notifications
  • [modules] Log an error when a module class can't be loaded
  • [snippets] Fix get_product and get_products snippet not being installed
  • [snippets] Fix get_products snippet not loading all products when separated by a comma

Commerce 0.4.0-pl

Released on 2017-02-13 (Commerce Channel)

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

Improvements:

  • [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.

Commerce 0.3.2-pl

Released on 2017-01-31 (Commerce Channel)

  • [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.3.1-pl

Released on 2017-01-23 (Commerce Channel)

  • [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 (https://crowdin.com/project/modmore-commerce)

Commerce 0.3.0-pl

Released on 2017-01-18 (Commerce Channel)

  • 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.

Commerce 0.2.1-pl

Released on 2017-01-14 (Commerce Channel)

  • Fix requirements validator having the check backwards

Commerce 0.2.0-pl

Released on 2017-01-13 (Commerce Channel)

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

Improvements:

  • [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

Bugfixes:

  • 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

Commerce 0.1.1-pl

Released on 2017-01-10 (Commerce Channel)

  • Include polyfills and tweaks to the js to ensure IE10+ and Safari browser support

Commerce 0.1.2-pl

Released on 2017-01-10 (Commerce Channel)

  • 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]

Commerce 0.1.0-pl

Released on 2017-01-09 (Commerce Channel)

  • Fix fatal error when viewing statuses
  • Remove unused "Find Available Modules" button
  • Fix incorrect description on customers module
  • Add note that the shop is in test mode
  • Make radio buttons for shipping/payment method selection visible in default frontend theme
  • Add "Manual" gateway that just creates a successful transaction for demo purposes

Commerce 0.1.0-rc1

Released on 2017-01-08 (Commerce Channel)

  • First packaged release of Commerce.

Open Issues

Below you will see a subset of known issues in Commerce. If you have any bug reports or feature requests, let us know.

#175

Setting default weight unit does not change the default selected value

Created on 2017-08-04 • Last updated on 2017-08-04

#174

Field validation broken?

Created on 2017-08-02 • Last updated on 2017-08-04

#171

Update Stripe gateway to use Stripe Elements

Created on 2017-07-17 • Last updated on 2017-07-17

#170

SimpleCart product type integration

Created on 2017-07-11 • Last updated on 2017-07-11 • v0.10

#169

Add ability to change contents (items) of an order

Created on 2017-07-11 • Last updated on 2017-07-11 • v0.11

#168

Add ability to change an order address

Created on 2017-07-11 • Last updated on 2017-07-11 • v0.10

#164

Module or docs for adding google analytics/adwords conversion tracking

Created on 2017-07-06 • Last updated on 2017-07-11 • v0.11

#157

Usergroup / user discounts

Created on 2017-06-26 • Last updated on 2017-06-26 • v1.0 (stable release)

#151

Track company and VAT registration in UserProfileAddress module as well

Created on 2017-06-01 • Last updated on 2017-07-11 • v0.10

#149

Deleting a status change should redirect back to the statuses grid

Created on 2017-05-24 • Last updated on 2017-07-17

#139

Sync resource product when saving a resource (e.g. onDocFormSave)

Created on 2017-04-26 • Last updated on 2017-06-06

#138

Admin notes on payment/shipping methods

Created on 2017-04-26 • Last updated on 2017-05-04

#137

[taxes] Allow tax rule conditions to check in properties

Created on 2017-04-25 • Last updated on 2017-05-04

#136

Sale prices

Created on 2017-04-12 • Last updated on 2017-07-11 • v0.10

#124

Support for bulk prices on products

Created on 2017-02-09 • Last updated on 2017-06-26 • v1.1

#122

"In all countries except" condition on weight based shipping

Created on 2017-02-05 • Last updated on 2017-05-04

#103

Automatically create comResourceProduct records from an OnDocFormSave plugin

Created on 2017-01-10 • Last updated on 2017-07-11

#84

Consider reversably hashing transaction IDs so that collisions don't happen

Created on 2017-01-05 • Last updated on 2017-07-11 • v0.11

#78

Extend order message system with statuses/states

Created on 2017-01-03 • Last updated on 2017-07-25 • v0.10

#67

Module for auto-creating accounts

Created on 2016-12-12 • Last updated on 2017-07-11 • v0.10

#66

Get single-page checkout process to work

Created on 2016-12-12 • Last updated on 2017-07-11 • v0.11

#65

Add slack status change action

Created on 2016-12-11 • Last updated on 2017-05-24 • v1.0 (stable release)

#39

Module to validate if an address actually exists

Created on 2015-11-10 • Last updated on 2017-06-06 • v1.1

#35

Create product type that integrates with miniShop2

Created on 2015-10-24 • Last updated on 2017-07-11

#34

Implement refunds for supported gateways

Created on 2015-10-24 • Last updated on 2017-05-04 • v1.2

#25

More events inside the Generator (widget, section generation)

Created on 2015-10-20 • Last updated on 2017-07-27 • v0.10

#20

Visual status workflow editor

Created on 2015-10-20 • Last updated on 2017-05-04 • v1.3

#5

Import/migrate functionality

Created on 2015-10-08 • Last updated on 2017-07-11


navigateup

Disclaimer: Viewing non-Euro pricing

You are currently viewing prices in a non-Euro currency. Please be advised that these prices are estimates, based on data by Open Exchange Rates.

While we offer this currency converter hoping our users find it convenient, all purchases are made in Euro, and the final amount charged can vary depending on payment provider, day, time of day and a number of other factors outside of modmore's control. There are no guarantees on accuracy and modmore nor Open Exchange Rates can not be held liable for errors.

×