#89

Product support

Visit this product's website for support.

Categories

  • Marketing

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're interested in improving this project you can help in the following ways:

  • Reporting bugs and recommending new features on our plugin GitHub issues page; Contributing to the project following these instructions;

License

© 2017, LOVATA Group, LLC under GNU GPL v3.

Developed by Andrey Kharanenka.

These plugin(s) are required for the plugin:

Property list

The full plugin documentation is abailable 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.0.0

Initialize plugin.

Dec 06, 2017