Product support

Visit this product's website for support.


E-commerce shop solution for October CMS

oc-mall is a fully featured online shop solution for October CMS.

  • Manage Products and Variants
  • Virtual products (download only, no shipping)
  • Product services (e. g. extended warranty, on-site installation)
  • Stock management
  • Checkout via Stripe and PayPal supported out-of-the-box
  • Wishlists
  • Reviews and ratings
  • Custom payment providers
  • Integrated with RainLab.User
  • Multi-currency and multi-language (integrates with RainLab.Translate)
  • Shipping and Tax management
  • Specific prices for different customer groups
  • Unlimited additional price fields (reseller, retail, reduced, etc)
  • Custom order states
  • Flexible e-mail notifications
  • Easily extendable with custom features
  • Google Tag Manager and Google Merchant Center integrations

Due to the large featureset of this plugin is it very likely that there are some unhandled edge cases. If you experience any bugs or issues using this plugin, please file a bug report on our GitHub page and contribute towards better stability.



Below are some totally unscientific benchmarks created on a lazy Saturday afternoon. These tests were run on a DigitalOcean CPU optimized Droplet with 2 vCPU and 4GB RAM. October was run on Ubuntu 18.04, PHP 7.2.10, Apache 2.4.19 and MySQL 5.7.24.

All measurements were done using the Bedard.Debugbar plugin and are the average load time over 10 page loads (I told you they were unscientific!).

Index size defines the size of the offline_mall_index table. This table includes de-normalized information about all Products and Variants. An index size of 1000 means there are 1000 individual Variants and Products stored. The demo data used was built using the php artisan mall:seed-demo command run in an infinite loop.

Category page load is the page load time measured when a category page is loaded. All stored products will be filtered, sorted (by sales count) and counted by the currently viewed category_id. Nine of these products will be displayed and the pagination will be built based on the returned number of results.

Filtered page load is the page load time measured when two filters are being enabled (filter by the color Red and the material Carbon). In this case all products will be filtered by their category, their color and their material. The pagination will be built based on the returned number of results.

Index size Category page load Filtered page load
1'000 290 ms 281 ms
5'000 301 ms 295 ms
10'000 324 ms 318 ms
50'000 448 ms 433 ms
100'000 586 ms 570 ms
200'000 912 ms 865 ms
300'000 1300 ms 1240 ms

Please be aware that these benchmarks are only here to show you how this plugin behaves under different loads and the times will vary depending on the hardware, configuration and setup of your installation. If you really want to know how well the plugin performs install it yourself and give it a go!

The following plugins are required
This plugin is also included into the following bundle
The following plugins extend or depend on the plugin
The following themes use this plugin

