Jeg mangler lidt inspiration til hvordan jeg kan løse denne opgave nemmest.
Jeg har en T-shirt til salg, lige nu er den kodet sammen til kun at have en pris, nu vil jeg udvide den til at når man vælger farve og størrelse kommer der et tillæg på prisen, alt efter størrelse og om den er hvid eller farvet. Jeg har færdig gjort den visuelle del der viser prisen for det valgte produkt, og også den del der beregner det tillæg der vil komme på. Kan ses her:
http://www.atdesign-webshop.dk/product_visning.php?p=27&c=capsMen nu mangler jeg så at lave det på en eller anden måde sådan så den faktisk også lige husker den pris, for lige nu efter du har tilføjet varen til kurven går den ind i databasen og henter standard prisen på varen.
Har tænkt lidt med måske at lave en ny tabel der opretter produkterne (altså laver en kopi af den originale vare, og tilføjer den aktuelle pris i denne kopi) så når kunderne putter den i indkøbskurven, vil den have den rigtige pris alt efter hvad de har valgt.
Der er dog bare det ved det at hvis jeg gør det sådan bliver det jo ikke nemt hvis nu de vil tilføje 2 T-shirts af samme model men med 2 forskellige størrelser sådan at der bliver en pris forskel på de 2.
Det vil gøre det besværligt når jeg så skal vise de produkter i admin delen, og jeg tror også der vil komme nogle problemer med varenummeret for så vil du jo have 2 produkter med samme varenummer, har dog overvejet at tilføje en session_id sammen med den oprettede kopi det ville jo løse det problem.
Men synes det er ligesom om det bliver meget sjusket og lappet sammen på den måde. Så håbede på der var nogen af jer der måske havde nogle gode ideer.
Har klippet lidt koder ud fra mine sider hvis i gerne vil se lidt nærmere hvordan det hele foregår.
Her er selve produktet der bliver vist til kunden.
<table class="table" width="100%" border="0">
<td valign="top" width="50%">
<div>
<a href="<?php echo $pd_image; ?>" rel="lightbox[roadtrip]"><img src="<?php echo $pd_image; ?>" width="240px" alt="Produkt billed" border:0" /></a>
</div>
<div>
<h6>Flere billeder:</h6>
</div>
<div>
<?php
(str_word_count($pd_all_image, 1, '0123456789_;&'));
$counts = str_word_count($pd_all_image, 0, '0123456789_.;&');
$picShow = explode(",", $pd_all_image);
$e=$counts - "1";
$antal=1;
for ($i=0; $i<=$e; $i++)
{
if ($antal==3 OR $antal==6 OR $antal==9 OR $antal==12 OR $antal==15 OR $antal==18 OR $antal==21 OR $antal==24 OR $antal==27 OR $antal==30)
{
$antal++;
echo '<a href="images/produkter/' . $picShow[$i] . '" rel="lightbox[roadtrip]"><img src="images/produkter/' . $picShow[$i] . '" width="80px" alt="Produkt billed" border:0" /></a>';
echo '<br />';
}else{
$antal++;
echo '<a href="images/produkter/' . $picShow[$i] . '" rel="lightbox[roadtrip]"><img src="images/produkter/' . $picShow[$i] . '" width="80px" alt="Produkt billed" border:0" /></a>';
}
}
?>
</div>
</td>
<td valign="top" width="50%">
<div>
<h2 class="PostHeaderIcon-wrapper"><span class="PostHeader"><?php echo $pd_name; ?></span></h2>
<p><?php echo $pd_description; ?></p>
<br /><br />
<?php
$sizecounts = str_word_count($pd_size, 0, '-1234567890/;&');
$sizeShow = explode(",", $pd_size);
$d=0;
$e=$sizecounts-1;
$n=$pd_size_price_change;
echo '<label for="size">Vælg størrelse her: </label>';
if ($pd_price_varies==1)
{
echo '<select name="size">';
for ($i=0; $i<=$e; $i++)
{
echo '<option value="' . $sizeShow[$i] . '">' . $sizeShow[$i] . '</option>';
}
}
if ($pd_price_varies==2)
{
echo '<select name="size">';
for ($i=0; $i<=$e; $i++)
{
echo '<option value="' . $sizeShow[$i] . '">' . $sizeShow[$i] . '</option>';
}
}
if ($pd_price_varies==3)
{
echo '<select name="size" onchange="sizeChanged(this.value)">';
for ($i=0; $i<=$e; $i++)
{
if ($i==0 AND $d==0)
{
echo '<option selected="selected" value="' . $pd_price . '">' . $sizeShow[$i] . '</option>';
$d++;
}elseif ($i<$n){
echo '<option value="' . $pd_price . '">' . $sizeShow[$i] . '</option>';
$d++;
}else{
echo '<option value="' . $pd_price_size . '">' . $sizeShow[$i] . " + " . $pd_price_size . '</option>';
$d++;
}
}
}
if ($pd_price_varies==4)
{
echo '<select name="size" onchange="sizeChanged(this.value)">';
for ($i=0; $i<=$e; $i++)
{
if ($i==0 AND $d==0)
{
echo '<option selected="selected" value="' . $pd_price . '">' . $sizeShow[$i] . '</option>';
$d++;
}elseif ($i<$n){
echo '<option value="' . $pd_price . '">' . $sizeShow[$i] . '</option>';
$d++;
}else{
echo '<option value="' . $pd_price_size . '">' . $sizeShow[$i] . " + " . $pd_price_size . '</option>';
$d++;
}
}
}
echo '</select>';
echo '<br />';
echo '<br />';
$colorcounts = str_word_count($pd_color, 0, ';&');
$colorShow = explode(",", $pd_color);
$g=$colorcounts - "1";
$j=0;
$m=$pd_color_price_change;
echo '<label for="color">Vælg farve her: </label>';
if ($pd_price_varies==1)
{
echo '<select name="color">';
for ($t=0; $t<=$g; $t++)
{
echo '<option value="' . $colorShow[$t] . '">' . $colorShow[$t] . '</option>';
}
}
if ($pd_price_varies==2)
{
echo '<select name="color" onchange="colorChanged(this.value)">';
for ($t=0; $t<=$g; $t++)
{
if ($t==0 AND $d==0)
{
echo '<option selected="selected" value="' . $pd_price . '">' . $colorShow[$t] . '</option>';
$d++;
}elseif ($t<$m){
echo '<option value="' . $pd_price . '">' . $colorShow[$t] . '</option>';
$d++;
}else{
echo '<option value="' . $pd_price_color . '">' . $colorShow[$t] . " + " . $pd_price_color . '</option>';
$d++;
}
}
}
if ($pd_price_varies==3)
{
echo '<select name="color">';
for ($t=0; $t<=$g; $t++)
{
echo '<option value="' . $colorShow[$t] . '">' . $colorShow[$t] . '</option>';
}
}
if ($pd_price_varies==4)
{
echo '<select name="color" onchange="colorChanged(this.value)">';
for ($t=0; $t<=$g; $t++)
{
if ($t==0 AND $d==0)
{
echo '<option selected="selected" value="' . $pd_price . '">' . $colorShow[$t] . '</option>';
$d++;
}elseif ($t<$m){
echo '<option value="' . $pd_price . '">' . $colorShow[$t] . '</option>';
$d++;
}else{
echo '<option value="' . $pd_price_color . '">' . $colorShow[$t] . " + " . $pd_price_color . '</option>';
$d++;
}
}
}
echo '</select>';
?><br /><br /><br />
<h3><div id="priceDiv">Pris: <?php echo $pd_price; ?> kr.</div></h3>
<input name="btnContinue" type="submit" id="btnContinue" value="Køb" onClick="window.location.href='<?php echo $cart_url ?>';" />
</div>
</td>
</table>
Når kunden er færdig med at vælge sine ting og trykker køb kommer denne function:
function addToCart()
{
// Tjekker produkt id
if (isset($_GET['p']) && (int)$_GET['p'] > 0) {
$productId = (int)$_GET['p'];
} else {
header('Location: produkt_visning.php');
}
// tjekker efer om produktet eksitere
$sql = "SELECT pd_id
FROM tbl_product
WHERE pd_id = $productId";
$result = dbQuery($sql);
if (dbNumRows($result) != 1) {
// hvis produktet ikke eksistere
header('Location: cart.php');
}
// sætter session id
$sid = session_id();
// Ser efter om produktet er i kurven
$sql = "SELECT pd_id
FROM tbl_cart
WHERE pd_id = $productId AND ct_session_id = '$sid'";
$result = dbQuery($sql);
if (dbNumRows($result) == 0) {
// indsætter produktet i indkøbskurv tabellen
$sql = "INSERT INTO tbl_cart (pd_id, ct_qty, ct_session_id, ct_date)
VALUES ($productId, 1, '$sid', NOW())";
$result = dbQuery($sql);
} else {
// Updaterer indkøbskurven med det nye antal
$sql = "UPDATE tbl_cart
SET ct_qty = ct_qty + 1
WHERE ct_session_id = '$sid' AND pd_id = $productId";
$result = dbQuery($sql);
}
// Sletter gamle indkøbskurve
deleteAbandonedCart();
header('Location: ' . $_SESSION['shop_return_url']);
}
Når vi så kommer tilbage til siden har vi min indkøbskurv:
<?php
$cartContent = getCartContent();
$cartContent2 = getCartContentStreamer();
$numItem = count($cartContent);
$numItem2 = count($cartContent2);
?>
<table width="100%" border="1" cellspacing="0" cellpadding="2" id="minicart">
<?php
if (($numItem > 0) OR ($numItem2 > 0)) {
$subTotal = 0;
for ($i = 0; $i < $numItem; $i++) {
extract($cartContent[$i]);
$pd_name = "$ct_qty x $pd_name";
$url = "produkt_visning.php?p=$pd_id";
$subTotal += $pd_price * $ct_qty;
?>
<tr>
<td><a href="<?php echo $url; ?>"><?php echo $pd_name; ?></a></td>
<td width="30%" align="right"><p><?php echo $ct_qty * $pd_price; ?>Kr.</p></td>
</tr>
<?php
} // Slutter tekstil produkter og starter streamer produkter
for ($i = 0; $i < $numItem2; $i++) {
extract($cartContent2[$i]);
$st_txt = "$ct_qty x $st_txt";
$subTotal += $st_price * $ct_qty;
?>
<tr>
<td><?php echo $st_txt; ?></td>
<td width="30%" align="right"><p><?php echo $ct_qty * $st_price; ?>Kr.</p></td>
</tr>
<?php
} // Slutter streamer produkter
?>
<tr>
<td align="right">Pris inkl moms</td>
<td width="30%" align="right"><p><?php echo $subTotal; ?>Kr.</p></td>
</tr>
<tr>
<td align="right">Forsendelse</td>
<td width="30%" align="right"><p><?php echo displayAmount($shopConfig['shippingCost']); ?>Kr.</p></td>
</tr>
<tr>
<td align="right">Pris Total inkl moms</td>
<td width="30%" align="right"><p><?php echo $subTotal + displayAmount($shopConfig['shippingCost']); ?>Kr.</p></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<a href="cart.php?action=view"> Gå til indkøkbskurven</a>
</td>
</tr>
<?php
} else {
?>
<tr>
<td colspan="2" align="center" valign="middle">Indkøbskurven er tom</td>
</tr>
<?php
}
?>
</table>
Jeg har ikke færdig udviklet admin delens indlæsning af varerne endnu så kan ikke rigtig vise jer mere end det her.
Har godt nok indkøbskurven's side men den går ikke nogen forksel fra den lille mini indkøbskurv som der er oppe i hjørnet på alle sider.
Indlæg senest redigeret d. 04.07.2009 06:45 af Bruger #15117