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
  • Stock management
  • Checkout via Stripe and PayPal supported out-of-the-box
  • Wishlists
  • Product services (e. g. extended warranty, on-site installation)
  • 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 featuress
  • 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 documentation of this plugin can be found here: https://offline-gmbh.github.io/oc-mall-plugin/

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


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