6

Product support

Visit this product's website for support.

Categories

New FREE Shopaholic Bootstrap Theme Available!

Free E-Commerce Bootstrap for Shopaholic theme is now available on October's marketplace. Check out the theme's live demo version. It demonstrates what you can build with Shopaholic and will soon have support for all our plugins and extensions. We will also constantly update it to cover all Shopaholic functionality.

Open to your Ideas!

Let us know if you have any questions, ideas or suggestions! Just drop a line at [email protected]

Live Demo

You can visit our Live Demo site. Sign in to backend using: login - manager, password - manager. You can deploy the demo site locally. To do so, you need to clone the repository, follow the steps from the "Installation guide", install the plugins. As a result, you will receive a copy of the demo site with a full database. Having a ready-made demo site example, you can easily learn how to operate the plugins.

Large Catalog Performance Live Demo

If you would like to know how our plugins perform with large catalogs of products, you can visit our Large Catalog Live Demo that has 21 000 products, 68 000 offers and 210 000 variations of property values.

Below are the performance characteristics for server setup: Dual Core CPU with 4GB of RAM.

For a catalog containing 210 products

Catalog page load time: 100-150 ms

Product list filtering time: 80-100 ms

For a catalog containing 21 000 products

Catalog page load time: 900-1100 ms

Product list filtering time: 500-600 ms

Support

Please join us on #shopaholic channel in October CMS slack chat in order to have quick support on all our products. You will also get all newest updates and insights about our existing and upcoming products!

If you have any specific requests, suggestions or ideas please do not hesitate to send us a message, it will help us make our products even better.

If you don't have access to octobercms.slack.com, please register here

Required Plugins

Recommended Plugins

General information

The Properties for Shopaholic plugin adds functionality to Shopaholic plugin, allowing you to create custom properties for specific types of products on your online store. Whether you’re selling hardware components or food for domestic animals, this plugin will let you create a more flexible interface for your customers.

With this plugin you are able to:

  • Create custom properties for products, assign name, ID and the measurement of the property. You can also assign which components will be used to display the properties in the back-end (text, textarea, checkboxlist, dropdown, datepicker, colorpicker, mediafinder)
  • Assign properties to a category of products. So that individual types of products, like hardware, mobile phones, tablets and other products could have their own specific sets of properties, like technical specifications.
  • Create groups of properties and assign a group name, like general characteristics or a detailed overview of the product.

Get involved and contribute to the project

If you’d like to help us improve the project, you can do so in the following ways:

You can also visit LOVATA’s GitHub page.

License

© 2018, LOVATA Software Development Company under Commercial License.

Developed by Andrey Kharanenka.

Property list

The full plugin documentation is available here.

Extension ProductItem class

Properties for Shopaholic plugin adds fields to ProductItem class object:

"property" field in ProductItem object returns PropertyCollection object with sorted active properties for this product.:

Example: render of property list for product

[ProductPage]
slug = "{{ :slug }}"
==

{# Get product item #}
{% set obProduct = ProductPage.get() %}
<div data-id="{{ obProduct.id }}">
    <h1>{{ obProduct.name }}</h1>
    {# Get list of proeprties for product #}
    {% set obPropertyList = obProduct.property %}
    {% if obPropertyList.isNotEmpty == true %}
        <ul>
            {% for obProeprty in obPropertyList if obProeprty.hasValue() %}
                <li>{{ obProeprty.name }}: {{ obProeprty.property_value.getValueString() }}</li>
            {% endif%}
        </ul>
    {% endif %}
</div>

Extension OfferItem class

Properties for Shopaholic plugin adds fields to OfferItem class object:

"property" field in OfferItem object returns PropertyCollection object with sorted active properties for this offer.

Example: render of property list for offer

[ProductPage]
slug = "{{ :slug }}"
==

{# Get product item #}
{% set obProduct = ProductPage.get() %}
<div data-id="{{ obProduct.id }}">
    <h1>{{ obProduct.name }}</h1>
    {# Get first offer #}
    {% set obOffer = obProduct.offer.first() %}
    {# Get list of proeprties for offer #}
    {% set obPropertyList = obOffer.property %}
    {% if obPropertyList.isNotEmpty == true %}
        <ul>
            {% for obProeprty in obPropertyList if obProeprty.hasValue() %}
                <li>{{ obProeprty.name }}: {{ obProeprty.property_value.getValueString() }}</li>
            {% endif%}
        </ul>
    {% endif %}
</div>

Extension CategoryItem class

Properties for Shopaholic plugin adds fields to CategoryItem class object:

  • (array) product_property_list - array with relation data
  • (array) offer_property_list - array with relation data
  • (PropertyCollection) product_property
  • (PropertyCollection) offer_property

"product_property" and "offer_property" fields in CategoryItem object returns PropertyCollection object with sorted active properties for this category.

Example: render of property list for category

[CategoryPage]
slug = "{{ :slug }}"
==

{# Get category item #}
{% set obCategory = CategoryPage.get() %}
<div data-id="{{ obCategory.id }}">
    <h1>{{ obCategory.name }}</h1>
    {# Get products proeprty list for category #}
    {% set obPropertyList = obCategory.product_property %}
    {% if obPropertyList.isNotEmpty == true %}
        <ul>
            {% for obProeprty in obPropertyList if obProeprty.hasValue() %}
                <li>{{ obProeprty.name }}: {{ obProeprty.property_value.getValueString() }}</li>
            {% endfor %}
        </ul>
    {% endif %}
</div>
1.7.2

Added primary key to lovata_properties_shopaholic_variant_link table.

Dec 11, 2018

1.7.1

Fixed display of valid property values in backend.

Nov 05, 2018

1.7.0

Added import properties from CSV file. Added import product/offer property values from CSV file. Added supported types of properties: number, rich editor, single checkbox, switch, balloon selector, tag list, radio. Adding ability to use multilanguage for fields with type select/checkbox list. Requires Toolbox plugin version 1.19.0 and later.

Nov 02, 2018

1.6.0

Changed: only property values of active products and offers are stored in the cache.

Sep 03, 2018

1.5.0

Add CodeField trait to Group model.

Aug 17, 2018

1.4.0

Update license file

Aug 07, 2018

1.3.3

Fixed saving of property values that contain special characters.

Jul 25, 2018

1.3.2

Fixed saving of property values whose "slug" have empty value.

Jul 24, 2018

1.3.1

Fix error in PropertyItem object, if product/offer property value is empty.

Jul 17, 2018

1.3.0

!!! Adding PropertySet model. Changed database structure. Logic for storing values of products properties has been changed. Empty property values are not stored in database. Remove propertyHasValue(), notEmpty(), unique() methods from PropertyValueCollection class. Add code(), getByCode() methods to PropertyCollection class. Add PropertySetCollection, PropertySetItem classes.

Jul 11, 2018

1.2.0

Refactoring *Event, *Model, *Item, *Collection classes. Requires Toolbox plugin version 1.10.0 and later.

Jun 21, 2018

1.1.2

Fixed bug in the PropertyCollection::group method, if the property is not attached to any group

Mar 10, 2018

1.1.1

Added check for isNested flag when expanding forms

Feb 23, 2018

1.1.0

Add "settings" field to PropertyItem class object

Feb 05, 2018

1.0.1

!!! Adding additional cache cleaning for the sorted list of properties and groups, after the creation of a new element. Requires Toolbox plugin version 1.3.0 and later.

Jan 08, 2018

1.0.0

Initialize plugin.

Dec 06, 2017