Product support

Get help in the plugin support forum.


JK Shop is fully powerful eCommerce plugin.

Live Demo

You can visit Live Demo site. You can create order, pay order by paypal (using sandbox). Or you can visit Backend and browse all sections (products, orders, categories, taxes, etc..)

Backend login as (demo | Demo)


  • Modern platform - OctoberCMS based on Laravel
  • Many properties on products
  • Shipping, Taxes integration
  • Generate Invoice from HTML template
  • Automatic sending emails after change order status
  • Many components for easy use
  • Easy customization

Payment Methods / Gateways

Required Plugins

RainLab User

  • User Orders
  • User should have sale on category - in percent
  • User should have individual price on product

Other Plugins Support

RainLab Pages

  • Menu - allow generate dynamic menu by categories
  • Menu - allow generate dynamic menu by brands

RainLab Sitemap

  • Categories
  • Brands
  • Products

RainLab Translate

  • Translations

Offline SiteSearch

  • Site Search


General information


Tree of categories is most important for correct setup products.

  • Title & Slug - use good words for friendly URL
  • Sales - If you have installed RainLab User plugin you can set sale for current category and current user.



If you setup brand correctly you can filter products by brand.

  • Title & Slug - use good words for friendly URL



Taxes when you can use fro products, shipping, etc.. Taxes


System have to at least one active carrier. Important for correct setup is section Pricing:

  • Free Shipping - on / off
  • Tax - all prices here are without tax
  • Billing: According to total weight OR According to total price


Order Statuses

Order statuses working with OctoberCMS mail templates. After instalation you have available this statuses with email templates. But you have to set created mail templates into statuses.

When Order change status (manual change from backend or automatic change - payment accepted paypal) it is generate event - sent email if is setup.

Orders can be filter by status.

Order Statuses


Products have to many fields. Sections:

  • Detail - general information
  • Prices - if you have user plugin you can set individual price for current user
  • SEO
  • Categories - check all categories from root to current
  • Size - size of package
  • Quantities
  • Customization - can be add custom fields( label; value )
  • Properties - you can select properties for this product (size, color, etc..)
  • Accessories - select accessories (products)
  • Featured - select featured products
  • Images - list of image (first image use as primary image)
  • Attachments - list of files (fill title file)

Product detail


List of orders, you have full control on orders - edit, new, cancel, delete. Sections:

  • Detail - status, carrier, invoice
  • Products - product, quantity, price
  • Customer - addresses, email, phone
  • Prices - total prices
  • Payment methods - Payment method, paid date, payment detail - for paypal only



Properties extend products. Available property types:

  • Select - list of options
  • Select multiple - list of options with multiple select
  • Textbox - simple text input
  • Number - simple number input
  • Checkbox - simple checkbox input


Final result - product detail - frontend Properties-product


You can create two main types discount coupons: global and per item.

Global vs Per Item coupons: If you select product or category this coupon will be used for each product in basket. If products and categories are empty coupon will be used one for basket.

Coupons have these properties:

  • Valid From
  • Valid To
  • Value
  • Type of Value (Money or Percentage)
  • Users (If empty, allow for all users)
  • Minimum value of basket (only global coupons)
  • Categories
  • Products


Payment Gateway

You can simple add Payment Gateway into your system, if you need more info you can check backend on DEMO site.

Payment Gateway have these properties:

  • Order Status Before
  • Order Status After
  • Gateway Title - Title for customers
  • Payment Page - Payment page in default with :slug property and with payment gateway component
  • Currency - Currency Code
  • Omnipay Gateway - Choose one or leave empty for custom payment page
  • Parameters - Dynamic parameters for the gateway



In settings are this sections:

  • General - number formating, company email
  • OBSOLETE - Cash on delivery
  • OBSOLETE - Bank transfer
  • OBSOLETE - Paypal
  • OBSOLETE - Stripe
  • Invoice template


For more information you can visit JK Shop plugin page



Products by Category

Display list of products by category. Parameters:

  • URL Slug Category
  • URL Page
  • Products per page
  • Product detail page

Products by Category

Products by Brand

Display list of products by Brand. Parameters:

  • URL Slug Brand
  • URL Page
  • Products per page
  • Product detail page

