Follow us on Twitter X-Cart on Facebook Wiki
Shopping cart software Solutions for online shops and malls
 

Listing product Accessories under Detailed Description.

 
Reply
   X-Cart forums > X-Cart 4 > Dev Questions > Changing design
 
Thread Tools Search this Thread
  #1  
Old 09-19-2005, 12:34 PM
  anoack's Avatar 
anoack anoack is offline
 

Senior Member
  
Join Date: Dec 2002
Location: Austin, TX
Posts: 113
 

Default Listing product Accessories under Detailed Description.

So I figured out a way to get accessories to list under certain products.
It's crude but it works. But I get the feeling that the method im using is not exactly the most optimal way.

Here is a working example that I have done: http://headsetinnovations.com/cart/product.php?productid=16266&cat=250&page=1

How I did it:
-I created a folder in skin1 called 'subaccess' .
-Then you want to have all your accessories in a category.

Then what I did was edit customer/main/product.tpl
and at the bottom added
Code:
{include file="subaccess/subaccessif.tpl"}

Create subaccess.php in /cart folder with code:
Code:
<?php # # $Id: home.php,v 1.1.2.7 2005/01/12 07:41:42 svowl Exp $ # define('OFFERS_DONT_SHOW_NEW',1); require "./auth.php"; require $xcart_dir."/include/categories.php"; if ($active_modules["Manufacturers"]) include $xcart_dir."/modules/Manufacturers/customer_manufacturers.php"; if (empty($products)) include "./featured_products.php"; if (!empty($cat)) include "./products.php"; if($active_modules["Bestsellers"]) include $xcart_dir."/modules/Bestsellers/bestsellers.php"; if (!empty($current_category) and is_array($current_category["category_location"])) { foreach ($current_category["category_location"] as $k=>$v) $location[] = $v; } if (!empty($active_modules["Special_Offers"])) { include $xcart_dir."/modules/Special_Offers/category_offers.php"; } # # Assign Smarty variables and show template # $smarty->assign("main","catalog"); # Assign the current location line $smarty->assign("location", $location); # Transfer mode http or https $smarty->assign("tmode", $tmode); func_display("subaccess/subaccessdiag.tpl",$smarty); ?>

Modify subaccessdiag.tpl to the way you want it setup.
(this is how your accessories will list)
My subaccessdiag.tpl:
Code:
{capture name=dialogacc}{section name=product loop=$products}{assign var="discount" value=0} <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%"><A href="product.php?productid={$products[product].productid}&cat={$cat}&page={$navigation_page}" class="ProductTitle"> {$products[product].product}<span style="text-decoration: none"></span></font></A></td> <td nowrap valign="top"> <p align="right"><font color="#333333">{$products[product].productcode}</font></td> </tr> <tr> <td width="100%" colspan="2"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="2" valign="top"> <p align="left"><A href="product.php?productid={$products[product].productid}&cat={$cat}&page={$navigation_page}">{if $tmode eq "HTTPS"}{include file="product_thumbnail_secure.tpl" productid=$products[product].productid product=$products[product].product tmbn_url=$products[product].tmbn_url}{else}{include file="product_thumbnail.tpl" productid=$products[product].productid product=$products[product].product tmbn_url=$products[product].tmbn_url}{/if} [img]{$ImagesDir}/viewdetails.gif[/img]</A><td valign="top"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%" valign="top"> <p style="margin-left: 2px"><font size="2">{$products[product].descr}</font></td> <td valign="top"> <p style="margin-left: 2px">{if $products[product].taxed_price ne 0} {if $products[product].list_price gt 0 and $products[product].taxed_price lt $products[product].list_price} {math equation="100-(price/lprice)*100" price=$products[product].taxed_price lprice=$products[product].list_price format="%d" assign=discount} {math equation="lprice-price" price=$products[product].taxed_price lprice=$products[product].list_price assign=discountsum} {if $discount gt 0} {$lng.lbl_market_price}: <font color="#333333">{include file="currency.tpl" value=$products[product].list_price}</font></FONT> {/if} {/if} <FONT class="ProductPrice">{$lng.lbl_our_price}: {include file="currency.tpl" value=$products[product].taxed_price}</FONT> <FONT class="MarketPrice">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$products[product].taxed_price}</FONT>{if $discount gt 0}You Save: {include file="currency.tpl" value=$discountsum}{/if} {if $products[product].taxes} {include file="customer/main/taxed_price.tpl" taxes=$products[product].taxes}{/if} {else} <FONT class="ProductPrice">{$lng.lbl_enter_your_price}</FONT> {/if} {if $active_modules.Feature_Comparison ne '' && $products[product].fclassid > 0} {include file="modules/Feature_Comparison/compare_checkbox.tpl" id=$products[product].productid} {/if} {include file="customer/main/buy_now.tpl" product=$products[product]} </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> [img]{$ImagesDir}/productshr.gif[/img] </p>{/section} {/capture} {include file="dialog.tpl" title="Accessories for this product" content=$smarty.capture.dialogacc extra="width=100%"}




