Menu

Artikelbestnde

Help 2.02
der Fiede
2003-02-04
2003-03-13
  • der Fiede

    der Fiede - 2003-02-04

    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.

     
    • Christian Ordig

      Christian Ordig - 2003-02-04

      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.

       
    • Anonymous

      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...
      :-)

      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);

          **********************************************************************************

       
    • Andreas Kansok

      Andreas Kansok - 2003-03-13

      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?

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.