Difference between revisions of "Functions:pageProductsGet"

From Whirlwind eCommerce Wiki
Jump to: navigation, search
(New page: == Description == retrieves product data for use in displaying products in page template management. == Syntax == $array = eV::pageProductsGet($pageId[,$fieldList]); == Paramaters == *$...)
 
Line 48: Line 48:
  
 
                         )
 
                         )
 +
                    [1] ...
 
                 )
 
                 )
 
             [optionGroupArray] => Array
 
             [optionGroupArray] => Array
Line 55: Line 56:
 
                               [groupId] => INT
 
                               [groupId] => INT
 
                               [groupName] => STR
 
                               [groupName] => STR
 +
                              [groupField] => STR
 
                               [optionList] => STR
 
                               [optionList] => STR
 
                               [optionArray] => Array
 
                               [optionArray] => Array
Line 69: Line 71:
  
 
                         )
 
                         )
 +
                    [1] ...
 
                 )
 
                 )
  
             
+
        )
 +
    [1] ...         
 
)
 
)
 
</pre>
 
</pre>
  
Elements from the menu item associative array are as follows:  
+
Elements from the product associative array are as follows:  
 
{|border=2
 
{|border=2
 
|-
 
|-
Line 82: Line 86:
 
|Example
 
|Example
 
|-
 
|-
|location
+
|productId
|String: Reflects the menu bar location, either 'l' for left, 'r' for right, 't' for top, 'b' for bottom
+
|INTEGER - the unique id assigned to the product when created in administration
|r
+
|123
 
|-
 
|-
|id
+
|title
|Integer: Returns the database unique id for this menu item. Useful to target specific menu items for individual display results or if individual menu items need to be tracked for certain purposes.
+
|STRING - as set in administration console for this product, typically used as a short title for the product when displaying it in a page and / or when displaying it in the shopping cart
|196
+
|Shirt
 
|-
 
|-
|text
+
|childDescription
|String: The output text of the link. This is what the web site visitors should see as the link. This text is rawurlencoded in the database but rawurldecoded before the value is placed in this element.
+
|STRING - as set in administration for this product, typically used to further describe the product when it is listed in a page.
|Category X<br>
+
|This is an oversized long sleeve shirt
Specials<br>
+
Subcategory Y
+
 
|-
 
|-
|textRaw
+
|imagePath
|String: non-rawurldecoded version of "text" used for debugging.
+
|STRING - path to the image representing the product as set in administration for this product. Typically used in the shopping cart.
|Category%20X<br>
+
|/folder/folder/image.jpg
Specials<br>
+
Subcategory%20Y<br>
+
 
|-
 
|-
|link
+
|productNumber
|String: use as the href value when linking the menu item. It is recommended that you test this element for content before creating the link, so that content managers can leave the content empty for non-linked menu elements (category headers, etc)
+
|STRING - stock code as assigned in administration for this product. Synonymous with SKU, this number is usually displayed in the page containing the product, the shopping cart, throughout the checkout process and even in order management after the sale.
|index.php?pageId=125
+
|SLSO1
http://www.google.com
+
 
|-
 
|-
|newWindow
+
|catalogNumber
|Integer: either 1 or 0 to designate if clicking this link should open a new window or place the targetted url in the current window. This element is replaced by the target element.
+
|STRING - an alternative number associated with the product. Typically used in print catalogs, this number is usually used for catalog quick order forms and/or a way for the customer to verify they are ordering the same item online as it appears in the catalog. Usually this is the same as the SKU.
 +
|SHRTLSO
 +
|-
 +
listPrice
 +
|DECIMAL - the list price as set in administration for the product. Typically used to show the visitor the discount they are receiving. When the visitor purchases they will receive the best price of the following :listPrice, salePrice (if qualifies), price, qualifying price level(s)
 +
|12.34
 +
|-
 +
|salePrice
 +
|DECIMAL - The sale price as set in administration for the product. Typically used for special promotions or sales for the product, it can be controlled via the saleFromDate and saleToDate fields (use saleOn is a quick test to see if the sale price qualifies)
 +
|10.45
 +
|-
 +
|price
 +
|DECIMAL - the price as set in administration for the product. This is typically the 'regular price' of the product, what it is typically sold for on the web site. Note, as you are building the page template that contains products you can display this information anyway you wish - as clients typically want their regular price to look like a special price even though it is not.
 +
|11.22
 +
|-
 +
|saleFromDate
 +
|DATETIME - The starting date that the sale price will be available, as set in administration for this product. If this value is empty, than the sale price has no starting date and is considered available until the saleToDate is reached.
 +
|2008-08-25 00:00:00
 +
|-
 +
|saleToDate
 +
|DATETIME - the ending date that the sale price will be available until, as set in administration for this product. If this value is empty, than the sale price never ends and is considered available so long as the saleFromDate is passed.
 +
|2008-08-30 00:00:00
 +
|-
 +
|isTaxable
 +
|BIT - Flag set in administration to mark if the product qualifies for taxation rules or not.
 
|1
 
|1
 
|-
 
|-
|level
+
|shippingSurcharge
|Integer: For tiered menus, designates what level of the tier this menu item is on. 0 for the top tier, increasing as the tiers lower. As many designs will have different styles for different tiers in the menu listing (especially for the left menu bar) this is useful to identify the current tier and output the appropriate style.
+
|DECIMAL - additional surcharge added to shipping for this product. This shipping surcharge is multiplied by the product quantity
|2
+
|11.22
 
|-
 
|-
|target
+
|weight
|String: the actual window the link is targeted towards (_self or _blank). This replaces the newWindow element. Simply place in the 'target' attribute of the href tag.
+
|DECIMAL - the weight for the product as set in administration. Used to calculate shipping via weighted shipping tables. Stated in Lbs.
|_blank
+
|5.45
 
|-
 
|-
|display
+
|imageAlt
|Boolean: For reactive menus that display elements only as parent elements are selected, this will dignate
+
|STRING - image alt value as set in administration. To be applied to the imagePath image with it is displayed.
(via TRUE or FALSE) if this menu item is slated for display. This will also slate the parent menu item(s) to be displayed when a lower level menu item is selected
+
|Picture of a shirt
|TRUE
+
 
|-
 
|-
|focus
+
|saleOn
|Boolean: States if this menu item is actually the current page the visitor is on. This is done by URL matching the contents of the 'link' element and the current URL. As some designs call for menu items that are current pages to be styled differently, this will allow identification of such menu items.
+
|BIT - an easy flag that set to 1 if a sale price is set and the saleFromDate, saleToDate are met. Set to 0 if not.
|FALSE
+
|1
 +
|-
 +
|customContent
 +
|STRING - depriciated
 +
|
 +
|-
 +
|priceLevelArray
 +
|Array - multidimensional array containing price levels and prices/quantities associated with each level. Prices will be calculated automatically when item(s) are added to the shopping cart, so this information is for display purposes only. See below table for breakdown
 +
|[Array]
 +
|-
 +
|optionGroupArray
 +
|Array - multidimensional array containing option group information. See below table for breakdown
 +
|[Array]
 
|}
 
|}
  
 +