Then for subaccess/subaccessif.tpl I had this:
(This is what determines what products have what accessories.)
Code:
{* determine if user is in HTTP or HTTPS *} {php} if ($HTTP_SERVER_VARS[SERVER_PORT] == 80) { $protocol = "http"; } elseif ($HTTP_SERVER_VARS[SERVER_PORT] == 443) { $protocol = "https"; } global $protocol; {/php} {* Association with Products & Accessories *} {if $product.productid eq "16133"} {php} include 'http://headsetinnovations.com/cart/subaccess.php?cat=321&tmode='.$protocol; {/php} {elseif $product.productid eq "16134"} {php} include 'http://headsetinnovations.com/cart/subaccess.php?cat=372&tmode='.$protocol; {/php} {/if}
How the above code works:
If you want to have an accessories listing for product id 16124 then you would add an extra line of this: {elseif $product.productid eq "16134"}
then you would want specify what category id with the accessories to list for that product. {php} include 'http://headsetinnovations.com/cart/subaccess.php?cat=345&tmode='.$protocol; {/php} cat=345 would be the category id you want to list. Also &tmode= is important because if a customer goes to your site in secure mode (https) you will get a "Insecure Items" warning in IE. Because your are including a webpage php doesn't know the difference between secure and non secure. So the images are included the way they are called up. Hopefully that made sense to anyone.

add product_thumbnail_secure.tpl in your /skin1 folder with following code:
Code:
{* $Id: product_thumbnail.tpl,v 1.14 2004/06/24 09:53:29 max Exp $ *} {if $config.Appearance.show_thumbnails eq "Y"}[img]{if $tmbn_url}{$tmbn_url|replace:[/img]{/if}

What I was wondering is if anyone has already done something like this or has a better idea on doing the subaccessif.tpl template. so its not full with smarty {elseif} tags...
__________________
X-Cart: 4.0.13 [Linux]
Reply With Quote
  #2  
Old 10-17-2005, 03:26 PM
 
balinor balinor is offline
 

Veteran
  
Join Date: Oct 2003
Location: Connecticut, USA
Posts: 30,253
 

Default

Why not just use the upselling module?
__________________
Padraic Ryan
Ryan Design Studio
Professional E-Commerce Development
Reply With Quote
  #3  
Old 10-24-2005, 10:11 AM
  anoack's Avatar 
anoack anoack is offline
 

Senior Member
  
Join Date: Dec 2002
Location: Austin, TX
Posts: 113
 

Default

I finally found a way to make it work better...

http://forum.x-cart.com/viewtopic.php?t=23568
__________________
X-Cart: 4.0.13 [Linux]
Reply With Quote
Reply
   X-Cart forums > X-Cart 4 > Dev Questions > Changing design



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -8. The time now is 02:00 PM.

   

 
X-Cart forums © 2001-2020