Products by Brand

Products List

Display list of products, for example products on sale, etc.. Parameters:

  • Limit of products
  • Order By
  • Sort ASC or DESC
  • On Sale Only
  • Product detail page

Products List

Product Detail

Display detail of product. Parameters:

  • URL Slug
  • Brand page - List of products by brand

Products Detail

My Orders (Registered user)

Display list of my orders. You have to installed RainLab User plugin. Parameters:

  • URL Page number
  • Orders per page
  • My Order Detail Page

My Orders

My Order Detail (Registered user)

Display detail of my order. Parameters:

  • URL Order ID
  • Product detail page

My Order Detail


Basket is main component make all operation from add product to basket to finish (pay) order. The best solution is have it on the layout.

All operation is based on Ajax. Parameters:

  • ID Element Total Cart Price - This Element will be refresh after Ajax call - add product, etc.. (start with #)
  • ID Element Wrapper Basket Component - This Element will be refresh after ajax call - change quantity, etc.. (start with #)
  • Product detail page


Basket have 4 steps (views) and this steps are changed via Ajax call. If you want change components view, you have to implement your own Ajax controller.

Default Controllers

  • onRunBasket - show first page on basket
  • onRunBasketShippingPayment - show page for select shipment and payment methods
  • onRunBasketAddress - show page for add billing and delivery address
  • onRunBasketSummary - show summary page
  • onCompleteOrder - show thank you page

For developers - if you can use basket model, you can call getSessionBasket() method. All views for basket you can find here: /jkshop/components/partials/

Brand Detail

Display detail of brand. Parameters:

  • URL Slug

Brand Detail

Brands List

Display list of brands. Parameters:

  • URL Page
  • Brands per page
  • Order By Title or Slug
  • Sort ASC or DESC
  • On Sale Only
  • Brand detail page

Brands List

Breadcrumbs Category

Display Breadcrumbs for Categories. Parameters:

  • URL Slug Category

Breadcrumbs Category

Breadcrumbs Product

Display Breadcrumbs for Product Categories. Parameters:

  • URL Slug Product
  • URL Slug Category
  • Products Category page

Breadcrumbs Product

  • Found the plugin not useful on 20 Feb, 2020

    I've been using this plugin for a while now and really don't enjoy working whit it. Vendor certificate are out of date (for ideal). Support sucks. Hardly any updates. And way less flexible then I hoped it would be. This project is just not well maintained. I think it had a good start but it still has a long way to go.

  • Found the plugin useful on 29 Jul, 2018

    JkShop is no doubt one of the best plugins in octobercms for shopping cart. I just want to know that in jkshop the admin can change the order status of only the registered users, we cannot change the order status of the guest users, why? if shop owner receives 100 orders from guest users and he want to change the order status to expedited order then should he manually register each guest customer?

  • Found the plugin useful on 5 Dec, 2017

    Robust eCommerce Plugin with great SEO integration throughout. Areas for improvement is the order processing and order notifications (for shop admins), particularly where a manual check is required for all orders.

  • Found the plugin useful on 16 Jun, 2017

    Great commerce library! All the base functionality in play & well developed!

  • Found the plugin useful on 8 Jun, 2017

    A really good plugin, but need some love :) I agree on what Ramon Marti and Devin Green are saying, but i definitly recommend this plugin!

  • Found the plugin useful on 22 May, 2017

    This plugin is actually pretty awesome. The only thing I would change is the hard coded stuff in the code. A lot of the stuff that I needed to do with this plugin is hard coded and should be coded with a way to put it inside a partial and duplicate it so when the plugin updates, it doesn't shift the entire project (e.g. having to update the code after each update)

    4 out of 5 for me :)

  • Found the plugin useful on 30 Dec, 2016

    Very well done, well documented.

    The negative Things I found:

    • There are still old code "corpses" from the rainlab.blog.plugin
    • The new payment gateways have a major flaw, if you have the URL you can pay any order with it, even though you already received payment and/or it wasn't the payment gateway you chose.

    Because of this:

    • You can pay without being logged in
    • You can pay orders of other customers
    • You can pay the same order multiple times
    • If you leave the page the order status doesn't change to cancelled

    As an example: Click this link http://www.jkshopdemo.jiri-octobercms.com/custom-payment-stripe-checkout/463

    Just change the order number and voila you can pay another customers order.

    I know it is designed as an example and we should make our own gateways but I just thought I'll let you know.

  • Found the plugin useful on 1 Oct, 2016

    Great plugin. Lots of options. Took it for a first project. Need to have an option to choose tabs. TOO much and very lots are not in use.

  • Found the plugin useful on 8 Sep, 2016

    I think this plugin is amazing! It has a lot of features and briliant support from author. 5 stars review for that plugin :)

  • Found the plugin useful on 6 Sep, 2016

    Great Plugin! Easy to use and with a lots of features!!! Great work!

  • Found the plugin useful on 16 Jun, 2016

    updated quickly!

  • Found the plugin useful on 15 May, 2016

    A really good plugin! The coding is excellent! I hope that it will grow.


