This is the API docs for LemonStand V1, which has been discontinued. LemonStand is now a cloud based platform, available at lemonstand.com.

LemonStand API

Shop_CustomGroup class

Defined in /modules/shop/models/shop_customgroup.php, lines 14-355
Inheritance Phpr_Extension » Phpr_Extensible » Phpr_Validatable » Db_Base » Db_WhereBase » Db_SqlBase » Db_ActiveRecord » Shop_CustomGroup
Author LemonStand eCommerce Inc.
Represents a custom product group. There is no a special CMS action in LemonStand for loading custom groups from the database. To load a custom group with a specific API code use the following code:
$group = Shop_CustomGroup::create()->find_by_code('featured');

Public properties

Show inherited properties.

Property Type Description Defined By
auto_create_timestamps array a list of create timestamp columns. Db_ActiveRecord
auto_timestamps boolean determines whether create and update timestamp field should be set automatically. Db_ActiveRecord
auto_update_timestamps array a list of update timestamp columns. Db_ActiveRecord
belongs_to array contains a list of Belongs To Many relations. Db_ActiveRecord
code string specifies the group API code. Shop_CustomGroup
custom_columns array contains a list of custom fields definition. Db_ActiveRecord
fetched array contains an associative array of table column values fetched from the database. Db_ActiveRecord
has_many array contains a list of Has Many relations. Db_ActiveRecord
has_one array contains a list of Has One relations. Db_ActiveRecord
name string specifies the group name. Shop_CustomGroup
primary_key string specifies a name of the table primary key. Db_ActiveRecord
validation Phpr_Validation contains the model's validation object. Db_ActiveRecord

Public methods

Show inherited methods.

Method Description Defined By
add_form_custom_area() adds a form custom area. Db_ActiveRecord
add_form_field() makes a column visible in forms. Db_ActiveRecord
add_form_partial() adds a custom form partial. Db_ActiveRecord
add_form_section() adds a form section. Db_ActiveRecord
after_create() called after a new object is saved to the database. Db_ActiveRecord
after_create_saved() called after a new object is saved to the database. Db_ActiveRecord
after_save() called after an existing or new record is created or updated in the database. Db_ActiveRecord
after_update() called after an existing record is updated in the database. Db_ActiveRecord
after_validation() triggered after the model column values are validated. Db_ActiveRecord
after_validation_on_create() triggered after a new model column values are validated. Db_ActiveRecord
after_validation_on_update() triggered after an existing model column values are validated. Db_ActiveRecord
before_create() called before a new object is saved to the database. Db_ActiveRecord
before_delete() called before a record is deleted from the database. Db_ActiveRecord
before_save() called before an existing or new record is created or updated in the database. Db_ActiveRecord
before_update() called before an existing record is updated in the database. Db_ActiveRecord
before_validation() triggered before the model column values are validated. Db_ActiveRecord
before_validation_on_create() triggered before a new model column values are validated. Db_ActiveRecord
before_validation_on_update() triggered before an existing model column values are validated. Db_ActiveRecord
collection() executes the find_all() method and returns a collection. Db_ActiveRecord
columnValue() alias for the displayField() method. Db_ActiveRecord
define_column() adds a column definition to the model. Db_ActiveRecord
define_multi_relation_column() adds column definition for has_and_belongs_to_many or has_many relation field. Db_ActiveRecord
define_relation_column() adds column definition for has_on or belongs_to relation field. Db_ActiveRecord
delete() deletes the record from the database. Db_ActiveRecord
delete_form_field() deletes a form field by its corresponding column name. Db_ActiveRecord
displayField() returns a formatted column value. The field should be defined with define_column(), Db_ActiveRecord
find() finds a record by its primary key value. Db_ActiveRecord
find_all() finds all records and returns the Db_DataCollection object, containing a list of models. Db_ActiveRecord
find_by() finds a record by a field value. Db_ActiveRecord
find_column_definition() finds a column definition by the column name. Db_ActiveRecord
find_form_field() finds a form field definition by its corresponding column name. Db_ActiveRecord
join() adds a table to the query with JOIN statement. Db_SqlBase
limit() allows to limit the result of the find_all() method with the specified number of records. Db_ActiveRecord
list_products() returns a list of the group products. Shop_CustomGroup
list_related_records_deferred() returns a list of relation objects, taking into account deferred relations. Db_ActiveRecord
order() allows to order the result of the find_all() method by a specific table column. Db_SqlBase
orWhere() adds OR statement to the where clause, allowing to to limit the result of the find() and find_all() methods with SQL filter. Db_WhereBase
paginate() allows to limit the result of the find_all() method with a single page of records. Db_ActiveRecord
requestRowCount() returns a number of rows which would be returned with find_all() method. Db_ActiveRecord
save() saves record to the database. Db_ActiveRecord
where() allows to limit the result of the find() and find_all() methods with SQL filter. Db_WhereBase

Events

Event Description
shop:onExtendCustomGroupForm Allows to add new fields to the Create/Edit Product Group form in the Administration Area.
shop:onExtendCustomGroupModel Allows to define new columns in the custom product group model.
shop:onGetCustomGroupFieldOptions Allows to populate drop-down, radio- or checkbox list fields, which have been added with shop:onExtendCustomGroupForm event.

Property details

code property

public string $code;
Specifies the group API code.

name property

public string $name;
Specifies the group name.

Method details

list_products() method

public Shop_Product list_products(array $options=array())
$options array specifies the method options.
{return} Shop_Product returns an object of the Shop_Product class.
Returns a list of the group products. The result of this function is an object of the Shop_Product class. To obtain a collection of products call the find_all() method of the returned object:
$full_product_list = $group->list_products()->find_all()
You can pass an array of options to the method parameter. The currently supported option is the sorting. By default the product list is sorted by product name. You can sort product them by another field. Also, you can sort the product list by multiple fields:
$product_list = $group->list_products(array(
  'sorting'=>array('price', 'name')
))
The supported fields you can sort the products are:
  • name - sort the product list by name
  • price - sort the product list by the base price
  • sku - sort the product list by SKU
  • weight - sort the product list by weight
  • width - sort the product list by width
  • height - sort the product list by height
  • depth - sort the product list by depth
  • created_at - sort the product list by the product creation date
  • rand() - sort products randomly
  • manufacturer - sort products by the manufacturer name
  • expected_availability_date - sort products by the availability date
You can add desc suffix to the sort field name to enable the descending sorting. For example, to sort the product list by price in descending order, you can use the following code:
$product_list = $group->list_products(array(
  'sorting'=>array('price desc')
));
You can add custom sorting fields with shop:onGetProductSortColumns event.