hi folks,
this is a little howto add new properties to general products
(like guarantee time, color, oem-number, compatible models, whatsoever)1. think
decide which new properties you want to add to your products
(in this example we take guarantee-time (in months) and color)
.
2. db manipulation
open the table "products" in your zencart-database and insert new rows at the end of the table called "products_guarantee" and "products_color"
*ALTER TABLE zencart_products ADD products_guarantee INT NOT NULL , ADD products_color VARCHAR( 32 ) NOT NULL;
.
*
3. edit 'collect_info.php' (in /admin/includes/modules/product/)1. at the very beginning there is the variable $parameters set. add your row-names to the end:
'products_guarantee' => '0', 'products_color' => '' );
.
2. just below there is the db-query set [$product = $db->Execute("...]
add your rows with a 'p.' in front (before the "from ..." part)
*select ......., p.products_guarantee, p.products_color from ....
.
3. now you can add the input fields in the product-mask (lets say somewhere around line 450 or so):
<tr>
<td class="main">Guarantee Time (in months)</td>
<td class="main"><?php echo zen_draw_separator('pixel_trans.gif', '24', '15') . ' ' . zen_draw_input_field('products_guarantee', $pInfo->products_guarantee, zen_set_field_length(TABLE_PRODUCTS, 'products_guarantee')); ?></td>
</tr><tr>
<td class="main">Color</td>
<td class="main"><?php echo zen_draw_separator('pixel_trans.gif', '24', '15') . ' ' . zen_draw_input_field('products_color', $pInfo->products_color, zen_set_field_length(TABLE_PRODUCTS, 'products_color')); ?></td>
</tr>
.*
4. **edit 'preview_info.php' ** (in /admin/includes/modules/product/)
somewhere around line 10 is the variable $product set. like in step 3.2 add the new rows with a 'p.' in front just before the 'from'
*select ......., p.products_guarantee, p.products_color from ....
.*
5. **finally, edit ****'update_product.php' ** (in /admin/includes/modules/)
around line 20 is the $sql_data_array set. add to the last lines before ');' the new rownames.
*$sql_data_array = .......... 'products_guarantee' => zen_db_prepare_input($_POST['products_guarantee']), 'products_color' => zen_db_prepare_input($_POST['products_color']) );
.*
6. ***
Setup All Done!
.
***
.*:D
.
.*
Of course, now we want to display our cool new properties .
.
7. **edit 'main_template_vars.php'** (in /includes/modules/pages/product_info/)
around line 46 you find the variable $sql set. like in step 3.2 add the new rows with a 'p.' in front just before the 'from'
*select ......., p.products_guarantee, p.products_color from ....
.*
8. **last step: display the new infos
edit 'tpl_product_info_display.php'** (in /includes/templates/template_default/templates/)
now, wherever you want, you can add to the html:
*<?php echo $product_info->fields['products_guarantee']; ?>* and *<?php echo $product_info->fields['products_color']; ?>*
enjoy!
ps: now i'm feeling really fucked up : P
:blink::blink::blink:
written by chris at linuxuser.at