Fix: show list of Omnipay gateway

Feb 20, 2020


!!! Omnipay payment was upgraded from a version 2.* to a 3.*. Incompatible payment packages with a omnipay version 3.* were removed.

Feb 20, 2020


Fix 404 page - https://octobercms.com/plugin/support/jiri-jkshop/missing-product-error-404

Jul 01, 2019


Update vendors (dompdf, omnipay, etc..), Omnipay-Stripe payment fix issue with a decimal places

Sep 09, 2018


Code optimization

Jul 19, 2018


Bug fix on a product detail component - https://octobercms.com/plugin/support/jiri-jkshop/no-add-to-cart-button

Jul 19, 2018


Update vendors (dompdf, omnipay, etc..), Small fixes / improvements

Jun 27, 2018


Small fixes on components, Fix order category tree

Apr 11, 2018


Update vendors (dompdf, omnipay, etc..), small fix

Mar 22, 2018


Fix: installation on PostgreSQL

Mar 22, 2018


Add virtual product option; Product - New Tab: Virtual Product; Order Status - new checkbox: is_paid => Consumer can download virtual product from an order detail if current order status is paid.

Feb 02, 2018


Fix: previous version - doubled product property

Jan 25, 2018


Small fixes on components: custom payment stripe, product detail, basket - filtering available carrier by total weight

Jan 25, 2018


Extended stock inventory - every product property can have set extended quantity - if this is set main product quantity will be ignored. Example: size X-10pcs; S-5pcs. More info there - https://octobercms.com/plugin/support/jiri-jkshop/feature-request-adding-inventory-per-property?page=1

Jan 23, 2018


Small fixes, add eager-loading for a images to a components: BrandList, ProdctsByBrand, ProductsByCategory, ProductsList - https://octobercms.com/plugin/support/jiri-jkshop/optimize-loading-product-images

Jan 15, 2018


Small fixes, add search box for accessories and features

Dec 12, 2017


Update vendors (dompdf, omnipay, etc..), small fixes

Nov 06, 2017


Fixed Payment Gateway component issue - https://octobercms.com/plugin/support/jiri-jkshop/error-onpaymentsubmit

Jul 21, 2017


Fixed new installation issue

Jun 12, 2017


Add coupon - coupon_wrong_code update - error message about validation it shown only once

Jun 10, 2017


Add: Dutch translation (thanks Jeroen)

Jun 10, 2017


Orders: add security token - which allow to generate unique URL for a payment pages

Jun 10, 2017


Backend - Products: Add checkboxes, Add multi delete, Add multi duplicate

Jun 10, 2017


Fixed DB error - installation on PostgreSQL

Jun 10, 2017


Update: Italian translation

Jun 10, 2017


Add some features into basket and product details components: allow to add product into basket with qty and etc..

Apr 04, 2017


Add Extended Inventory Management. OrderStatus - add new fields: disallow for gateway, qty decrease, qty increase back

Jan 23, 2017


Add security checks for payment components

Jan 23, 2017


Add: French translation (thanks Théo Corée)

Jan 23, 2017


Small fixes: Product Detail component fixed URL for accessories and featured products

Jan 02, 2017


Small fixes: Product Detail component fixed URL for accessories and featured products; Fixed DB error on some MySQL databases

