Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Cache im Warenkorb ermöglicht unerwünschte Überverkäufe

    Mikn

    • Neu im Forum
    • Beiträge: 19
    Hi,

    ich habe ein Problem mit aktiviertem cache im Warenkorb.

    Wenn ein Artikel Bestand = 0 hat, können meine Kunden trotzdem weiter zur Kasse.

    Gibt es da einen Bug bei mir oder ist das so die Regel?

    Es gibt auch eine Lösung für mein Problem in der xtc_get_products_stock.inc.php:

    Code: PHP  [Auswählen]
        $stock_query = xtDBquery("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . $products_id . "'");

    Ändern in:

    Code: PHP  [Auswählen]
        $stock_query = xtc_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . $products_id . "'");

    Schaffe ich mir damit weitere Probleme, oder schaffe ich mir damit mein Problem ab?
    Gab wohl auch schonmal Änderungen was das betrifft:
    https://github.com/ehrenfeu/modified-shop/blob/master/inc/xtc_get_products_stock.inc.php

    Danke schonmal für Antworten!
    Gruß Michael

    Edit: 1.05 SP1c

    Linkback: https://www.modified-shop.org/forum/index.php?topic=26274.0

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.306
    • Geschlecht:
    Hallo,

    diese Lösung auf Github ist falsch !

    wenn die Abfrage gecached werden soll, dann muss der Aufruf mit xtDBquery erfolgen. Wichtig dabei ist, dass bei der funktion xtc_db_fetch_array der 2te Parameter auf true steht.

    Code: PHP  [Auswählen]
      function xtc_get_products_stock($products_id) {
        $products_id = xtc_get_prid($products_id);
        $stock_query = xtDBquery("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . $products_id . "'");
        $stock_values = xtc_db_fetch_array($stock_query,true);

        return $stock_values['products_quantity'];
      }

    damit sollte es keine Probleme geben.

    Alternativ ohne Cache:

    Code: PHP  [Auswählen]
      function xtc_get_products_stock($products_id) {
        $products_id = xtc_get_prid($products_id);
        $stock_query = xtc_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . $products_id . "'");
        $stock_values = xtc_db_fetch_array($stock_query);

        return $stock_values['products_quantity'];
      }

    Gruss Gerhard

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    [...]
    diese Lösung auf Github ist falsch !
    [...]

    Das ist doch letztendlich nur ein unerwünschter Spiegel unseres SVN. Die Datei dort ist aus dem Trunk und auf Stand r4200.

    Dann besteht diesbezüglich bei uns wohl noch Handlungsbedarf? :-?

    Grüße

    Torsten

    Taste

    • Frisch an Board
    • Beiträge: 86
    Re: Cache im Warenkorb ermöglicht unerwünschte Überverkäufe
    Antwort #3 am: 04. Dezember 2014, 09:26:34
    Wäre es nicht sinnvoll xtc_get_products_stock() auf xtc_db_query() umzustellen?
    Der aktuelle Shop nutzt ja gerade auch xtDBquery.

    Ich glaube nicht dass es sinnvoll ist die Artikelanzahl zu cachen?

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Re: Cache im Warenkorb ermöglicht unerwünschte Überverkäufe
    Antwort #4 am: 04. Dezember 2014, 15:38:55
    :good:

    Das ist natürlich überhaupt nicht gut, Danke.

    Ist scheinbar doch noch nicht behoben!

    Gruß, h-h-h

    [EDIT h-h-h: erledigt in r6912, r6913, r6914]
    2 Antworten
    2467 Aufrufe
    26. September 2011, 23:35:21 von Tomcraft
    2 Antworten
    1928 Aufrufe
    13. September 2010, 06:24:14 von GTB
    5 Antworten
    3032 Aufrufe
    09. Mai 2009, 10:11:28 von emet
               
    anything