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)
Benefits
- 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
- Own custom payment method ( Cash on delivery, Bank transfer )
- 33 Payment gateways ( Paypal, Stripe, etc.. )
- Allow custom omnipay payment gateway https://github.com/thephpleague/omnipay
Required Plugins
- User Orders
- User should have sale on category - in percent
- User should have individual price on product
Other Plugins Support
- Menu - allow generate dynamic menu by categories
- Menu - allow generate dynamic menu by brands
- Categories
- Brands
- Products
- Translations
- Site Search
Themes
General information
Categories
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.
Brands
If you setup brand correctly you can filter products by brand.
- Title & Slug - use good words for friendly URL
Taxes
Taxes when you can use fro products, shipping, etc..
Carriers
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.
Products
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)
Orders
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
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
Coupons
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
Setting
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
The following plugin is required
The following plugins extend or depend on the plugin

JK Shop Category List
Shows the list of JK-shop categories on your page
JK Shop Category List
Shows the list of JK-shop categories on your page

TPV Virtual Payment Gateway
This Plugin is Payment Gateway addon for JKshop Plugin
TPV Virtual Payment Gateway
This Plugin is Payment Gateway addon for JKshop Plugin
The following theme uses this plugin
Components
Products by Category
Display list of products by category. Parameters:
- URL Slug Category
- URL Page
- Products per page
- Product detail page
Products by Brand
Display list of products by Brand. Parameters:
- URL Slug Brand
- URL Page
- Products per page
- Product detail page
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
Product Detail
Display detail of product. Parameters:
- URL Slug
- Brand page - List of products by brand
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 Order Detail (Registered user)
Display detail of my order. Parameters:
- URL Order ID
- Product detail page
Basket
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
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
Breadcrumbs Category
Display Breadcrumbs for Categories. Parameters:
- URL Slug Category
Breadcrumbs Product
Display Breadcrumbs for Product Categories. Parameters:
- URL Slug Product
- URL Slug Category
- Products Category page
-
Adk
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.
-
Amjad
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?
-
Nick Humphries
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.
-
viral-vector
Found the plugin useful on 16 Jun, 2017
Great commerce library! All the base functionality in play & well developed!
-
Youssef Seghir
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!
-
Devin Green
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 :)
-
Ramon Marti
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.
-
Alexei
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.
-
Paulius Byla
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 :)
-
Gerald Schandl
Found the plugin useful on 6 Sep, 2016
Great Plugin! Easy to use and with a lots of features!!! Great work!
-
David Gan
Found the plugin useful on 16 Jun, 2016
updated quickly!
-
Alex trento
Found the plugin useful on 15 May, 2016
A really good plugin! The coding is excellent! I hope that it will grow.
-
1.8.1 |
Fix: show list of Omnipay gateway Feb 20, 2020 |
---|---|
1.8.0 |
!!! Omnipay payment was upgraded from a version 2.* to a 3.*. Incompatible payment packages with a omnipay version 3.* were removed. Feb 20, 2020 |
1.7.11 |
Fix 404 page - https://octobercms.com/plugin/support/jiri-jkshop/missing-product-error-404 Jul 01, 2019 |
1.7.10 |
Update vendors (dompdf, omnipay, etc..), Omnipay-Stripe payment fix issue with a decimal places Sep 09, 2018 |
1.7.9 |
Code optimization Jul 19, 2018 |
1.7.8 |
Bug fix on a product detail component - https://octobercms.com/plugin/support/jiri-jkshop/no-add-to-cart-button Jul 19, 2018 |
1.7.7 |
Update vendors (dompdf, omnipay, etc..), Small fixes / improvements Jun 27, 2018 |
1.7.6 |
Small fixes on components, Fix order category tree Apr 11, 2018 |
1.7.5 |
Update vendors (dompdf, omnipay, etc..), small fix Mar 22, 2018 |
1.7.4 |
Fix: installation on PostgreSQL Mar 22, 2018 |
1.7.3 |
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 |
1.7.2 |
Fix: previous version - doubled product property Jan 25, 2018 |
1.7.1 |
Small fixes on components: custom payment stripe, product detail, basket - filtering available carrier by total weight Jan 25, 2018 |
1.7.0 |
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 |
1.6.12 |
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 |
1.6.11 |
Small fixes, add search box for accessories and features Dec 12, 2017 |
1.6.10 |
Update vendors (dompdf, omnipay, etc..), small fixes Nov 06, 2017 |
1.6.9 |
Fixed Payment Gateway component issue - https://octobercms.com/plugin/support/jiri-jkshop/error-onpaymentsubmit Jul 21, 2017 |
1.6.8 |
Fixed new installation issue Jun 12, 2017 |
1.6.7 |
Add coupon - coupon_wrong_code update - error message about validation it shown only once Jun 10, 2017 |
1.6.6 |
Add: Dutch translation (thanks Jeroen) Jun 10, 2017 |
1.6.5 |
Orders: add security token - which allow to generate unique URL for a payment pages Jun 10, 2017 |
1.6.4 |
Backend - Products: Add checkboxes, Add multi delete, Add multi duplicate Jun 10, 2017 |
1.6.3 |
Fixed DB error - installation on PostgreSQL Jun 10, 2017 |
1.6.2 |
Update: Italian translation Jun 10, 2017 |
1.6.1 |
Add some features into basket and product details components: allow to add product into basket with qty and etc.. Apr 04, 2017 |
1.6.0 |
Add Extended Inventory Management. OrderStatus - add new fields: disallow for gateway, qty decrease, qty increase back Jan 23, 2017 |
1.5.9 |
Add security checks for payment components Jan 23, 2017 |
1.5.8 |
Add: French translation (thanks Théo Corée) Jan 23, 2017 |
1.5.7 |
Small fixes: Product Detail component fixed URL for accessories and featured products Jan 02, 2017 |
1.5.6 |
Small fixes: Product Detail component fixed URL for accessories and featured products; Fixed DB error on some MySQL databases Jan 02, 2017 |
1.5.5 |
Add payment gateways: TwoCheckoutPlus, TwoCheckoutPlus_Token Jan 02, 2017 |
1.5.4 |
Upgrade: Omnipay payment gateways, Small Fixes in Components Dec 12, 2016 |
1.5.3 |
Basket Component: added method 'onGetSessionBasket' - now you can easy call this method and get complete basket as JSON Nov 23, 2016 |
1.5.2 |
Small security fixes: MyOrderDetail component, MyOrders component - if user or id order is bad, return 404, Add Foreign keys Nov 20, 2016 |
1.5.1 |
Basket component: moved htm files into basket folder, for easy overriding. Payment Gateways: gateway title is translatable. Nov 14, 2016 |
1.5.0 |
Check upgrade guide before upgrading: Add payment gateways, remove previous payment system (https://octobercms.com/plugin/jiri-jkshop#upgrade) Nov 13, 2016 |
1.4.7 |
Component BreadcrumbsProduct - fix URL Nov 01, 2016 |
1.4.6 |
Add Components: BreadcrumbsCategory, BreadcrumbsProduct Nov 01, 2016 |
1.4.5 |
Small Fix in Coupons - datepicker issue Nov 01, 2016 |
1.4.4 |
Add Components: BrandDetails, BrandsList. Thanks to Nick Gavanozov Oct 30, 2016 |
1.4.3 |
Add: German translation Oct 30, 2016 |
1.4.2 |
Increased character limits (name, title, etc.) to 255 Oct 30, 2016 |
1.4.1 |
Small Fixes in Coupons Oct 13, 2016 |
1.4.0 |
Coupons - discount coupons (https://octobercms.com/plugin/jiri-jkshop#Coupons) Oct 13, 2016 |
1.3.2 |
Fix name of Users without surname Oct 02, 2016 |
1.3.1 |
Small Fixes Sep 25, 2016 |
1.3.0 |
Added translation support Aug 29, 2016 |
1.2.4 |
Fix: order list - order by order status Aug 21, 2016 |
1.2.3 |
Small fixes and improvements: add some language texts, page 404 for non-existent slug - products, categories, brands Aug 11, 2016 |
1.2.2 |
Add: Settings - default image; Rainlab.User: save billing and delivery address into user; Products Components - add or extend order by Jul 10, 2016 |
1.2.1 |
Add: Czech translation Jun 29, 2016 |
1.2.0 |
Add: Stripe payment gateway Jun 19, 2016 |
1.1.4 |
Add: Order - tracking number for tracking package Jun 14, 2016 |
1.1.3 |
Fix: Advanced Properties - Options - Order by Jun 13, 2016 |
1.1.2 |
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 |
1.1.1 |
Add: Order - note, county; New page variables for components (Products By Category, Products By Brand) Jun 05, 2016 |
1.1.0 |
Properties - product properties: sizes, colors, etc.. (https://octobercms.com/plugin/jiri-jkshop#Properties) May 27, 2016 |
1.0.15 |
Fix: Carrier - free shipping; Add: Italian translation May 23, 2016 |
1.0.14 |
Fixes: Order detail - names on list of customers, Orers list - little UI bug May 22, 2016 |
1.0.13 |
Orders - fix search, add hidden fields into order list (Email, Phone, First name, Address, Postcode, City, Country), all fields are searchable May 18, 2016 |
1.0.12 |
Automatic rounding into order total price - Paypal allow max 2 decimal places May 15, 2016 |
1.0.11 |
Backend - language files [EN], Fixes: Links featured + accesories, Basket - work with product minimum quantity, Complete Order - check stock before order May 15, 2016 |
1.0.10 |
Fixes May 12, 2016 |
1.0.9 |
First Release May 11, 2016 |
1.0.8 |
Add support RainLab.User (sale for category, individual prices) May 11, 2016 |
1.0.7 |
Add orders May 11, 2016 |
1.0.6 |
Add Products May 11, 2016 |
1.0.5 |
Add Order Statuses May 11, 2016 |
1.0.4 |
Add Carriers May 11, 2016 |
1.0.3 |
Add Taxes May 11, 2016 |
1.0.2 |
Add brands May 11, 2016 |
1.0.1 |
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.