Product Loop
Product loop lists products from your shop. You very probably will have to use the product sale elements loop inside your product loop.
{loop type="product" name="the-loop-name" [argument="value"], [...]}Important informations :
        * : argument is required
        ** : at least one of ** marked argument is required
    
Global arguments
| Argument | Description | 
|---|---|
| backend_context | 
                                 Determine if loop is use in backend context. default : false example : backend_context="on"  | 
                        
| force_return | 
                                 force return result for i18n tables even if there is no record default : false example : force_return="on"  | 
                        
| limit | 
                                 The maximum number of results to display. example : limit="10"  | 
                        
| name * | 
                                 The loop name. This name must be unique and is used to reference this loop further in the page (see ifloop, elseloop or pageloop)  | 
                        
| offset | 
                                 The first product to display offset. Will not be used if `page` argument is set. default : 0 example : offset="1"  | 
                        
| page | 
                                 The page to display. example : page="2"  | 
                        
Text search arguments
| Argument | Description | 
|---|---|
| search_in | 
                                 A comma separeted list of field in which the search is performed 
                                    Possible values : ref, title, chapo, description, postscriptum
                                 
                                
                                
                                
                                example : search_in="title"  | 
                        
| search_mode | 
                                 the search mode : `any_word` (search any word separeted by a space), `sentence` (the sentence, anywhere in the field) or `strict_sentence` (the exact sentence) default : strict_sentence  | 
                        
| search_term | 
                                 The term to search example : search_term="my product"  | 
                        
Loop arguments
| Argument | Description | 
|---|---|
| attribute_non_strict_match | 
                     Only available if complex='true' 
                        Expected values :
                         
                    
                    
                    
 default : none example : attribute_non_strict_match="promo,new" : loop will return the product if it has at least a product sale element in promo and at least a product sale element as new ; even if it's not the same product sale element.  | 
            
| brand | 
                     A single or a list of brand ids. example : brand="2", brand="1,4,7"  | 
            
| category | 
                     A single or a list of category ids. example : category="2", category="1,4,7"  | 
            
| category_default | 
                     A single or a list of default category ids allowing to retrieve all products having this parameter as default category. example : category_default="2", category_default="1,4,7"  | 
            
| complex | 
                     A boolean. If set to true, product loop will consider all product sale elements else it will only consider default product sale element. Some of the arguments/outputs will not be available depending on the complex argument. default : false example : complex="true"  | 
            
| 
                    content 
                    
                     Thelia >= 2.3  | 
                
                     One or more content ID. When this parameter is set, the loop returns the products related to the specified content IDs. example : content="3"  | 
            
| currency | 
                     A currency id example : currency="1"  | 
            
| current | 
                     A boolean value which allows either to exclude current product from results either to match only this product example : current="yes"  | 
            
| current_category | 
                     A boolean value which allows either to exclude current category products from results either to match only current category products. If a product is in multiple categories whose one is current it will not be excluded if current_category="false" but will be included if current_category="yes" example : current_category="yes"  | 
            
| depth | 
                     A positive integer value which precise how many subcategory levels will be browse. Will not be consider if category parameter is not set. default : 1 example : depth="2"  | 
            
| exclude | 
                     A single or a list of product ids. example : exclude="2", exclude="1,4,7"  | 
            
| exclude_category | 
                     A single or a list of category ids. If a product is in multiple categories which are not all excluded it will not be excluded. example : exclude_category="2", exclude_category="1,4,7"  | 
            
| 
                    exclude_tax_rule_id 
                    
                     Thelia >= 2.4  | 
                
                     Filter products not having this tax rule ID example : exclude_tax_rule_id=21  | 
            
| feature_availability | 
                     A list of mandatory features and the feature_availability expected for these. example : feature_availability="1: (1 | 2) , 2:*, 3: 10 | (11&12)" : feature 1 must have feature_availability 1 or 2 AND feature 2 must be set to any feature_availability AND feature 3 must have feature_availability 10 or both feature_availability 11 and 12  | 
            
| feature_values | 
                     A list of mandatory features and the string value expected for these. example : feature_values="1: (foo | bar) , 2:*, 3: foobar" : feature 1 must have feature value "foo" or "bar" AND feature 2 must be set to any feature_availability AND feature 3 must have feature value "foobar"  | 
            
| id | 
                     A single or a list of product ids. example : id="2", id="1,4,7"  | 
            
| lang | 
                     A lang id example : lang="1"  | 
            
| max_price | 
                     A float value. Equal value matches. example : max_price="32.1"  | 
            
| max_weight | 
                     A float value. Equal value matches. example : max_weight="32.1"  | 
            
| min_price | 
                     A float value. Equal value matches. example : min_price="12.3"  | 
            
| min_stock | 
                     An integer value. Equal value matches. example : min_stock="3"  | 
            
| min_weight | 
                     A float value. Equal value matches. example : min_weight="32.1"  | 
            
| new | 
                     A boolean value. example : new="yes"  | 
            
