So, mein Shop ist nun fast fertig (habe von der 2.01 auf die 2.02 gewechselt) und luft im groen und ganzen einwandfrei.
Nun plagt mich pltzlich ein neues Problem:
In der 2.01 wurden die Artikel fein suberlich vom Bestand abgezogen und bei Bestand null wurde die Verfgbarkeitsanzeige gendert.
In der V2.02 geschiht die bei mir irgendwie nicht mehr. Die verfgbaren Bestnde bleiben einfach stehen.
Also wenn ich zB. 20 Artikel als Bestand eingegeben habe, bleibt dieser Bestand selbst nach dem 50. Verkauf des selben Artikels einfach stehen.
Da ich alle als verfgbar angezeigten Artikel aber auch wirklich auf Lager haben sollte (um diese ohne jegliche Wartezeit sofort auch ausliefern zu knnen) sehe ich da ein kleines vermeidbares Problem der Kunden auf mich zukommen.
Falls es Wichtig sein sollte:
Ich habe die Updates der Version 2.02 bereits aufgespielt.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
wie mir Andreas Kansok in einem anderen Thread mitgeteilt hat, ist auf den Artikelbestand kein sonderlich guter Verla, da "Zombi-Warenkrbe" schon vom Bestand abgezogen sind, auch wenn sie am Ende nicht wirklich bestellt werden. (also user laden Ihren Warenkorb voll, und verlassen dann einfach den Shop, ohne das in den Warenkorb gelegte zu kaufen)
Auf eine Nachfrage, ob eine PHP-SessionID, worber Andreas einen Warenkorb offensichtlich realisiert, irgendwann abluft, was es ermglichen wrde das Problem mit Transaktionen zu erschlagen, habe ich leider keine Antwort erhalten.
Gru.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2003-03-13
Um in der Version 2.02 die Aktuallisierung fr den Lagerbestand zu fixen, habe ich diese Funktion gebaut.
Der Lagerbestand wird erst aktuallisiert wenn die Bestellung abgeschickt wird. So wird vermieden, dass eine nicht ausgefhrte Bestellung
nicht den Lagerbestand verflscht. Der Nachteil ist der, dass wenn zwei Kunden gleichzeitig am shoppen sind, wenn's dumm luft, der
eine einen falschen Lagerbestand angezeigt bekommt... so what - ich denke, das kommt in den seltensten fllen vor...
:-)
function updateStock($sess)
{
$temp_cart = db_query("SELECT * FROM cart WHERE session ='$sess'") or db_die();
$temp_var = db_fetch_row($temp_cart);
$quantity = $temp_var[3];
$sizeID = $temp_var[2];
$stock_res = db_query("SELECT stock FROM size WHERE itemID='$temp_var[2]'") or db_die();
$item_row = db_fetch_row($stock_res);
$newstock = $item_row[0] - $temp_var[3];
db_query("update size set stock='$newstock' where ID='$sizeID'") or db_die();
}
UND vor der folgenden Zeile:
$exit = db_query("delete from cart where cart.session='$sess'") or db_die();
Ich verstehe das Anliegen, aber nicht die Code-Schnippsel nicht.
1) Wozu die nderung in der Administration (item.php)?
Der einzusetzende Teil ist zwar bersetzt ($item_11-13), dafr fehlt ein Status.
Der Regulre Ausdruck zur Formatierung fehlt im zweiten Teil auch und ebenso ist der SQL-Query nicht falsch aber nicht so schn wie der erste (size.itemID)
2) Was passiert mit der nderung des Lagerbestandes in $cart->add() bzw. $cart->modify(). Ich nehme an die DB-nderungen werden jetzt einfach nicht ausgefhrt?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So, mein Shop ist nun fast fertig (habe von der 2.01 auf die 2.02 gewechselt) und luft im groen und ganzen einwandfrei.
Nun plagt mich pltzlich ein neues Problem:
In der 2.01 wurden die Artikel fein suberlich vom Bestand abgezogen und bei Bestand null wurde die Verfgbarkeitsanzeige gendert.
In der V2.02 geschiht die bei mir irgendwie nicht mehr. Die verfgbaren Bestnde bleiben einfach stehen.
Also wenn ich zB. 20 Artikel als Bestand eingegeben habe, bleibt dieser Bestand selbst nach dem 50. Verkauf des selben Artikels einfach stehen.
Da ich alle als verfgbar angezeigten Artikel aber auch wirklich auf Lager haben sollte (um diese ohne jegliche Wartezeit sofort auch ausliefern zu knnen) sehe ich da ein kleines vermeidbares Problem der Kunden auf mich zukommen.
Falls es Wichtig sein sollte:
Ich habe die Updates der Version 2.02 bereits aufgespielt.
Hallo,
wie mir Andreas Kansok in einem anderen Thread mitgeteilt hat, ist auf den Artikelbestand kein sonderlich guter Verla, da "Zombi-Warenkrbe" schon vom Bestand abgezogen sind, auch wenn sie am Ende nicht wirklich bestellt werden. (also user laden Ihren Warenkorb voll, und verlassen dann einfach den Shop, ohne das in den Warenkorb gelegte zu kaufen)
Auf eine Nachfrage, ob eine PHP-SessionID, worber Andreas einen Warenkorb offensichtlich realisiert, irgendwann abluft, was es ermglichen wrde das Problem mit Transaktionen zu erschlagen, habe ich leider keine Antwort erhalten.
Gru.
Um in der Version 2.02 die Aktuallisierung fr den Lagerbestand zu fixen, habe ich diese Funktion gebaut.
Der Lagerbestand wird erst aktuallisiert wenn die Bestellung abgeschickt wird. So wird vermieden, dass eine nicht ausgefhrte Bestellung
nicht den Lagerbestand verflscht. Der Nachteil ist der, dass wenn zwei Kunden gleichzeitig am shoppen sind, wenn's dumm luft, der
eine einen falschen Lagerbestand angezeigt bekommt... so what - ich denke, das kommt in den seltensten fllen vor...
:-)
greez
chilli
Im File "item.php" diese Passage
echo "<tr><td>$item_10</td>\n";
$size_res = db_query("select stock, expiration from size where size.itemID='$art'") or db_die();
$size_row = db_fetch_row($size_res);
$size_num = db_num_rows($size_res) - 1;
$size_row0 = preg_replace("([.][0]{1,}$)","",$size_row[0]);
echo "<td><input type=text name=\"nstock\" value=\"$size_row0\" size=10></td>\n";
echo "<td><select name=\"nexpi\">\n";
echo "<option value=\"actual\" ";
if ($size_row[1]=="actual") { echo "selected ";}
echo ">2-3 Tage</option>\n<option value=\"Xactual\" ";
if ($size_row[1]=="Xactual") { echo "selected ";}
echo ">2-3 Wochen</option>\n<option value=\"rest\"";
if ($size_row[1]=="rest") { echo "selected ";}
echo ">bis ausverkauft</option>\n<option value=\"never\"";
if ($size_row[1]=="never") { echo "selected ";}
echo ">immer</option>\n";
echo "</select></td>\n";
echo "<td>\n";
mit dieser ERSETZEN:
echo "<tr><td>$item_10</td>\n";
$size_res = db_query("select stock, expiration from size where itemID='$art'") or db_die();
$size_row = db_fetch_row($size_res);
$size_num = db_num_rows($size_res) - 1;
echo "<td><input type=text name=\"nstock\" value=\"$size_row[0]\" size=10></td>\n";
echo "<td><select name=\"nexpi\">\n";
echo "<option value=\"actual\" ";
if ($size_row[1]=="actual") { echo "selected ";}
echo ">$item_11</option>\n<option value=\"rest\"";
if ($size_row[1]=="rest") { echo "selected ";}
echo ">$item_12</option>\n<option value=\"never\"";
if ($size_row[1]=="never") { echo "selected ";}
echo ">$item_13</option>\n";
echo "</select></td>\n";
echo "<td>\n";
**********************************************************************************
Im File "mailer.inc.php"
diese funktion einfgen:
function updateStock($sess)
{
$temp_cart = db_query("SELECT * FROM cart WHERE session ='$sess'") or db_die();
$temp_var = db_fetch_row($temp_cart);
$quantity = $temp_var[3];
$sizeID = $temp_var[2];
$stock_res = db_query("SELECT stock FROM size WHERE itemID='$temp_var[2]'") or db_die();
$item_row = db_fetch_row($stock_res);
$newstock = $item_row[0] - $temp_var[3];
db_query("update size set stock='$newstock' where ID='$sizeID'") or db_die();
}
UND vor der folgenden Zeile:
$exit = db_query("delete from cart where cart.session='$sess'") or db_die();
diesen Aufruf fr die Funktion einfgen:
updateStock($sess);
**********************************************************************************
Ich verstehe das Anliegen, aber nicht die Code-Schnippsel nicht.
1) Wozu die nderung in der Administration (item.php)?
Der einzusetzende Teil ist zwar bersetzt ($item_11-13), dafr fehlt ein Status.
Der Regulre Ausdruck zur Formatierung fehlt im zweiten Teil auch und ebenso ist der SQL-Query nicht falsch aber nicht so schn wie der erste (size.itemID)
2) Was passiert mit der nderung des Lagerbestandes in $cart->add() bzw. $cart->modify(). Ich nehme an die DB-nderungen werden jetzt einfach nicht ausgefhrt?