OctoCart is the most customizable eCommerce plugin for October that helps you sell anything. Create and manage a professional online shop!
Features
- Payment options
- Shipping methods
- Related Products, Up-Sells and Cross-Sells
- Stock control
- Categories with unlimited subcategory nesting
- Product attributes
- Sending order confirmation emails
- Import / Export Products
Why is this plugin a paid plugin?
This plugin requires a lot of time to develop. The actual price would be used for support and future development. Additionnaly, 30% of your purchase goes to help fund the October Project!
But you can download it for free from the GitHub!
Demo
You can visit Demo site.
Front-end:
- login: demo@octobercms.info
- password: demo
Backend:
- login: demo
- password: by request (demo@octobercms.info)
You can use the demo theme to get started quickly.
If you have some problems or you want more functionality, please make a topic in the support section and I will try to add or modify the plugin functions.
If you like OctoCart, please leave a review. Thank you!
The following plugin is required
The following plugin extends or depends on the plugin
The following theme uses this plugin
Installation
- Add OctoCart plugin to a project.
- Change plugin settings on the configuration page: /backend/system/settings/update/xeor/octocart/settings.
- Create some products: /backend/xeor/octocart/products.
- Create categories: /backend/xeor/octocart/categories.
- Create pages: Product, Category, Cart, Checkout, Success, Order.
- Add plugin components to a your pages.
Backend
In the back-end user interface you can manage products, categories and orders.
Components
Name | Page variable | Description |
---|---|---|
Cart | {% component 'cart' %} |
Show the contents of and process the user's cart |
Category List | {% component 'categories' %} |
Displays a list of categories on the page |
Checkout | {% component 'checkout' %} |
Displays Checkout form on the page |
Order | {% component 'order' %} |
Display a single order |
Orders | {% component 'orders' %} |
Displays a list of orders on the page |
Product | {% component 'product' %} |
Display a single product |
Products | {% component 'products' %} |
Displays a list of products on the page |
Cart Component
Properties
Property | Description | Example Value | Default Value |
---|---|---|---|
noProductsMessage | No products message | No products found | No products found |
Variables available in templates
Variable | Description |
---|---|
{{ cartPage }} |
link to cart |
{{ checkoutPage }} |
link to checkout page |
{{ count }} |
quantity of products in the cart |
{{ items }} |
product items |
{{ crossSells }} |
products that you promote in the cart, based on the current product |
{{ noProductsMessage }} |
no products message |
{{ totalPrice }} |
total price |
Example:
{% if not items is empty %} {% for itemId, item in items %} {% set product = item.product %} {% set quantity = item.quantity %} {% set price = item.price %} {% set attributes = item.attributes %} {% if attributes is not empty %} {% for name, value in attributes %} {{ name }}: {{ value }} {% endfor %} {% endif %} {% endfor %} {% else %} {{ noProductsMessage }} {% endif %}
Categories Component
Properties
Property | Description | Example Value | Default Value |
---|---|---|---|
Slug | Category slug | :slug | :slug |
Display empty categories | Display empty categories | TRUE | FALSE |
Variables available in templates
Variable | Description |
---|---|
{{ categories }} |
all categories |
{{ categoryPage }} |
category page |
{{ currentCategorySlug }} |
reference to the current category slug |
Example:
{% for category in categories %} {% set productCount = category.product_count %} <li {% if category.slug == currentCategorySlug %}class="active"{% endif %}> <a href="{{ category.url }}">{{ category.title }}</a> {% if productCount %} <span class="badge">{{ productCount }}</span> {% endif %} {% if category.children.count %} <ul> {% partial __SELF__ ~ "::items" categories=category.children currentCategorySlug=currentCategorySlug %} </ul> {% endif %} </li> {% endfor %}
Checkout Component
Variables available in templates
Variable | Description |
---|---|
{{ successPage }} |
link to success page |
Order Component
Properties
Property | Description | Example Value | Default Value |
---|---|---|---|
ID | Order id | 1 | :id |
Variables available in templates
Variable | Description |
---|---|
{{ order }} |
order |
{{ items }} |
product items |
Orders Component
Properties
Property | Description | Example Value | Default Value |
---|---|---|---|
No Orders Message | No Orders Message | No orders found | No orders found |
Variables available in templates
Variable | Description |
---|---|
{{ orders }} |
orders |
{{ noOrdersMessage }} |
no orders message |
Example:
{% for order in orders %} <li> <a href="{{ order.url }}">Order №{{ order.id }}</a> - {{ order.created_at|date('M d, Y') }} </li> {% else %} <h3 class="text-center">{{ noOrdersMessage }}</h3> {% endfor %}
Product Component
Properties
Property | Description | Example Value | Default Value |
---|---|---|---|
Slug | Category slug | :slug | :slug |
Variables available in templates
Variable | Description |
---|---|
{{ cartPage }} |
link to cart |
{{ categoryPage }} |
link to category |
{{ productDisplayPage }} |
link to category |
{{ product }} |
product |
{{ upSells }} |
products that you recommend instead of the currently viewed product |
Products Component
Properties
Property | Description | Example Value | Default Value |
---|---|---|---|
pageNumber | this value is used to determine what page the user is on, it should be a routing parameter for the default markup | 1 | {{ :page }} |
categoryFilter | a category slug to filter the posts by | 1 | |
productsPerPage | how many posts to display on a single page (the pagination is supported automatically) | 4 | 10 |
noProductsMessage | message to display in the empty post list | No products found | No products found |
sortOrder | the column name and direction used for the sort order of the products | created_at asc | created_at desc |
promote | promoted to front page | true | false |
Variables available in templates
Variable | Description |
---|---|
{{ cartPage }} |
link to cart |
{{ category }} |
category |
{{ noProductsMessage }} |
no products message |
{{ pageParam }} |
current page |
{{ products }} |
products |
Example:
title = "Category" url = "/categories/:slug/:page?" [products] pageNumber = "{{ :page }}" categoryFilter = "{{ :slug }}" productsPerPage = 4 noProductsMessage = "No products found" sortOrder = "created_at desc" categoryPage = "category" productDisplayPage = "product" == ... {% component 'products' %} ...
-
Alexey
Found the plugin useful on 4 Jul, 2017
changed version.yaml. Added 2.0.9:
- Add demo.
- demo_seed.php
Mooved demo_seed.php to latest version, because was problem with not found column before
-
Sozonov Alexey author
Replied on 5 Jul, 2017
-
Harry
Found the plugin useful on 15 Nov, 2016
Awesome Plugin. Perfect start for the store I wanted to build. Sure it doesn't have all the fancy things that the other Shop plugins have, but it was a great starting point, so i did not have to build the listing/cart/checkout sections from scratch. Perfect plugin to add your own flair to the store
-
2018.8.3 |
Added payment methods to order. Aug 25, 2018 |
---|---|
2018.8.2 |
Added shipping methods to order. Aug 25, 2018 |
2018.8.1 |
Added feature for sorting products. Aug 08, 2018 |
2018.7.1 |
Added the code column to the product attributes table. Aug 05, 2018 |
2018.6.1 |
Added the external id column to the products table. Aug 05, 2018 |
2.0.21 |
Added the images field to the category. Aug 05, 2018 |
2.0.20 |
Added the external id and excerpt columns to the categories table. Aug 05, 2018 |
2.0.19 |
Added the active column to the categories table. Aug 05, 2018 |
2.0.18 |
Added variations to product. Aug 22, 2017 |
2.0.17 |
Added $order variable to mail template. Aug 22, 2017 |
2.0.16 |
Fixed some issues. Aug 02, 2017 |
2.0.15 |
Added the phone column to the orders table. Aug 02, 2017 |
2.0.14 |
Added the note column to the orders table. Aug 02, 2017 |
2.0.13 |
Added the status column to the orders table. Aug 02, 2017 |
2.0.12 |
!!! Now you can edit orders. Updated billing_info & shipping_info fields. Updated the order component template. Aug 02, 2017 |
2.0.11 |
Fixed some issues. Jul 21, 2017 |
2.0.10 |
Fixed some issues. Jul 20, 2017 |
2.0.9 |
Fixed issue with demo_seed.php. Jul 14, 2017 |
2.0.8 |
!!! Renamed productDisplay and orderDisplay components. May 04, 2017 |
2.0.7 |
Added product availability date. Mar 17, 2017 |
2.0.6 |
Minor update. Mar 17, 2017 |
2.0.5 |
Fixed issue with price filter. Dec 12, 2016 |
2.0.4 |
Fixed issue with price filter. Nov 11, 2016 |
2.0.3 |
Fixes Jul 30, 2016 |
2.0.2 |
Fixes + Add Russian translation Jul 30, 2016 |
2.0.1 |
Second version of OctoCart! Please look at the documentation before upgrading!!! May 31, 2016 |
1.0.0 |
First release of OctoCart Jun 16, 2015 |