The documentation of this plugin can be found here: https://offline-gmbh.github.io/oc-mall-plugin/

  • Found the plugin useful on 22 Sep, 2021

    Great plugin with very good documentation, I can recommend this!!

  • Found the plugin useful on 11 May, 2021

    Hi. Plugin seems wonderful, but I have a question. Is it possible to implement recurring payments (subscription pay)?

  • Found the plugin useful on 2 Mar, 2021

    I am an experienced user of prestashop and open cart, and of course octobercms, and I still think this plugin is great for simple cases. It is wonderful in almost all aspect.

    However, may I know if it is possible to create order in backend? I studied the code a bit and seems not very trobulesome, just one more extra form for Order Model and some relations partial for customer part. Please let me know if there is anything I can help.

  • Found the plugin useful on 12 Feb, 2021

    This plugin is great! Fully customisable, extendable, fast and easy to use. 5 stars ***** from me

  • Found the plugin useful on 21 Dec, 2020

    How is this plugin free?? Absolutely great plugin

  • Found the plugin useful on 10 Sep, 2020

    Absolutely great support, thank you OFFLINE for investing your time and effort into this project.

  • Found the plugin useful on 18 Aug, 2020

    Very good and flexible architecture that suites for the most eshop websites.

    Awesome ecommerce system. Thanks!!!

  • Found the plugin useful on 7 Jul, 2020

    Great project

  • Found the plugin useful on 23 Feb, 2020

    Is there any chance to allow a virtual product to be downloaded without having to sign in (I know there is a login required checkbox, but even when it's unchecked it still redirects to the login page), or just a direct download no need to add it to cart, or any other option, it is really important for my project to have that option, and i am stuck now. and seriously this plugin is too good to be true i'm still asking myself is this really free!

  • author

    Replied on 24 Feb, 2020

    Thank you very much for your review!

    It sounds like you are looking for the Product -> Downloads field where you can attach a file to a product that is downloadable by every website visitor even without an account.

    If this doesn't fit your need, let's discuss a feature request over on our official GitHub repo.

  • Found the plugin useful on 4 Dec, 2019

    The best eCommerce solutions for octobercms

  • Found the plugin useful on 3 Oct, 2019

    Great plugin!!!

    I really like it and it is great to work with! The only feature I am missing is to export invoice to PDF! Would be great to see that soon!

  • Found the plugin useful on 2 Oct, 2019

    This is a triple a plugin of art. AAAmazing.

  • Found the plugin useful on 17 Sep, 2019

    Great job! This plugin is the best. Can you add support for Viva Payments alongside with Stripe and PayPal please?

  • Found the plugin useful on 14 May, 2019

    Great work on this plugin and the best i have seen

  • Found the plugin useful on 5 Apr, 2019

    This plugin offers all in one package. I compared this plugin with open cart, magento and presta shop, but still this plugin wins in all cases.

  • Found the plugin useful on 4 Apr, 2019

    This plugin is simply the best e-commerce plugin for October CMS in my opinion. I also tried JKShop and Shopaholic. One important thing to improve is to support browser history on ajax requests. Many thanks for this plugin!

  • author

    Replied on 4 Apr, 2019

    Thank you very much for the kind words, danielbidala!

  • Found the plugin useful on 4 Feb, 2019

    Great plugin. Continuously improving. The developer managing this plugin is also very supportive. I would go as far as to say that this is better than JKShop

  • Found the plugin useful on 29 Jan, 2019

    good design !

  • Found the plugin useful on 15 Jan, 2019

    Great quality of code, easy to adapt and understand. Stick to October way of doing. Full multilange. Great work, well done.

  • Found the plugin useful on 11 Jan, 2019

    For my needs so far easily the best ecommerce framework. Great job Tobias.


Fixed bug where properties are displayed multiple times on the product detail page

Apr 22, 2022


Fixed compatibility issue with October 1

Apr 07, 2022


Added Support for October 2.2

Mar 03, 2022


Various bug fixes

Dec 03, 2021


Further October 1.0 fixes

Oct 28, 2021


Optimized compatibility with October 1.0 releases

Oct 27, 2021


Fixed invalid migration file

Oct 27, 2021


Fixed many bugs, added discounts for payment methods, optimized performance of product page, optimized October 2.0 compatibility

Oct 27, 2021


Fixed many bugs, added discounts for payment methods, optimized performance of product page, optimized October 2.0 compatibility

Oct 27, 2021


Fixed various Bugs in the QuickCheckout component

Aug 21, 2021


Various minor bugfixes and improvements

Jul 19, 2021


Added possibility to apply discounts when a certain shipping method is selected (credits to @inalto)

Jun 13, 2021


Added support for PHP 8 (see changelog: https://offline-gmbh.github.io/oc-mall-plugin/changelog/1.14.0.html)

Jun 10, 2021


Fixed various bugs

May 29, 2021


Fixed another October 2.0 incompatibility

Apr 26, 2021


Optimized October 2.0 compatibility

Apr 19, 2021


Another Bugfix release

Apr 02, 2021


Bugfix release

Mar 24, 2021


Bugfix release

Jan 07, 2021


!!! Switched to Stripe Intents API (supports Strong Customer Authentication and 3D Secure payment flows). Test this update with your Stripe setup before deploying it in production! (Changelog: https://tinyurl.com/y79ane6j)

Dec 28, 2020


Re-use RainLab.User's min password length setting, fixed various bugs

Nov 29, 2020


Bugfix release

Nov 20, 2020


Added option to display Shipping selector before Payment method selector in default Checkout component

Oct 23, 2020


Added experimental QuickCheckout component (single-page checkout), added dutch mail translations, various buxfixes and optimizations

Oct 23, 2020


Fixed handling of checkbox properties, prevent discount codes from being applied multiple times by the same user

Oct 13, 2020


Fixed mall.index.extend event handling

Oct 08, 2020


Bugfix release

Sep 30, 2020


Bugfix release

Sep 10, 2020


Bugfix release

Sep 07, 2020


Added date and datetime Property field types

Aug 08, 2020


Bugfix release

Aug 04, 2020


Added Google Category ID field to Categories (Google Merchant integration)

Jul 26, 2020


Added width, height and length fields to Products and Variants

Jul 26, 2020


Bugfix release

Jul 22, 2020


Minor bugfix to color custom field type

Jul 20, 2020


Added "Customer Group" discount trigger

Jul 18, 2020


Minor bugfix release

Jul 10, 2020


Added short description field to Category model

Jun 20, 2020


Added `mall.order.afterCreate` event, fixed various bugs

Jun 04, 2020


Added cart product count and quantity sum info to the mall.cart.productAdded event to make consistent counter updates in the frontend easier (see https://tinyurl.com/ybxl9jlf)

Jun 01, 2020


Bugfix release

Jun 01, 2020


Fixed infinite loop with certain Review Categories setups

May 15, 2020


Fixed handling of virtual product downloads for logged out customers

May 08, 2020


Various bugfixes

May 06, 2020


Fixed display of e-mail address in orders list

May 05, 2020


Fixed multi-lang search with recent RainLab.Translate versions

Apr 02, 2020


Minor bugfix release

Apr 02, 2020


Added Farsi translations

Mar 09, 2020


Added Czech translations, fixed Review approvals in Product form

Mar 06, 2020


A customer can now set a default shipping and billing address on the profile page. Don't forget to add some styles! (see https://tinyurl.com/vpr3g8x)

Feb 24, 2020


Added search boxes to various Product relation managers

Feb 14, 2020


Save quantity for Wishlist items correctly

Feb 14, 2020


A variants's short description also supports multi-line text input now :)

Feb 06, 2020


A product's short description supports now multi-line text input

Feb 06, 2020


Optimized compatibility with Laravel 6

Feb 05, 2020


!!! Fixed RainLab.Translate issue. Also, RainLab.Translate is now a required dependency for this plugin. Make sure to install at least version 1.6.6 of RainLab.Translate before installing this update.

Jan 22, 2020


!!! Do not update until version 1.11 is released. There is a bug in RainLab.Translate because of which translations won't be loaded correctly. Also do not update RainLab.Translate until this bug is fixed: https://github.com/rainlab/translate-plugin/issues/539. We will release a new version as soon as everything is back in order.

Jan 18, 2020


Bugfix release

Jan 17, 2020


!!! Added property values to default Product component markup. This will add new markup that needs styling! See Changelog: https://tinyurl.com/txwozkj

Jan 16, 2020


Added Customer relation to Wishlist model

Jan 10, 2020


Another bugfix release

Jan 10, 2020


Added shipping method support for Wishlists

Jan 09, 2020


Fixed handling of country specific Taxes for Wishlists

Jan 09, 2020


Bigfix release

Jan 09, 2020


Better handling of country specific taxes, multi-language e-mails, translatable property values and more! (Full Changelog: https://offline-gmbh.github.io/oc-mall-plugin/changelog/1.9.0.html)

Jan 08, 2020


The PDF button in the Wishlists component remains visible now after a Product has been removed or edited by the user

Dec 12, 2019


Prices are now correctly indexed in all registered currencies. Run php artisan mall:index to benefit of these optimizations.

Dec 11, 2019


Bugfix release

Dec 11, 2019


Added onClear method to Wishlist component

Nov 27, 2019


Fixed price sorting in Products component using the MySQL index

Nov 21, 2019


Added PDF invoices and "export as PDF" support for wishlists (https://tinyurl.com/t6y2pxn)

Nov 14, 2019


Bugfix release

Nov 11, 2019


Added a valid from date for discounts

Nov 11, 2019


Added showShipping property to the Cart component. This allows you to display a cart without including any shipping information.

Oct 29, 2019


Another bugfix release

Oct 29, 2019


Bugfix release

Oct 29, 2019


Made forceShippingPrice feature to only override the price for a specific shipping method. Make sure to add the new ID parameter in case you use this feature in your custom code.

Oct 29, 2019


Updated russian translations (thanks to @igor-tv)

Oct 25, 2019


Bugfix release

Oct 23, 2019


Minor Bugfix when editing a Review on the frontend

Oct 17, 2019


Fixed bug where product entries in RainLab.Pages menus included the wrong variant id

Oct 16, 2019


Bugfix for parent category dropdown in backend

Oct 15, 2019


Added support for virtual products

Oct 12, 2019


Bugfix release

Oct 10, 2019


Added forceShippingPrice method to Cart model

Sep 25, 2019


Bugfix release. Don't forget to check out the new changelog for updates to 1.6.0: https://offline-gmbh.github.io/oc-mall-plugin/changelog/1.6.0.html

Sep 24, 2019


Added Reviews. Speaking of reviews, did you already add a review for this plugin ;-)? https://octobercms.com/plugin/offline-mall

Sep 24, 2019


Another bugfix release

Sep 11, 2019


Various bugfixes

Sep 10, 2019


!!! There is now a changelog documenting breaking changes with every future release. Make sure to check it out: https://bit.ly/2kCk2F9

Sep 10, 2019


Added Services feature (e. g. extended warranty, on-site installation)

Sep 10, 2019


!!! Added terms and conditions checkbox to signup form. If you manually modified the signup form partials make sure to add the checkbox as well since it is being validated as required by default. (see https://tinyurl.com/yyanm7eo)

Sep 04, 2019


Added Wishlists feature

Sep 03, 2019


Added embeds repeater to Product model to add custom embed code (like videos)

Aug 27, 2019


!!! This release does not contain any code updates. If you are using the mall demo theme make sure to patch the following two lines to prevent XSS attacks on your website: https://bit.ly/2Y4lUs3

Jul 15, 2019


Fixed payment log display in backend order list

Jul 02, 2019


Bugfix release

Jul 02, 2019


Added links to edit and preview customer data to orders list (thanks to @Eoler)

Jul 01, 2019


Re-use Eloquent model events to trigger `mall.cart.product.*` events. If you added custom event listeners for any of these events make sure to update your function signature to only accept a single CartProduct model (see https://offline-gmbh.github.io/oc-mall-plugin/development/events.html#cart)

Jun 17, 2019


Fixed minor dataLayer bugs

May 29, 2019


Added new mall.cart.product.updated and mall.cart.product.quantityChanged events

May 28, 2019


Minor bugfix release

May 27, 2019


Optimized MySQL/MariaDB Query compatibility, made the use of states/counties in addresses optional (configurable via the backend settings), added redirectOnPropertyChange property to Product component

May 25, 2019


Minor Google Merchant Feed integration fixes

May 25, 2019


Added french translations (thanks to @willouch)

May 20, 2019


Fixed inheritance of Variant descriptions

May 13, 2019


Minor bug fix release

May 13, 2019


Added Google Tag Manager integration (see https://tinyurl.com/mall-analytics-docs)

May 08, 2019


Added Google Merchant Center integration

May 08, 2019


Added sort by name option to Products component (requires `php artisan mall:reindex` to work)

May 04, 2019


Fixed some minor bugs

Apr 29, 2019


Updated italian translations (thanks to @Cryhex), fixed Variant indexing bug

Apr 19, 2019


Fixed index entry creation of newly created variants

Apr 13, 2019


Added support for RainLab.User account activation links ("user" mode only, "admin" mode is unsupported)

Apr 12, 2019


Added flash messages to add to cart events

Apr 08, 2019


Fixed handling of custom field color values, allow single category menu item to be replaced by its products

Apr 08, 2019


Minor bug fixes and optimizations

Apr 05, 2019


Customers can now re-use payment methods (like Credit cards)

Mar 25, 2019


Added italian translations (thanks to @marcomessa)

Mar 22, 2019


Fixed deletion of discounts

Mar 18, 2019


Optimized handling of race conditions during order creation

Mar 05, 2019


Update jsonable columns to mediumtext type / fixed product dropdown in discount form

Mar 04, 2019


Minor changes to payment log display

Mar 04, 2019


Optimized saving of pricing and stock information

Feb 28, 2019


Fixed payment logging issue

Feb 28, 2019


Optimized logging of failed payments

Feb 27, 2019


Fixed calculation of country specific product taxes

Feb 20, 2019


Fixed display of subcategories in Rainlab.Pages menus

Feb 19, 2019


Added simple scoreboard to Orders page, fixed problem with very long variant names

Feb 19, 2019


Fixed bug in mall:check command

Feb 18, 2019


Further improved MySQL 5.7 compatibility

Feb 18, 2019


Fixed manual sort orders when using new table-backed index

Feb 18, 2019


!!! New database-backed index. To increase the performance of this plugin the product index can now be stored in the database if you use MySQL 5.7+ or MariaDB 10.2+ (support will be auto-detected). After this update your index will have to be rebuilt by running "php artisan mall:reindex" from the terminal. Between the completition of the update and the re-indexing your store will be empty! Make sure to consider this downtime when deploying to a production system.

Feb 08, 2019


!!! A product can now belong to multiple categories. If you are using the `$product->category` relationship directly make sure to update it to use the new `$product->categories` relationship. Existing products will be migrated and re-indexed during this update. If you have many products (more than a few hundred) you should run `php artisan october:update` from the command line to get more feedback on this update.

Feb 07, 2019


Updated Omnipay to v3, added list views for payment logs and customer addresses. If you have custom payment providers that use Omnipay make sure that they are compatible with v3 before updating

Feb 06, 2019


Optimized RainLab.Translate integration (thanks to @alxy)

Feb 05, 2019


Optimized handling of customer group specific prices

Feb 04, 2019


Minor bugfixes and improvements

Feb 03, 2019


Minor bugfixes and improvements

Feb 02, 2019


Auto update price display when custom field options are changed

Feb 01, 2019


Fixed manage shipping methods permissions

Jan 23, 2019


Added description field to Category model

Jan 20, 2019


Minor improvements to Cart and Products components

Jan 20, 2019


Fixed signup for guest accounts

Jan 20, 2019


Allow Products component without category filter (thanks to @amdad)

Jan 14, 2019


Fixed handling of 0 as price value (thanks to @ajsaces)

Jan 12, 2019


Fixed usage of single Category as menu item (thanks to @PrestaSafe)

Jan 12, 2019


Added option to force filter string for Products component (https://offline-gmbh.github.io/oc-mall-plugin/components/products.html#filter-string)

Jan 10, 2019


Optimized handling of manually created customer accounts

Jan 10, 2019


Added "on sale" filter option to products filter component

Jan 10, 2019


Minor bugfixes

Jan 10, 2019


Optimized SQLite support

Jan 10, 2019


Added russian translations (thanks to @HomaEEE)

Jan 09, 2019


Fixed build problems

Jan 08, 2019


Fixed event handler for welcome email

Jan 08, 2019


Initial release

Jan 08, 2019


Initial release

Oct 22, 2018

For all versions

See https://offline-gmbh.github.io/oc-mall-plugin and click on Changelog