| order | 
                     A list of values 
                        Expected values :
                         
                    
                    
                    
 default : alpha example : order="category,min_price"  | 
            
| promo | 
                     A boolean value. example : promo="yes"  | 
            
| ref | 
                     A single or a list of product references. example : ref="ref0", id="ref1,ref6"  | 
            
| 
                    return_url 
                    
                     Thelia >= 2.3  | 
                
                     A boolean value which allows the urls generation. default : yes example : return_url="no"  | 
            
| 
                    tax_rule_id 
                    
                     Thelia >= 2.4  | 
                
                     Filter products having this tax rule ID example : tax_rule_id=21  | 
            
| title | 
                     filter by title example : title="foo"  | 
            
| virtual | 
                     A boolean value. example : virtual="yes"  | 
            
| visible | 
                     A boolean value. default : yes example : visible="no"  | 
            
| with_prev_next_info | 
                     A boolean. If set to true, $HAS_PREVIOUS, $HAS_NEXT, $PREVIOUS, and $NEXT output variables are available. default : false example : with_prev_next_info="yes"  | 
            
Global outputs
| Variable | Description | 
|---|---|
| $LOOP_COUNT | the current results index, starting from 1 | 
| $LOOP_TOTAL | the total number of results returned by the loop | 
| $CREATE_DATE | The creation date of this Product | 
| $UPDATE_DATE | The last modification date of this Product | 
Loop outputs
| Variable | Description | 
|---|---|
| $BEST_PRICE | the product best tax-free price for the received arguments, depending on the attributes and promo status. | 
| $BEST_PRICE_TAX | the best price taxes amount | 
| $BEST_TAXED_PRICE | the best price including taxes | 
| $BRAND_ID | the brand id of this product. Empty if no brand is assigned for this product | 
| $CHAPO | the product chapo | 
| $DEFAULT_CATEGORY | the default category id associated to this product | 
| $DESCRIPTION | the product description | 
| $EAN_CODE | 
                        Only available if complex='false' the default product sale elements EAN Code  | 
                
| $HAS_NEXT | true if a product exists after this one in the current category, following products positions. Only available if with_prev_next_info parameter is set to true | 
| $HAS_PREVIOUS | true if a product exists before this one in the current category, following products positions. Only available if with_prev_next_info parameter is set to true | 
| $ID | the product id | 
| $IS_NEW | 
                        If complex='true' returns if at least one of it's product sale element is new If complex='false' returns if the default product sale element is new  | 
                
| $IS_PROMO | 
                        If complex='true' returns if at least one of it's product sale element is in promo If complex='false' returns if the default product sale element is in promo  | 
                
| $IS_TRANSLATED | check if the product is translated or not | 
| $LOCALE | the locale used for this loop | 
| $META_DESCRIPTION | the product meta description | 
| $META_KEYWORDS | the product meta keywords | 
| $META_TITLE | the product meta title | 
| $NEXT | The ID of product after this one in the current category, following products positions, or null if none exists. Only available if with_prev_next_info parameter is set to true | 
| $POSITION | the product position | 
| $POSTSCRIPTUM | the product postscriptum | 
| $PREVIOUS | The ID of product before this one in the current category, following products positions, or null if none exists. Only available if with_prev_next_info parameter is set to true | 
| $PRICE | 
                        Only available if complex='false' the default product sale elements price  | 
                
| $PRICE_TAX | 
                        Only available if complex='false' the default product sale elements price tax  | 
                
| $PRODUCT_SALE_ELEMENT | 
                        Only available if complex='false' the default product sale elements id  | 
                
| $PROMO_PRICE | 
                        Only available if complex='false' the default product sale elements promo price  | 
                
| $PROMO_PRICE_TAX | 
                        Only available if complex='false' the default product sale elements promo price tax  | 
                
| $PSE_COUNT | 
                        Only available if complex='false' the number of product sale elements  | 
                
| $QUANTITY | 
                        Only available if complex='false' the default product sale elements stock quantity  | 
                
| $REF | the product reference | 
| $TAXED_PRICE | 
                        Only available if complex='false' the default product sale elements taxed price  | 
                
| $TAXED_PROMO_PRICE | 
                        Only available if complex='false' the default product sale elements taxed promo price  | 
                
| $TAX_RULE_ID | the product's tax rule ID | 
| $TEMPLATE | the template id associated to this product | 
| $TITLE | the product title | 
| $URL | the product URL | 
| $VIRTUAL | Return if the product is a virtual product or not | 
| $VISIBLE | Return if the product is visible or not | 
| $WEIGHT | 
                        Only available if complex='false' the default product sale elements weight  | 
                
<ul>
{loop type="product" name="my_product_loop" category="1,2" depth="2" feature_availability="1:13|17" order="min_price"}
    <li>{$TITLE} ({$REF})</li>
{/loop}
</ul>
<ul>
{loop type="product" name="another_product_loop" promo="true" current_category="true" order="new,max_price"}
    <li>{$TITLE} ({$REF})</li>
{/loop}
</ul>