Jan 02, 2017


Add payment gateways: TwoCheckoutPlus, TwoCheckoutPlus_Token

Jan 02, 2017


Upgrade: Omnipay payment gateways, Small Fixes in Components

Dec 12, 2016


Basket Component: added method 'onGetSessionBasket' - now you can easy call this method and get complete basket as JSON

Nov 23, 2016


Small security fixes: MyOrderDetail component, MyOrders component - if user or id order is bad, return 404, Add Foreign keys

Nov 20, 2016


Basket component: moved htm files into basket folder, for easy overriding. Payment Gateways: gateway title is translatable.

Nov 14, 2016


Check upgrade guide before upgrading: Add payment gateways, remove previous payment system (https://octobercms.com/plugin/jiri-jkshop#upgrade)

Nov 13, 2016


Component BreadcrumbsProduct - fix URL

Nov 01, 2016


Add Components: BreadcrumbsCategory, BreadcrumbsProduct

Nov 01, 2016


Small Fix in Coupons - datepicker issue

Nov 01, 2016


Add Components: BrandDetails, BrandsList. Thanks to Nick Gavanozov

Oct 30, 2016


Add: German translation

Oct 30, 2016


Increased character limits (name, title, etc.) to 255

Oct 30, 2016


Small Fixes in Coupons

Oct 13, 2016


Coupons - discount coupons (https://octobercms.com/plugin/jiri-jkshop#Coupons)

Oct 13, 2016


Fix name of Users without surname

Oct 02, 2016


Small Fixes

Sep 25, 2016


Added translation support

Aug 29, 2016


Fix: order list - order by order status

Aug 21, 2016


Small fixes and improvements: add some language texts, page 404 for non-existent slug - products, categories, brands

Aug 11, 2016


Add: Settings - default image; Rainlab.User: save billing and delivery address into user; Products Components - add or extend order by

Jul 10, 2016


Add: Czech translation

Jun 29, 2016


Add: Stripe payment gateway

Jun 19, 2016


Add: Order - tracking number for tracking package

Jun 14, 2016


Fix: Advanced Properties - Options - Order by

Jun 13, 2016


Add: Product - Advanced Properties ( You can add property options with pivot data: title, description, price difference, image ); Update Components: Basket, Product Detail

Jun 13, 2016


Add: Order - note, county; New page variables for components (Products By Category, Products By Brand)

Jun 05, 2016


Properties - product properties: sizes, colors, etc.. (https://octobercms.com/plugin/jiri-jkshop#Properties)

May 27, 2016


Fix: Carrier - free shipping; Add: Italian translation

May 23, 2016


Fixes: Order detail - names on list of customers, Orers list - little UI bug

May 22, 2016


Orders - fix search, add hidden fields into order list (Email, Phone, First name, Address, Postcode, City, Country), all fields are searchable

May 18, 2016


Automatic rounding into order total price - Paypal allow max 2 decimal places

May 15, 2016


Backend - language files [EN], Fixes: Links featured + accesories, Basket - work with product minimum quantity, Complete Order - check stock before order

May 15, 2016



May 12, 2016


First Release

May 11, 2016


Add support RainLab.User (sale for category, individual prices)

May 11, 2016


Add orders

May 11, 2016


Add Products

May 11, 2016


Add Order Statuses

May 11, 2016


Add Carriers

May 11, 2016


Add Taxes

May 11, 2016


Add brands

May 11, 2016


First version of JK Shop

May 11, 2016

Version 1.5.0 Add payment gateways, remove previous payment system

Old payment system was removed:

  • change Basket component
  • disabled payment setting (Cash on delivery, Bank transfer, Paypal, Stripe)

Add payment gateways

all removed function can be replaced by this new system, for easier upgrade are prepared this components:

  • Custom Payment Cash On Delivery - Custom payment component cash on delivery
  • Custom Payment Paypal IPN - Custom payment gateway by the IPN validation
  • Custom Payment Stripe Checkout - Custom payment gateway stripe implementation use one page checkout.

And if you need more informations you can visit LIVE demo site this www.jkshopdemo.jiri-octobercms.com/backend with correct set up a few payment gateways.