Elements from the priceLevelArray associative array are as follows:
 +
{|border=2
 +
|-
 +
|Element
 +
|Description
 +
|Example
 +
|-
 +
|quantity
 +
|INTEGER - quantity floor threshold to qualify for this price.
 +
|3
 +
|-
 +
|price
 +
|DECIMAL - price (per item) that the product will qualify for if quantity threshold is met
 +
|9.00
 +
|-
 +
|price2
 +
|DECIMAL - alternate price (per item) that the product will qualify for if quantity threshold is met AND an option is selected that contains the {priceOption:2} flag, as set in administration.
 +
|8.00
 +
|-
 +
|price3
 +
|DECIMAL - alternate price (per item) that the product will qualify for if quantity threshold is met AND an option is selected that contains the {priceOption:3} flag, as set in administration.
 +
|7.00
 +
|-
 +
|price4
 +
|DECIMAL - alternate price (per item) that the product will qualify for if quantity threshold is met AND an option is selected that contains the {priceOption:4} flag, as set in administration.
 +
|6.00
 +
|-
 +
|}
 +
 +
Elements from the optionGroupArray associative array are as follows:
 +
{|border=2
 +
|-
 +
|Element
 +
|Description
 +
|Example
 +
|-
 +
|groupId
 +
|INTEGER - the unique ID assigned to the group when it is created in administration
 +
|25
 +
|-
 +
                              [groupName] => STR
 +
                              [groupField] => STR
 +
                              [optionList] => STR
 +
                              [optionArray] => Array
 +
                                  (
 +
                                        [0] => Array
 +
                                            (
 +
                                                  [text] => STR
 +
                                                  [price] => DECIMAL
 +
                                                  [sku] => STR
 +
                                                  [priceOption] => INT
 +
                                                  [weight] => DECIMAL
 
== Examples ==
 
== Examples ==
 
;Simple listed menu output for the top and bottom menu
 
;Simple listed menu output for the top and bottom menu

Revision as of 00:20, 7 October 2008

Description

retrieves product data for use in displaying products in page template management.

Syntax

$array = eV::pageProductsGet($pageId[,$fieldList]);

Paramaters

  • $pageId INT
specifies the parent page whos products will be retrieved (as selected in relationships for the page). Use the core variable $pageId to call products for the current page.

Return Values

Returns a multidimensional array containing product data. The first dimension is the product index, the second dimension is an associative array of product information for the product index. Return array is as follows:

Array
(
    [0] => Array
        (
            [productId] => INT
            [title] => STR
            [childDescription] => STR
            [imagePath] => STR
            [productNumber] => STR
            [catalogNumber] => STR
            [listPrice] => DECIMAL
            [salePrice] => DECIMAL
            [price] => DECIMAL
            [saleFromDate] => DATETIIME
            [saleToDate] => DATETIME
            [isTaxable] => BIT
            [shippingSurcharge] => DECIMAL
            [weight] => DECIMAL
            [imageAlt] => STR
            [saleOn] => BIT
            [customContent] => STR
            [priceLevelsData] => STR
            [optionGroupsData] => STR
            [priceLevelArray] => Array
                (
                    [0] => Array
                         (
                               [quantity] => INT
                               [price] => DECIMAL
                               [price2] => DECIMAL
                               [price3] => DECIMAL
                               [price4] => DECIMAL

                         )
                    [1] ...
                )
            [optionGroupArray] => Array
                (
                    [0] => Array
                         (
                               [groupId] => INT
                               [groupName] => STR
                               [groupField] => STR
                               [optionList] => STR
                               [optionArray] => Array
                                   (
                                        [0] => Array
                                             (
                                                  [text] => STR
                                                  [price] => DECIMAL
                                                  [sku] => STR
                                                  [priceOption] => INT
                                                  [weight] => DECIMAL
                                             )
                                   )

                         )
                    [1] ...
                )

        )
    [1] ...          
)

Elements from the product associative array are as follows:

listPrice
Element Description Example
productId INTEGER - the unique id assigned to the product when created in administration 123
title STRING - as set in administration console for this product, typically used as a short title for the product when displaying it in a page and / or when displaying it in the shopping cart Shirt
childDescription STRING - as set in administration for this product, typically used to further describe the product when it is listed in a page. This is an oversized long sleeve shirt
imagePath STRING - path to the image representing the product as set in administration for this product. Typically used in the shopping cart. /folder/folder/image.jpg
productNumber STRING - stock code as assigned in administration for this product. Synonymous with SKU, this number is usually displayed in the page containing the product, the shopping cart, throughout the checkout process and even in order management after the sale. SLSO1
catalogNumber STRING - an alternative number associated with the product. Typically used in print catalogs, this number is usually used for catalog quick order forms and/or a way for the customer to verify they are ordering the same item online as it appears in the catalog. Usually this is the same as the SKU. SHRTLSO
DECIMAL - the list price as set in administration for the product. Typically used to show the visitor the discount they are receiving. When the visitor purchases they will receive the best price of the following :listPrice, salePrice (if qualifies), price, qualifying price level(s) 12.34
salePrice DECIMAL - The sale price as set in administration for the product. Typically used for special promotions or sales for the product, it can be controlled via the saleFromDate and saleToDate fields (use saleOn is a quick test to see if the sale price qualifies) 10.45
price DECIMAL - the price as set in administration for the product. This is typically the 'regular price' of the product, what it is typically sold for on the web site. Note, as you are building the page template that contains products you can display this information anyway you wish - as clients typically want their regular price to look like a special price even though it is not. 11.22
saleFromDate DATETIME - The starting date that the sale price will be available, as set in administration for this product. If this value is empty, than the sale price has no starting date and is considered available until the saleToDate is reached. 2008-08-25 00:00:00
saleToDate DATETIME - the ending date that the sale price will be available until, as set in administration for this product. If this value is empty, than the sale price never ends and is considered available so long as the saleFromDate is passed. 2008-08-30 00:00:00
isTaxable BIT - Flag set in administration to mark if the product qualifies for taxation rules or not. 1
shippingSurcharge DECIMAL - additional surcharge added to shipping for this product. This shipping surcharge is multiplied by the product quantity 11.22
weight DECIMAL - the weight for the product as set in administration. Used to calculate shipping via weighted shipping tables. Stated in Lbs. 5.45
imageAlt STRING - image alt value as set in administration. To be applied to the imagePath image with it is displayed. Picture of a shirt
saleOn BIT - an easy flag that set to 1 if a sale price is set and the saleFromDate, saleToDate are met. Set to 0 if not. 1
customContent STRING - depriciated
priceLevelArray Array - multidimensional array containing price levels and prices/quantities associated with each level. Prices will be calculated automatically when item(s) are added to the shopping cart, so this information is for display purposes only. See below table for breakdown [Array]
optionGroupArray Array - multidimensional array containing option group information. See below table for breakdown [Array]

Elements from the priceLevelArray associative array are as follows:

Element Description Example
quantity INTEGER - quantity floor threshold to qualify for this price. 3
price DECIMAL - price (per item) that the product will qualify for if quantity threshold is met 9.00
price2 DECIMAL - alternate price (per item) that the product will qualify for if quantity threshold is met AND an option is selected that contains the {priceOption:2} flag, as set in administration. 8.00
price3 DECIMAL - alternate price (per item) that the product will qualify for if quantity threshold is met AND an option is selected that contains the {priceOption:3} flag, as set in administration. 7.00
price4 DECIMAL - alternate price (per item) that the product will qualify for if quantity threshold is met AND an option is selected that contains the {priceOption:4} flag, as set in administration. 6.00

Elements from the optionGroupArray associative array are as follows:

[groupName] => STR [groupField] => STR [optionList] => STR [optionArray] => Array ( [0] => Array ( [text] => STR [price] => DECIMAL [sku] => STR [priceOption] => INT [weight] => DECIMAL

Examples

Simple listed menu output for the top and bottom menu
// get the menus
$arrMenus = eV::pageMenuGet();
 
// shortcut the applicable menus
$arrTopMenu = $arrMenus['t'];
$arrBottomMenu = $arrMenus['b'];
 
// output top menu as a list
echo "<ul>";
foreach($arrTopMenu as $menuItem) echo "<li><a href=\"" . $menuItem['link'] . "\" target=\"" . $menuItem['target'] . "\">" . $menuItem['text'] . "</a></li>";
echo "</ul>";
 
// output bottom menu as &middot; separated links
$tempArr = Array();
foreach($arrBottomMenu as $menuItem) $tempArr[] = "<a href=\"" . $menuItem['link'] . "\" target=\"" . $menuItem['target'] . "\">" . $menuItem['text'] . "</a>";
echo implode(" &middot; ", $tempArr);
Intermediate menu with varying classes for first element, last element and element linking to current page
// get the menus
$arrMenus = eV::pageMenuGet();
 
// shortcut the top menu
$arrTopMenu = $arrMenus['t'];
 
// loop thru menu items
for($i=0;$i>count($arrTopMenu);$i++){
 
   $menuItem = $arrTopMenu[$i];
 
   // set default class
   // of course the following classes need to be defined in a style sheet before this displays
   $class = "menuItem";
   if($menuItem['focus']){
     // the current URL is this menu item
     $class = "menuItemSelected";
   } else if ($i == 0) {
     // menu item is not selected, but is first item to appear
     $class = "menuItemFirst";
   } else if ($i == count($arrTopMenu)-1) {
     // menu item is not selected, but is last menu item to appear
     $class = "menuItemLast";
   };
 
   echo "<li class=\"$class\">";
   // only display link if not empty
   if(!empty($menuItem['link'])) echo "<a href=\"" . $menuItem['link'] . "\" target=\"" . $menuItem['target'] . "\">";
   echo $menuItem['text'];
   if(!empty($menuItem['link'])) echo "</a>";
   echo "<li>";
 
// end loop thru menu items
};
Advanced example using tiered menus that only display sub menus items if visitor is currently navigated to a menu item
// get the menus
$arrMenus = eV::pageMenuGet();
 
// shortcut the left menu
$arrLeftMenu = $arrMenus['l'];
 
// loop thru menu items
for($i=0;$i>count($arrLeftMenu);$i++){
 
   $menuItem = $arrLeftMenu[$i];
 
   // only output this menu item if it is displayed OR is in top two levels
   // i.e. always show the top two levels
   if($menuItem['display'] || $menuItem['level'] <= 1) {
      // assumes style classes are setup for:
      // leftMenuTier0,leftMenuTier0Selected
      // leftMenuTier1,leftMenuTier1Selected
      // leftMenuTier2,leftMenuTier2Selected
      // leftMenuTier3,leftMenuTier3Selected
 
      $class = "leftMenuTier" . $menuItem['level'];
      if($menuItem['focus']) $class .= "Selected";
 
      echo "<li class=\"$class\">";
      // only display link if not empty
      if(!empty($menuItem['link'])) echo "<a href=\"" . $menuItem['link'] . "\" target=\"" . $menuItem['target'] . "\">";
      echo $menuItem['text'];
      if(!empty($menuItem['link'])) echo "</a>";
      echo "<li>";
 
  // end if this is to be displayed
  };
 
// end loop thru menu items
};
Element Description Example
groupId INTEGER - the unique ID assigned to the group when it is created in administration 25