Patrick, with regard to different people saying different things, I have already done this on my web site, I have 5 different site pals that talk you through the checkout process.
Once someone adds a product to the cart and views the cart the process starts, from viewing the cart, entering in there details, selecting the payment and then checking out
As for the extra box, well this is described above how to do this.
As for the other sitepals through the checkout process, well this is a bit more in depth, but not hard, you DO NOT need to add anything extra into the head part at shopcart/skin1/customer/home.tpl that's ok with just the one entry.
Change ?????? to your own sitepal account number.
Code:
{literal}<script language="JavaScript" type="text/javascript" src="https://vhost.oddcast.com/vhost_embed_functions.php?acc=??????&js=1&followCursor=1"></script>{/literal}
As for the checkout process, i just edited:
shopcart/skin1/customer/main/cart.tpl
Again replace the ?????? with your sitepal account number.
Code:
<td width="34%">{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(135,180,'FFFFFF',1,1,183135,0,0,0,'d3a99b7b1e50f9c7a0d315ddbc680e4a',6);</script>{/literal}
</td>
shopcart/skin1/customer/main/cart_totals.tpl
Again replace the ?????? with your sitepal account number.
Code:
<td>
{if $main eq "anonymous_checkout"}{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(150,200,'FFFFFF',1,1,183134,0,0,0,'4851146403d2ea5bfb68e946133d55a6',6);</script>{/literal}
{elseif $smarty.get.paymentid eq "" and $smarty.get.mode eq "checkout"}{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(150,200,'FFFFFF',1,1,183137,0,0,0,'2cbc210f6a4c62242d35d6440bf82cd0',6);</script>{/literal}
{elseif $main eq "checkout"}{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(150,200,'FFFFFF',1,1,183136,0,0,0,'fdbd3a3c8c3514b9279ece746ff61872',6);</script>{/literal}
{else}
{/if}
</td>
With the above you may need me to post you all the tpl file to show how i have inserted it into the page.
Both the files are heavily modded, so i cant give you an example of a normal xcart 4.0.18 file
Here is my full shopcart/skin1/customer/main/cart.tpl
Again replace the ?????? with your sitepal account number.
Code:
{* $Id: cart.tpl,v 1.74.2.10 2005/03/24 15:03:03 max Exp $ *}
<H3>{$lng.lbl_your_shopping_cart}</H3>
{$lng.txt_cart_header}
{if $active_modules.Gift_Certificates ne ""}
{$lng.txt_cart_note}
{/if}
{capture name=dialog}
{if $active_modules.Special_Offers}
{include file="modules/Special_Offers/customer/cart_offers.tpl"}
{/if}
{if $products ne ""}
<table width="61%" border="0" align="center" cellpadding="0">
<tr>
<td width="66%" height="152"><table width=97% border="1" align="center" cellpadding="3" cellspacing="0" bordercolor="#0099CC" id="AutoNumber2" style="border-collapse: collapse">
<tr bgcolor="D6E7EF">
<td align="right" valign="top"><p align="center"> <font face="Tahoma" size="2" color="#CC6600"><u>
IMPORTANT MESSAGE</u></font><font face="Tahoma" size="1" color="#CC6600">
THE ITEM/S IN YOUR CART ARE:</font></td>
</tr>
<tr>
<td align="right" valign="top" bgcolor="D6E7EF">[*]
<div align="left"><font color="#CC6600" size="1" face="Tahoma">IN STOCK </font> </div>
[*]
<div align="left"><font face="Tahoma" size="1" color="#CC6600">FOR WORLDWIDE SHIPMENT</font></div>
[*]
<div align="left"><font face="Tahoma" size="1" color="#CC6600">GUARENTEED (CARRY A 30-DAY MONEY BACK GUARANTEE)</font></div>
[*]
<div align="left"><font face="Tahoma" size="1" color="#CC6600">PAYABLE BY CREDIT CARD
(MASTER CARD, VISA, SOLO, SWITCH, MAESTRO, JCB, VISA DELTA)</font></div>
</td>
</tr>
</table></td>
<td width="34%">{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(135,180,'FFFFFF',1,1,183135,0,0,0,'d3a99b7b1e50f9c7a0d315ddbc680e4a',6);</script>{/literal}
</td>
</tr>
</table>
<FORM action="cart.php" method="post" name="cartform">
<TABLE border="0" width="100%">
{section name=product loop=$products}
{if $products[product].hidden eq ""}
<TR><TD width="90" align="center" valign="top">
{if $active_modules.Special_Offers ne "" and $products[product].have_offers}
{include file="modules/Special_Offers/customer/product_offer_thumb.tpl" product=$products[product]}
{else}
{include file="product_thumbnail.tpl" productid=$products[product].productid image_x=$products[product].image_x image_y=$products[product].image_y product=$products[product].product tmbn_url=$products[product].tmbn_url}
{/if}
</TD>
<TD valign="top">
<FONT class="ProductTitle">{$products[product].product}</FONT>
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD>
{$products[product].descr}
</TD></TR></TABLE>
{if $products[product].product_options ne ""}
{$lng.lbl_selected_options}:
{include file="modules/Product_Options/display_options.tpl" options=$products[product].product_options}
{/if}
{assign var="price" value=$products[product].display_price}
{if $active_modules.Product_Configurator ne "" and $products[product].product_type eq "C"}
{include file="modules/Product_Configurator/pconf_customer_cart.tpl" main_product=$products[product]}
{assign var="price" value=$products[product].pconf_display_price}
{/if}
<DIV align="left">
{if $active_modules.Subscriptions ne "" and $products[product].catalogprice and $products[product].product_type ne "C"}
{include file="modules/Subscriptions/subscription_priceincart.tpl"}
{else}
{if $active_modules.Special_Offers}
{include file="modules/Special_Offers/customer/cart_price_special.tpl"}
{/if}
<FONT class="ProductPriceConverting">{include file="currency.tpl" value=$price} x {assign var="isFreeGift" value="0"} {section name=afg loop=$activeFreeGifts}{if $activeFreeGifts[afg].productid eq $products[product].productid} {assign var="isFreeGift" value="1"}{/if}{/section}{if $isFreeGift eq "1"}1 {else} <INPUT type="text" size="3" name="productindexes[{$products[product].cartid}]" value="{$products[product].amount}"> = </FONT><FONT class="ProductPrice">{math equation="price*amount" price=$price amount=$products[product].amount format="%.2f" assign=unformatted}{include file="currency.tpl" value=$unformatted}</FONT><FONT class="MarketPrice"> {include file="customer/main/alter_currency_value.tpl" alter_currency_value=$unformatted}</FONT>
{if $config.Taxes.display_taxed_order_totals eq "Y" and $products[product].taxes}
{include file="customer/main/taxed_price.tpl" taxes=$products[product].taxes}
{/if}
{/if}
{if $active_modules.Special_Offers}
{include file="modules/Special_Offers/customer/cart_free.tpl"}
{/if}
{/if}
{include file="buttons/delete_item.tpl" href="cart.php?mode=delete&productindex=`$products[product].cartid`"}
{if $products[product].product_options ne ''}
{if $config.UA.platform eq 'MacPPC' && $config.UA.browser eq 'MSIE'}
{include file="buttons/edit_product_options.tpl" href="javascript:window.open('`$catalogs.customer`/popup_poptions.php?target=cart&id=`$products[product].cartid`','POptions','width=400,height=350,toolbar=no,status=no,scrollbars=yes,resizable=no,menubar=no,location=no,direction=no');" js_to_href="Y"}
{else}
{include file="buttons/edit_product_options.tpl" href="javascript:window.open('`$catalogs.customer`/popup_poptions.php?target=cart&id=`$products[product].cartid`','POptions','width=400,height=350,toolbar=no,status=no,scrollbars=yes,resizable=no,menubar=no,location=no,direction=no');"}
{/if}
{/if}
</DIV>
</TD></TR>
<TR><TD colspan="2"><HR size="1" noshade></TD></TR>
{/if}
{/section}
</TABLE>
{if $active_modules.Gift_Certificates ne ""}
{include file="modules/Gift_Certificates/gc_cart.tpl" giftcerts_data=$cart.giftcerts}
{/if}
{include file="customer/main/cart_totals.tpl"}
{if $js_enabled}
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD>
{include file="buttons/update.tpl" type="input" href="javascript: document.cartform.submit()" js_to_href="Y"}
{include file="buttons/button.tpl" button_title=$lng.lbl_clear_cart href="cart.php?mode=clear_cart"}
</TD>
{if $active_modules.Special_Offers}
{include file="modules/Special_Offers/customer/cart_checkout_buttons.tpl"}
{/if}
<TD align="right">
{include file="buttons/button.tpl" button_title=$lng.lbl_checkout style="button" href="cart.php?mode=checkout"}
{include file="buttons/continue_shopping.tpl" style="button" href="home.php?cat=255"}
</TD>
</TR>
</TABLE>
{else}
<INPUT type="hidden" name="mode" value="checkout">
{include file="submit_wo_js.tpl" value=$lng.lbl_checkout}
{/if}
</FORM>
{else}
{$lng.txt_your_shopping_cart_is_empty}
{/if}
{/capture}
{include file="dialog.tpl" title=$lng.lbl_items content=$smarty.capture.dialog extra="width=100%"}
{if $cart.coupon_discount eq 0 and $products ne ""}
{if $active_modules.Discount_Coupons ne ""}
{include file="modules/Discount_Coupons/add_coupon.tpl}
{/if}
{/if}
Here is the full shopcart/skin1/customer/main/cart_totals.tpl
Again replace the ?????? with your sitepal account number.
Code:
{* $Id: cart_totals.tpl,v 1.67.2.13 2005/10/27 11:00:28 svowl Exp $ *}
<DIV align="right">
{if $config.Shipping.disable_shipping ne "Y"}
{if $login ne "" or $config.General.apply_default_country eq "Y" or $cart.shipping_cost gt 0}
{if $active_modules.UPS_OnLine_Tools and $config.Shipping.realtime_shipping eq "Y" and $config.Shipping.use_intershipper ne "Y" and $show_carriers_selector eq "Y"}
<FONT class="FormButton">{$lng.lbl_shipping_carrier}: </FONT>
<SELECT name="selected_carrier" onchange="document.cartform.submit()">
<OPTION value="UPS" {if $current_carrier eq "UPS"}selected{/if}>{$lng.lbl_ups_carrier}</OPTION>
<OPTION value="" {if $current_carrier ne "UPS"}selected{/if}>{$lng.lbl_other_carriers}</OPTION>
</SELECT>
{/if}
{/if}
{if $shipping_calc_error ne ""}
{$shipping_calc_service} {$lng.lbl_err_shipping_calc}
<FONT class="ErrorMessage">{$shipping_calc_error}</FONT>
{/if}
{if $shipping eq "" and $need_shipping}
<FONT class="ErrorMessage">{$lng.lbl_no_shipping_for_location}:</FONT>
{if $login ne "" or $config.General.apply_default_country eq "Y" or $cart.shipping_cost gt 0}
{$userinfo.s_address}
{$userinfo.s_city}
{$userinfo.s_statename}
{$userinfo.s_countryname}
{$userinfo.s_zipcode}
{else}
{$lng.lbl_anonymous}
{/if}
{if $login ne ""}
{include file="buttons/modify.tpl" href="register.php?mode=update&action=cart"}
{/if}
<HR noshade size="1" width="50%">
{/if}
{if $shipping ne "" and $need_shipping}
{if $arb_account_used}
{$lng.txt_arb_account_checkout_note}
{/if}{* $arb_account_used *}
{if $active_modules.UPS_OnLine_Tools ne "" and $config.Shipping.realtime_shipping eq "Y" and $config.Shipping.use_intershipper ne "Y" and $current_carrier eq "UPS" and $force_delivery_dropdown_box ne "Y"}
{if $login ne "" or $config.General.apply_default_country eq "Y" or $cart.shipping_cost gt 0}
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR>
<TD valign="top"><FONT class="FormButton">{$lng.lbl_delivery}: </FONT>
<TABLE border="0" cellpadding="1" cellspacing="0">
{section name=ship_num loop=$shipping}
<TR>
<TD width="5"{if $shipping[ship_num].shippingid eq $cart.shippingid} class="TableHead"{/if}><INPUT type="radio" name="shippingid" value="{$shipping[ship_num].shippingid}" {if $shipping[ship_num].shippingid eq $cart.shippingid}checked{else}onclick="document.cartform.submit()"{/if}></TD>
<TD{if $shipping[ship_num].shippingid eq $cart.shippingid} class="TableHead"{/if}>{$shipping[ship_num].shipping|trademark:$insert_trademark}{if $shipping[ship_num].shipping_time ne ""} - {$shipping[ship_num].shipping_time}{/if}{if $config.Appearance.display_shipping_cost eq "Y" and ($login ne "" or $config.General.apply_default_country eq "Y" or $cart.shipping_cost gt 0)} ({include file="currency.tpl" value=$shipping[ship_num].rate}){/if}</TD>
</TR>
{if $shipping[ship_num].shippingid eq $cart.shippingid and $shipping[ship_num].warning ne ""}
{assign var="warning" value=$shipping[ship_num].warning}
{/if}
{/section}
</TABLE>
</TD>
</TR>
</TABLE>
{if $warning ne ""}
<DIV align="right" class="ErrorMessage">{$warning}</DIV>
{/if}
{/if}
{else}{* $active_modules.UPS_OnLine_Tools *}
{if $use_airborne_account}
{$lng.lbl_arb_account}: <INPUT type="text" name="arb_account" value="{$airborne_account}">
{/if}
<FONT class="FormButton">{$lng.lbl_delivery}: </FONT>
<SELECT name="shippingid" onchange="document.cartform.submit()">
{section name=ship_num loop=$shipping}
<OPTION value="{$shipping[ship_num].shippingid}" {if $shipping[ship_num].shippingid eq $cart.shippingid}selected{/if}>{$shipping[ship_num].shipping|trademark:$insert_trademark:"alt"}{if $config.Appearance.display_shipping_cost eq "Y" and ($login ne "" or $config.General.apply_default_country eq "Y" or $cart.shipping_cost gt 0)} ({include file="currency.tpl" value=$shipping[ship_num].rate}){/if}</OPTION>
{/section}
</SELECT>
{/if}
{else}
<INPUT type="hidden" name="shippingid" value="0">
{/if}
{else}
<INPUT type="hidden" name="shippingid" value="0">
{/if}
{assign var="subtotal" value=$cart.subtotal}
{assign var="discounted_subtotal" value=$cart.discounted_subtotal}
{assign var="shipping_cost" value=$cart.display_shipping_cost}
<table width="100%" border="0" cellpadding="0">
<tr>
<td>
{if $main eq "anonymous_checkout"}{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(150,200,'FFFFFF',1,1,183134,0,0,0,'4851146403d2ea5bfb68e946133d55a6',6);</script>{/literal}
{elseif $smarty.get.paymentid eq "" and $smarty.get.mode eq "checkout"}{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(150,200,'FFFFFF',1,1,183137,0,0,0,'2cbc210f6a4c62242d35d6440bf82cd0',6);</script>{/literal}
{elseif $main eq "checkout"}{literal}<script language="JavaScript" type="text/javascript">AC_VHost_Embed_??????(150,200,'FFFFFF',1,1,183136,0,0,0,'fdbd3a3c8c3514b9279ece746ff61872',6);</script>{/literal}
{else}
{/if}
</td>
<td><table width="30%" border="0" align="right" cellpadding="3" cellspacing="0">
<tr>
<td nowrap><font class="FormButton">{$lng.lbl_subtotal}:</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{include file="currency.tpl" value=$cart.display_subtotal}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$cart.display_subtotal}</td>
</tr>
{if $cart.discount gt 0}
<tr>
<td nowrap><font class="FormButton">{$lng.lbl_discount}:</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{include file="currency.tpl" value=$cart.discount}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$cart.discount}</td>
</tr>
{/if} {if $cart.coupon_discount ne 0 and $cart.coupon_type ne "free_ship"}
<tr>
<td nowrap><font class="FormButton">{$lng.lbl_discount_coupon}
[img]{$ImagesDir}/clear.gif[/img] :</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{include file="currency.tpl" value=$cart.coupon_discount}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$cart.coupon_discount}</td>
</tr>
{/if} {if $cart.display_discounted_subtotal ne $cart.display_subtotal}
<tr>
<td nowrap><font class="FormButton">{$lng.lbl_discounted_subtotal}:</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{include file="currency.tpl" value=$cart.display_discounted_subtotal}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$cart.display_discounted_subtotal}</td>
</tr>
{/if} {if $config.Shipping.disable_shipping ne "Y"}
<tr>
<td nowrap><font class="FormButton">{$lng.lbl_shipping}{if $cart.coupon_discount ne 0 and $cart.coupon_type eq "free_ship"} ({$lng.lbl_discounted}
[img]{$ImagesDir}/clear.gif[/img]){/if} :</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{if $login ne "" or $config.General.apply_default_country eq "Y" or $cart.shipping_cost gt 0}{include file="currency.tpl" value=$shipping_cost}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$shipping_cost}{else}n/a{assign var="not_logged_message" value="1"}</td>
<td>{/if}</td>
</tr>
{/if} {if $cart.taxes and $config.Taxes.display_taxed_order_totals ne "Y"} {foreach key=tax_name item=tax from=$cart.taxes}
<tr>
<td nowrap><font class="FormButton">{$tax.tax_display_name}{if $tax.rate_type eq "%"} {$tax.rate_value}%{/if}:</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{if $login ne "" or $config.General.apply_default_country eq "Y"}{include file="currency.tpl" value=$tax.tax_cost}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$tax.tax_cost}{else}n/a{assign var="not_logged_message" value="1"}</td>
<td>{/if}</td>
</tr>
{/foreach} {/if} {if $cart.applied_giftcerts}
<tr>
<td nowrap><font class="FormButton">{$lng.lbl_giftcert_discount}:</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{include file="currency.tpl" value=$cart.giftcert_discount}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$cart.giftcert_discount}</td>
</tr>
{/if}
<tr>
<td colspan="4" height="1">[img]{$ImagesDir}/spacer_black.gif[/img]
</td>
</tr>
<tr>
<td nowrap><font class="FormButton">{$lng.lbl_cart_total|upper}:</font></td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right"><font class="ProductPriceSmall">{include file="currency.tpl" value=$cart.total_cost}</font></td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$cart.total_cost}</td>
</tr>
{if $cart.taxes and $config.Taxes.display_taxed_order_totals eq "Y"}
<tr>
<td colspan="4" align="right">
{$lng.lbl_including}:</td>
</tr>
{foreach key=tax_name item=tax from=$cart.taxes}
<tr class="TableSubHead">
<td nowrap align="right">{$tax.tax_display_name}:</td>
<td>[img]{$ImagesDir}/null.gif[/img]
</td>
<td nowrap align="right">{include file="currency.tpl" value=$tax.tax_cost}</td>
<td nowrap align="right">{include file="customer/main/alter_currency_value.tpl" alter_currency_value=$tax.tax_cost}</td>
</tr>
{/foreach} {/if}
</table></td>
</tr>
</table>
{if $cart.applied_giftcerts}
<FONT class="FormButton">{$lng.lbl_applied_giftcerts}:</FONT>
{section name=gc loop=$cart.applied_giftcerts}
{$cart.applied_giftcerts[gc].giftcert_id}
[img]{$ImagesDir}/clear.gif[/img] : <FONT class="ProductPriceSmall">{include file="currency.tpl" value=$cart.applied_giftcerts[gc].giftcert_cost}</FONT>
{/section}
{/if}
{if $not_logged_message eq "1"}{$lng.txt_order_total_msg}{/if}
<INPUT type="hidden" name="paymentid" value="{$smarty.get.paymentid|escape:"html"}">
<INPUT type="hidden" name="mode" value="{$smarty.get.mode|escape:"html"}">
<INPUT type="hidden" name="action" value="update">
{if $display_ups_trademarks}
{include file="modules/UPS_OnLine_Tools/ups_notice.tpl"}
{/if}
</DIV>
<HR align="left" noshade size="1">
{if $active_modules.Special_Offers ne ""}
{include file="modules/Special_Offers/customer/cart_bonuses.tpl"}
{/if}
{section name=nfg loop=$notifyFreeGifts}
{if $smarty.section.nfg.index eq 0}
{/if}
<font size="4"><FONT color="#FF0000">Spend <font color="#0000FF">бё{$notifyFreeGifts[nfg].spend_more_amount}</font> more and get a FREE <font color="#0000FF">{$notifyFreeGifts[nfg].product}</font> !</FONT></font>
{/section}
{section name=ofg loop=$offerFreeGifts}
{if $smarty.section.ofg.index eq 0}
<font size="5">Congratulations!
You qualify for {if $smarty.section.ofg.total > 1}some{else}a{/if} free gift{if $smarty.section.ofg.total > 1}s{/if}.{if $smarty.section.ofg.total > 1}
To claim your free gifts, please choose from:{/if}</font>
{/if}
<font size="3">Your subtotal is бё{$offerFreeGifts[ofg].minimum_price} or more. To receive a <FONT color="#FF0000">FREE</font> {$offerFreeGifts[ofg].product},
CLICK HERE.
</font>
{/section}
{$lng.msg_customer_IP|substitute:"customer_ip":$smarty.server.REMOTE_ADDR}
Hope that helps you, regards Paul (ShishaPipe UK)