Frequently Asked Questions
We're collecting the questions we get most often into a list of FAQs. If your question is not in the list, please reach out to us via [email protected] and we would be glad to help.
How much does Commerce cost?
Commerce is priced at €299 per license. A license is valid for one MODX installation, and includes all future 1.x upgrades and our standard email support.
Free development licenses are available for development and for trying out Commerce prior to purchasing a license.
You’ll be able to buy a license once Commerce reaches 1.0.
How does Commerce handle product prices and sales tax/VAT?
Taxes in Commerce are quite flexible. They are organised around Tax Groups, assigned to your products, and Tax Rules that determine when a certain Rate Provider should be used.
Product prices can be configured to be either inclusive or exclusive of taxes. When a customer address is available, taxes will be shown as soon as a product is added to the cart.
What are the requirements for running Commerce?
For Commerce we've set slightly higher requirements than our other extras.
- PHP 5.5+ (5.6 or higher strongly recommended)
- MODX Revolution 2.5.2 or higher
- Valid HTTPS certificate and configuration on the website
It is possible to install Commerce without meeting all of these requirements right away, however you will be warned about the lacking configuration on the dashboard, and may not be able of switching the shop to live mode depending on what requirement is missing.
What will happen to SimpleCart when Commerce is released?
We'll continue providing support for it and improving it for at least a year after the first Commerce 1.0 stable release. Over the next couple of months we'll work on at least one more Payment Gateway for SimpleCart and adding some improvements to make it more flexible. We wrote about this in more detail: How Commerce affects SimpleCart.
One of the cool things about Commerce is that it allows you to use different tools to manage your catalog of products. The SimpleCart custom resources are a great example of what you might use for managing your catalog, so rather than throwing SimpleCart out with the bath water, we intend to offer a solid integration between the two.
Does modmore.com use Commerce?
Not yet, but we're planning to migrate away from our current billing engine to Commerce as soon as possible! There's a few features missing in Commerce that we need before we can do that, including subscription handling and the proper reporting/integration features for our tax reporting. Hopefully we'll be ready to make that switch towards the end of 2017.
How can I manage products in Commerce?
Commerce introduces a divide between the customer-facing Catalog and the internal Products that it requires to calculate totals and handle orders.
The Catalog is your front-end. It's how customers browse through what your webshop has to offer, including product information, different variations, photos or videos, reviews, and so on. How you build this catalog is completely up to you: it can consist of resources, Collections, MIGX TVs, SimpleCart product resources, a POS or ERP system, custom tables or third party database... the possibilities are limited to your imagination (and skills and/or budget).
Products are simple database objects consisting of a product's name, description, SKU, stock level, and price. These products are what Commerce does care about. When a customer sees an item they'd like to purchase in your catalog, they will add this Product to their cart.
It's possible to manage products within resources, separately, or integrated with something custom.
How can I change the markup (HTML) used in the cart or checkout?
Commerce uses Twig file-based templates for its theming. The documentation has more in-depth information on how to use that, but here's the basics.
- Create a new folder under
core/components/commerce/templates/with a name of your choosing*. For example
design2017. The name of this folder is your theme name.
- Edit the
commerce.themesystem setting and set it to the name of your theme.
- Locate the template file you wish to edit (for example
default/frontend/checkout/cart.twig) and copy it into your own theme folder with the same name and directory structure (for example
- Edit your copy.
It's not recommended to copy over all template files, just the ones you have edited.
* It's also possible to place the template folder somewhere else using the
commerce.theme_path setting. See the documentation for more detailed information about the possibilities for themes.
Does Commerce offer different shop designs or themes?
No. Commerce has only one "theme" for the cart and checkout that adds a basic design to the default markup. This theme consists of two CSS files that are registered to the site header, layout.css and style.css.
The layout.css file contains some basic layout-related css definitions to position things fairly intuitively. It contains no colors, fonts, borders or other style decisions.
The style.css enhances the layout.css styles to make it look pretty. This is more opinionated and may or may not look great with the rest of your design. It still inherits as much as possible from your existing CSS (for example font-sizes use em to be relative to the size on your body) but does define colors and backgrounds.
commerce.register_checkout_css system setting determines if these two files are loaded. Set it to 1 to load the files automatically on your cart and checkout pages, or set it to 0 to not load them.
How can I automate (part of) the merchant order fulfilment?
Most order-specific automation will happen through the status system.
Basically whenever you manage an order and want to change its status, you will need to choose a Status Change instead of the new status. The status change controls the flow the order goes through from the customer going through checkout, all the way through the products getting shipped.
For each Status Change, you can add Status Change Actions that happen when the status is changed. These status change actions include sending emails to the customer or merchant, but with a bit of development you can also create status change actions that automatically print shipment labels, sends order and customer information to a CRM or ERP system, or does something else entirely.
Through these actions you can automate a whole lot of normally labour intensive tasks to ensure your fulfilment works at top efficiency .
Does Commerce support multi-context setups?
Sure, your shop can be spread across different contexts. They'd all be served from the same MODX installation (on a single hostname) and a single Commerce dashboard. The product records would be shared across the MODX installations, but your catalog could be vastly different per context.
It's possible to use different templates per context, as well as different cart/checkout pages with context-specific settings.
It's also possible to set a different currency per context, which requires you to have context-specific cart and checkout pages as well, however multi-currency support is fairly limited at this point.
Can Commerce integrate with my CRM, ERP or POS system?
When we built Commerce, we made sure it was easy to extend and integrate, so yes you will be able of integrating it with any three-letter-acryonym system.
Commerce does not currently have any pre-built integrations, though we expect several will become available over time as we get involved with customer projects and build commonly-requested integrations.
If you'd like to commission an integration, please contact Mark via [email protected] with details to receive an estimate and information about the possibilities and availability.
Will Commerce file my taxes for me?
It wont file them for you, but it does have reports and exports that will help you with that. Please see the features list or documentation for the available reports and be sure to file a feature request if you have specific needs that are not yet met. It's also possible to create your own reports that can be used to output the information exactly like you need it.
How do I enable/disable the standard cart/checkout theme CSS?
Can I put my template (theme) files in a different directory?
By default Commerce looks inside
core/components/commerce/templates/ for your theme files. If you'd like to have it also look in a different theme directory, such as
/assets/checkout/, you can specify the
commerce.theme_path system setting with the absolute path to your template directory.
When setting a theme path, you still need to create a folder inside that directory that matches your theme name as configured in
What payment providers does Commerce support?
As of December 2016, the following payment providers are available:
- Manual (dummy gateway that just marks the order as paid for testing)
- Mollie (Dutch gateway offering iDeal, Sofort, Bancontact, PayPal, CreditCard and more)
- MultiSafePay (Wide range of payment methods, including iDeal and CreditCard)
- PayPal Express (off-site hosted checkout with PayPal accounts or guest checkout with credit card)
- SagePay (off-site hosted credit card payments)
Read more about each of the payment gateways in the documentation. The Roadmap has a list of other gateways we're planning or considering. Be sure to send us a feature request for the gateway you need if it's not listed or planned yet!
Can Commerce integratie with my shipping partner for realtime shipping price calculation?
Yes, but we don't have any pre-built integrations available. The developer documentation has more information about how to build custom shipping methods.
As the templating uses Twig, can I still use MODX snippets or tags?
Why does Commerce use Twig instead of standard MODX tags?
Twig brings a more powerful templating language to Commerce. Simple conditionals, loops and includes are all possible in Twig, which would become a rather complicated set of snippets and chunks with the standard MODX parser.
As templates are stored in files, they're also much easier to include in version control compared to chunks.
The Twig for Template Designers documentation is a good starting point if you haven't worked with Twig before.
Do you offer non-profit discounts for Commerce?
Yes, to select organisations that meet our requirements we will offer up to 50% off on a Commerce license. For the process and requirements, see the Commerce Pricing.
Should I migrate my SimpleCart store to Commerce?
If you're happy with SimpleCart, you can continue to use it. We'll still support it, so you don't have to migrate just because we've got something shiny and new.
If you're doing a redesign or rebuild of a previously SimpleCart-powered shop, we would recommend looking into the differences (see the documentation for a summary) and determining whether SimpleCart, Commerce, or both are the best match for your store.
Does Commerce support multiple currencies?
Yes, but it's only basic support for now. You can set a different currency per context, which will affect the price formatting the customer sees. Orders placed within different contexts will also keep track of the used currency, so in your merchant dashboard you can see what currency the customer used for their order and payment.
However, Commerce does not currently support currency-specific product prices, so you will need to create different products in different currencies, or a custom product type that does keep track of different currencies.
Not all of the reports are currency aware, meaning they might clump together amounts in somewhat unpredictable ways.
Can I restrict my shop to specific countries?
Yes, using the Country Validation module provided with Commerce you can set up a blacklist or whitelist of countries that are allowed to place an order. This will warn customers that their country is not currently supported when they try to place their order. See the documentation for more information on this module.
How is address validation handled in Commerce?
There is a basic address validation module available in Commerce which will make sure the required fields are filled in, and that the email is syntactically valid. It also checks if a valid country was selected. See the documentation here.
The module does not verify if an address is accurate, but it's possible for developers to build a validation module that verifies an address is real.
Is it possible for my (logged in) customers to use their previously used address during checkout?
Yes, this is built-in to Commerce. When logged in users visit the checkout after placing an order previously, it will show their previously used shipping and/or billing address to reuse.
Additionally, the core-provided User Profile Address module will prefill the "new address" form with the information from the user profile. That can also update the address on their profile. This module is mostly useful if other parts of your site rely on the address on the profile being accurate/filled.
When adding a product that is already in the cart, it is duplicated. Can this be combined?
Yes, enable the Combine Products module to automatically combine products that get added to the cart multiple times into a single item.
How does Commerce handle multilingual shops?
With the separation of products and your catalog, there are many different ways you can build a multilingual shop.
With MODX, there are roughly 2 ways to handle multilingual sites in general. First is the multi-context approach, where different languages have their own context and resources. Secondly there is an integrated approach where a single context is used to serve different languages, for example with MIGX or Lingua to manage translations.
The Commerce cart and checkout use lexicons by default, so your cart and checkout will automatically use the right language if you set the cultureKey appropriately on different contexts. With integrated translations, you'll need to make sure the right cultureKey is set dynamically.
Products are not currently translatable.
Is it possible to skip or force the account step in the checkout?
Yes, different ways of dealing with user accounts in the checkout are supported. You can make it required to be logged in, you can make it optional (default), or you can hide the account step completely. See the documentation for how this can be configured.