Cart Column Configuration
Cart Settings Config |
Cart Internal Settings Config
Cart Config Function Index |
Get Cart Config Session Data |
Set Cart Config Session Data |
Cart Config Admin Data
Help with the Table Configuration
Show / Hide Help
Internal Name: The name that flexi cart internally references the table or column by.
Default Name: The default table or column name used in the actual table.
Data Type: The data type that is expected by the table column.
- bool : Requires a boolean value set as either '0' (FALSE) or '1' (TRUE).
- string : Requires a textual value.
- int : Requires a numeric value. It does not matter whether the value is an integer, float, decimal etc.
Config File Location
The config file is located in CodeIgniters 'config' folder and is named 'flexi_cart.php'.
Required Cart Column Names
The following columns are the minimum required columns for the cart to function.
Help
Internal Name |
Default Alias |
Data Type |
Description |
row_id |
row_id |
string |
Items cart row identifier - set automatically. |
item |
id |
int |
Items unique id, usually a database table row id. |
item_name |
name |
string |
Items name and/or description. |
item_quantity |
quantity |
int |
Quantity of items selected by user. |
item_price |
price |
int |
Item selling price. |
Notes
These columns must each be set with a unique name. Do not set them as 'FALSE' even if they are not used.
Optional Cart Column Names
The following columns can optionally be set to define additional item data.
Data manually added to these columns will overwrite any defaults set by the cart or that are available via a related database table.
Help
Internal Name |
Default Alias |
Data Type |
Description |
item_weight |
weight |
int |
Item unit weight that can be used to calculate shipping rates. |
item_tax_rate |
tax_rate |
int |
Manually set a tax rate for the item. |
item_shipping_rate |
shipping_rate |
int |
Manually set a shipping rate for the item. |
item_separate_shipping |
separate_shipping |
int |
Manually set an item to have its shipping calculated separately from other cart items. |
item_options |
options |
string | array |
Item option descriptions. |
item_reward_points |
reward_points |
int |
Manually set reward points for the item. |
item_unique_status |
unique |
bool |
Force item to have its own cart row, regardless of whether an identical item already exists in the cart. |
Updatable Cart Columns
Define which cart columns can be updated for existing items in the cart.
How it Works
As a security measure, cart columns can be prevented from being updated by the 'update_cart()' function.
The purpose of this is prevent a potential html field being injected by a malicious user to an update cart form, with the aim of updating a cart column like the price, item shipping and tax rate columns with their own value.
This is possible if updating cart columns using POST data with matching html input names.
For example, if a html input field named 'price' (Default alias of 'item_price') was injected, and the cart was then updated by matching any identically named POST data, the data array would contain a key named 'price' that would then update the carts 'price' column.
By defining which columns are updatable, the cart will ignore any submitted data from non-updatable columns.
If the ability to update sensitive columns is required, ensure all data submitted is validated.
Setting Updatable Cart Columns
To set which cart columns are updatable, the column alias name (Not the internal name) must be added to the updatable columns array.
Example
$config['cart']['items']['updatable_columns'] = array(
'quantity', 'options'
);
Reserved / Auto-calculated columns
These cart column names are reserved, so do not add any data to the cart using these array key names as the data will be removed.
The values of these columns are automatically generated and calculated by the cart.
Note: The data types and default values shown are values that are stored in the carts actual session data, this is not to be confused with the array cart data that can be returned using some of the cart library functions. Many values returned from such functions are formatted for display purposes.
Help
Internal Name |
Default Alias |
Data Type |
Description |
item_internal_price |
internal_price |
int |
Item selling price as carts default currency and tax settings. |
item_price_total |
price_total |
int |
Item sub-total price. |
item_tax |
tax |
int |
Tax value per item. |
item_tax_total |
tax_total |
int |
Item sub-total tax value. |
item_stock_quantity |
stock_quantity |
int |
Quantity of items in stock. |
item_non_discount_quantity |
non_discount_quantity |
int |
Quantity of items not included in discount. |
item_discount_quantity |
discount_quantity |
int |
Quantity of items included in discount. |
item_discount_description |
discount_description |
string |
Item discount description. |
item_discount_price |
discount_price |
int |
Discount value per item. |
item_discount_price_total |
discount_price_total |
int |
Item sub-total price of discounted and non discounted items. |
item_weight_total |
weight_total |
int |
Item sub-total weight. |
item_reward_points_total |
reward_points_total |
int |
Item sub-total reward points. |
item_status_message |
status_message |
array |
Item status message. |
Admin Data Cart Columns.
The following 2 columns are only available when updating/editing a confirmed order after using the 'load_cart_data()' function.
Internal Name |
Default Alias |
Data Type |
Description |
item_quantity_shipped |
quantity_shipped |
int |
Quantity of items from a confirmed order that have been shipped. |
item_quantity_cancelled |
quantity_cancelled |
int |
Quantity of items from a confirmed order that have been cancelled. |
Notes
These columns must each be set with a unique name. Do not set them as 'FALSE' even if they are not used.
User Defined Custom Cart Columns
Define custom columns that can will automatically be added to the carts item session data when an item is added to the cart.
Parameter Name |
Data Type |
Description |
name |
string |
Sets the custom column name. |
required |
bool |
Define whether data must be submitted when the item is inserted to the cart. |
regex |
string |
Sets a regular expression that the columns value must be validated against when the item is inserted or updated.
Set FALSE to disable validation.
|
decimals |
int |
Defines the number of decimal places the column value should be formatted to.
Applies to numeric data only. Set FALSE to disable formatting.
|
default |
anything |
Defines the default value of the column if no value is added when the item is inserted to the cart. |
updatable |
bool |
Defines whether data can be updated after item has been inserted to the cart. |
How it Works
Additional user defined columns can be manually added to an items data array by including additional array keys (column names) and values when adding an item to the cart.
However, unless the custom column is defined via the config. files 'custom_columns' array, the column will only be present if data is submitted.
By pre-defining custom columns, you can format numbers, set default values and specify if a column is required when an item is added.
Example
$config['cart']['items']['custom_columns'] = array(
array(
'name' => 'example_custom_column',
'required' => FALSE,
'regex' => '\.a-z0-9_-',
'decimals' => FALSE,
'default' => NULL,
'updatable'=> TRUE
)
);
$config['cart']['items']['custom_columns'] = array(
array(
'name' => 'example_custom_column_1',
'required' => FALSE,
'regex' => '\.a-z0-9_-',
'decimals' => FALSE,
'default' => NULL,
'updatable'=> TRUE
),
array(
'name' => 'example_custom_column_2',
'required' => TRUE,
'regex' => FALSE,
'decimals' => 2,
'default' => 0,
'updatable'=> TRUE
)
);
$config['cart']['items']['custom_columns'] = FALSE;