Difference between revisions of "Functions:catalogProductsGet"
(New page: {{Page Template Functions Shortcuts}} == Description == retrieves product data by catalog number. For use in displaying products in a catalog quick order page template management. == Syn...) |
(added lowFlatPrice) |
||
Line 29: | Line 29: | ||
[price] => DECIMAL | [price] => DECIMAL | ||
[lowPrice] => DECIMAL | [lowPrice] => DECIMAL | ||
+ | [lowFlatPrice] => DECIMAL | ||
[saleFromDate] => DATETIIME | [saleFromDate] => DATETIIME | ||
[saleToDate] => DATETIME | [saleToDate] => DATETIME | ||
Line 127: | Line 128: | ||
|lowPrice | |lowPrice | ||
|DECIMAL - the lowest possible price for this product. Takes into consideration list, regular, sale (if qualifies) and price levels. | |DECIMAL - the lowest possible price for this product. Takes into consideration list, regular, sale (if qualifies) and price levels. | ||
+ | |9.88 | ||
+ | |- | ||
+ | |lowFlatPrice | ||
+ | |DECIMAL - the lowest flat price for this product. Takes into consideration list, regular, sale (if qualifies). DOES NOT take into consideration price levels. | ||
|9.88 | |9.88 | ||
|- | |- |
Latest revision as of 13:42, 27 January 2009
Description
retrieves product data by catalog number. For use in displaying products in a catalog quick order page template management.
Syntax
$array = eV::catalogProductsGet($catalogNumber[,$fieldList]);
Paramaters
- $catalogNumber STRING
- specifies the catalog number that the product must match in it's catalogNumber field to be returned.
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 [lowPrice] => DECIMAL [lowFlatPrice] => 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 [value] => STR ) ) ) [1] ... ) ) [1] ... )
Elements from the product associative array are as follows:
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 |
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 |
lowPrice | DECIMAL - the lowest possible price for this product. Takes into consideration list, regular, sale (if qualifies) and price levels. | 9.88 |
lowFlatPrice | DECIMAL - the lowest flat price for this product. Takes into consideration list, regular, sale (if qualifies). DOES NOT take into consideration price levels. | 9.88 |
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:
Element | Description | Example |
groupId | INTEGER - the unique ID assigned to the group when it is created in administration | 25 |
groupName | STRING - Group name as set in administration for the group. Typically used as a title for the group when presenting within the page. | Size |
groupField | STRING - complete code for select field containing this groups' options. Simply plop into your page template where you want the drop down to appear. | <SELECT name="group52">
<OPTION value="Small{sku:SM}">Small</OPTION> <OPTION value="Medium{sku:ME}">Medium</OPTION> <OPTION value="Large{sku:LG}{price:3.00}">Large + $3.00</OPTION> </SELECT> |
optionArray | ARRAY - multidimensional array of option values for this group. See the following table for details | [ARRAY] |
Elements from the optionArray associative array are as follows:
Element | Description | Example |
text | STRING - The text output of the option | large |
price | DECIMAL - the price offset of the option. This offset will be automatically added to the product cost, if this option is selected, when it is placed in the shopping cart. | 3.00 |
sku | STRING - if this field has value, it will automatically be appended to the products' SKU (productNumber) when it is added to the shopping cart, if this option is selected. | _LG |
priceOption | INTEGER - 1 through 4. If an option with this set is selected, the appropriate price level alt price (see priceLevelArray above) will be applied to the product price. | 2 |
weight | DECIMAL - weight offset of the option. This offset is automatically added to the product weight if this option is selected, when the item is added to the shopping cart. | 1.15 |
value | STRING - the full data value of the option including the text, price, weight, priceOption, sku. This is what is used to populate the value attribute of the form field (weather option, radio) when building custom product page forms. | Large{sku:_LG}{price:3.00}{weight:1.15}{priceOption:2} |
Examples
- Simple example displaying products and add to cart buttons (no options, not price levels)
// set catalog number if not set - should come from previous page submission if(!isset($attributes['catalogNumber'])) $attributes['catalogNumber'] = ''; // get the product $prodArr = eV::catalogProductsGet($attributes['catalogNumber'],"title,childDescription,productNumber,lowPrice,productId"); // loop thru products // usually there will only be on product returned (or zero for no match), but if more than one product match the catalog number, they will be returned. foreach($prodArr as $prod) { // output product data echo "<hr><b>" . $prod['title'] . "</b> - " . $prod['productNumber'] . " - " . eV::dollarFormat($prod['lowPrice']) . "<br>" . $prod['childDescription']; // product order form echo "<form action=\"index.php\" method=\"post\">"; echo "<input type=\"text\" size=5 maxlength=4 name=\"quantity\"> <input type=\"submit\" value=\"Add To Cart\">"; // hidden fields fa,productId required echo "<input type=\"hidden\" name=\"fa\" value=\"order.cartAdd\">"; echo "<input type=\"hidden\" name=\"productId\" value=\"" . $prod['productId'] . "\">"; echo "</form>"; // end product loop };
- Complex example displaying products, price levels and options (with simple option field output)
// set catalog number if not set - should come from previous page submission if(!isset($attributes['catalogNumber'])) $attributes['catalogNumber'] = ''; // get the product $prodArr = eV::catalogProductsGet($attributes['catalogNumber']); // loop thru products foreach($prodArr as $prod) { // output base product data echo "<hr><b>" . $prod['title'] . "</b> - " . $prod['productNumber'] . " - as low as: " . eV::dollarFormat($prod['lowPrice']) . " each<br>" . $prod['childDescription']; // start price level table echo "<table><tr><td>Quantity</td><td>Price Each</td></tr>"; // loop thru price levels and output foreach($prod['priceLevelArray'] as $priceLevel) echo "<tr><td>" . $priceLevel['quantity'] . "</td><td>" . eV::dollarFormat($priceLevel['price']) . " each</td></tr>"; // end price level table echo "</table>"; // start order form echo "<form action=\"index.php\" method=\"post\">"; // loop thru option groups (must be inside of form, as they need to be submitted with form foreach($prod['optionGroupArray'] as $optionGroup) echo '<br>' . $optionGroup['groupName'] . " : " . $optionGroup['groupField']; // quantity and submit button echo "<br><input type=\"text\" size=5 maxlength=4 name=\"quantity\"> <input type=\"submit\" value=\"Add To Cart\">"; // hidden fields fa, productId (required) echo "<input type=\"hidden\" name=\"fa\" value=\"ORDER.cartAdd\">"; echo "<input type=\"hidden\" name=\"productId\" value=\"" . $prod['productId'] . "\">"; // end order form echo "</form>"; // end product loop };
- Complex example displaying products with options (with complex option field output)
// loop thru products foreach($prodArr as $prod) { // output base product data echo "<hr><b>" . $prod['title'] . "</b> - " . $prod['productNumber'] . " - as low as: " . eV::dollarFormat($prod['lowPrice']) . " each<br>" . $prod['childDescription']; // start order form echo "<form action=\"index.php\" method=\"post\">"; // loop thru option groups (must be inside of form, as they need to be submitted with form foreach($prod['optionGroupArray'] as $optionGroup) { echo '<br>' . $optionGroup['groupName'] . " : "; // start option group select field, be sure to get the name of this field correct echo "<select name=\"group" . $optionGroup['groupId'] . "\"> // loop thru options and output foreach($optionGroup['optionArray'] as $option] { // start option field echo "<option value=\"" . $option['value'] . "\">" . $option['text']; // show price increase in field if(!empty($option['price'])) echo " +" . eV::dollarFormat($option['price']); // end option field echo "</option>"; // end options loop }; // end option group select field echo "</select>"; // end option group loop }; // quantity and submit button echo "<br><input type=\"text\" size=5 maxlength=4 name=\"quantity\"> <input type=\"submit\" value=\"Add To Cart\">"; // hidden fields fa, productId (required) echo "<input type=\"hidden\" name=\"fa\" value=\"ORDER.cartAdd\">"; echo "<input type=\"hidden\" name=\"productId\" value=\"" . $prod['productId'] . "\">"; // end order form echo "</form>"; // end product loop };