Shop-Problem: Bestellung des gleichen Artikels

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Shop-Problem: Bestellung des gleichen Artikels

    Hallo in die Runde,

    in einem von mir erstellten Shop-System (auf PHP/MySQL-Basis) tritt jetzt nach 4-monatigem Einsatz und steigender Besucherzahl desöfteren das Problem auf, das 2 Kunden einen Artikel bestellen, der nur noch 1x "on stock" ist.

    Dies möchte ich natürlich verhindern, da es unnötigen Aufwand verursacht.

    Ich versuche mal den Bestellvorgang etwas detaillierter zu beschreiben:

    1. User betritt die Seite, bekommt eine Session-Id.
    2. Er loggt sich ein (ohne einloggen -> kein Warenkorb/kein bestellen).
    3. Er legt einen Artikel in den Warenkorb (nur möglich bei Artikelmenge >0)
    4. Er geht "zur Kasse", wählt Zahlmethode, Versandart und Lieferadresse (vorher im User-Profil gespeichert)
    5. Er bestellt

    Bei 5. passiert eigentlich das relevante:
    -in der Tabelle 'orders' wird für jeden Artikel ein Eintrag angelegt, mit gleichbleibender Bestellnummer, User-id, Artikel-id, bestellter Anzahl und den restlichen für die Bestellung relevanten Daten

    -die Anzahl der bestellten Artikel in der Datenbank wird nach unten korrigiert, also "bisherige Anzahl - bestellte Anzahl".

    Und hier, bzw. auch beim "in den Warenkorb legen" des Artikels ist sicherlich das Problem.
    Es wird ja nur beim Reinlegen überprüft, ob der Artikel vorhanden ist oder nicht. Liegt er einmal drin, kann er bestellt werden.
    Sind nun 2 Leute jeweils ne halbe Stunde im Shop unterwegs, und deren aktive Zeiten überschneiden sich (sprich, der eine legt den Artikel in den Warenkorb und bestellt noch nicht, inzwischen legt der andere den Artikel auch rein), kommt es zur oben genannten Problematik.


    Hoffe ich habe das verständlich beschrieben...
    Muss noch dazusagen, nach 1h Inaktivität wird der User automatisch ausgeloggt und der Warenkorb geleert.


    Hat jemand von euch vielleicht eine Idee, für eine Art Workaround oder so?
    Artikelanzahl beim reinlegen in den Korb runterzusetzen ist Mist, da könnte ja einer Ärger machen wollen und alles mögliche reinlegen, dann einfach nicht bestellen.
    Ich dachte vielleicht daran die Inaktivitätsgrenze nach unten zu korrigieren...auf vielleicht 15 Minuten. Würde eventuell einiges eindämmen, aber das ganze nicht wirklich umgehen.

    Danke schon mal im Voraus, wenn sich jemand mal nen Kopf macht
    Last edited by Lodi; 06-05-2004, 00:55.
    "...vielleicht stehe ich vor dir und du erkennst mich nicht. Spielt das eine Rolle? Wir sah'n ins gleiche Licht..."

  • #2
    Re: Shop-Problem: Bestellung des gleichen Artikels

    Original geschrieben von Lodi

    Ich dachte vielleicht daran die Inaktivitätsgrenze nach unten zu korrigieren...auf vielleicht 15 Minuten. Würde eventuell einiges eindämmen, aber das ganze nicht wirklich umgehen.
    Nein, würde ich nicht machen - da kann Mensch ja noch nicht mal zwischendurch auf´s Klo gehen oder Mittag essen ...
    Wir hatten den Timeout mal auf 20 Minuten gesetzt und das hat nur Probleme bzw. Protest gegeben.

    Die einzige sinnvolle Lösung ist, beim finalen Bestellprozess erneut den Bestand zu kontrollieren und die Bestellung ggf. aufgrund des fehlenden Artikels mit einer entsprechenden Fehlermeldung abzubrechen.

    Wenn man den ganzen Kram mal weiterspinnt, hast Du aber noch eine wahnwitzige Möglichkeit:
    Du kannst, sobald sich mehr Artikel in Warenkörben befinden, als vorhanden sind, den Kunden mitteilen, dass nur derjenige, der schneller ist, den Artikel bekommt.
    (-:
    Bookmarks:·Bilder·Jobs·Recht·
    kostenloser Webkataloge-Assistent

    Comment


    • #3
      wenn du den kunden nicht sagen willst, dass der artikel zur zeit leider vergriffen ist (und eine bestellung daher länger dauert), dann geh davon aus, dass der kunde alles bestellt, was er in seinen einkaufskorb legt


      in nem normalen supermarkt geht auch kein kune hin und klaut dir brühwürfel aus dem einkaufskorb während er sich an dir vorbei zur kasse vordrängelt


      kannst ja einen hinweis machen: "Sollte der von Ihnen gewünschte Artikel ausnahmsweise nicht in ausreichender Stückzahl vorrätig sein, versuchen Sie es doch später nocheinmal. Wir aktualisieren unsere bestände <session-timeout, z. b. stündlich."


      ist zwar imho nicht so elegant wie die variante, die z.b. amazon verwendet, aber dafür auch nicht so aufwendig (evtl. LOCK TABLE verwenden *g*)
      Ich denke, also bin ich. - Einige sind trotzdem...

      Comment


      • #4
        Original geschrieben von mrhappiness
        wenn du den kunden nicht sagen willst, dass der artikel zur zeit leider vergriffen ist (und eine bestellung daher länger dauert), dann geh davon aus, dass der kunde alles bestellt, was er in seinen einkaufskorb legt
        Wenn ich Dich richtig verstehe, meinst Du, alle Artikel, die Kunde sich im Warenkorb legt, zu reservieren und ggf. erst nach seiner Session-Timeout wieder freizugeben?

        Das finde ich keine gute Idee, denn aus meiner Erfahrung heraus kann ich sagen, dass es viele Shop-Besucher gibt, die ihren Traum-Warenkorb zusammenstellen und danach doch nicht bestellen. Der Prozentsatz ist sogar relativ hoch.
        Dies bringt vor allem Probleme mit sich, wenn man viele Einzelprodukte hat, was ja bei Lodi scheinbar der Fall ist.
        (-:
        Bookmarks:·Bilder·Jobs·Recht·
        kostenloser Webkataloge-Assistent

        Comment


        • #5
          aber kunden erst sachenbestellen lassen und dann zu sagen "ätschbätsch, geht ja gar nicht" ist auch nicht wirklich toll, da würde ich es vorziehen, die wahl zu haben:
          • entweder ich warte, bis alle artikel da sind
          • oder ich lass mir meine bestellung auf mehrere lieferungen verteilt schicken


          aber das will lodi janicht
          Ich denke, also bin ich. - Einige sind trotzdem...

          Comment


          • #6
            Original geschrieben von mrhappiness
            aber kunden erst sachenbestellen lassen und dann zu sagen "ätschbätsch, geht ja gar nicht" ist auch nicht wirklich toll,...
            Da hast Du nicht unrecht. In solch einem Fall kann man vielleicht auch auf ein Ampelsymbol oder etwas vergleichbares zurückgreifen und somit auf die bedingte Verfügbarkeit und auf den Umstand, dass nur der, der schneller bestellt, die Ware bekommt, hinweisen.

            Mir ist allerdings klar, dass solche Hinweise auch nervend wirken können. Der Königsweg ist imho, immer einen Mindestlagerbestand zu halten, der im Normalfall das Tagesgeschäft so lange abdeckt, bis die nachbestellte Ware eintrifft.
            (-:
            Bookmarks:·Bilder·Jobs·Recht·
            kostenloser Webkataloge-Assistent

            Comment


            • #7
              Danke daß ihr euch Gedanken gemacht habt

              Falls es euch interessiert, um welchen Shop es überhaupt geht:
              Important Records

              Ich bin ja nun "nur" der Programmierer und nicht der, der den Shop letztendlich administriert und die Bestellungen bearbeitet.
              Daher wurde ich gebeten, dieses Problem unter die Lupe zu nehmen und möglichst so zu umgehen, daß kein Arbeitsaufwand entsteht. Der Shop soll das ganze sozusagen regeln.

              Desweiteren ist es momentan so, daß die Kunden ohne weiteres nicht einsehen können, wieviel Stück des Artikels noch verfügbar sind. Sie sehen halt nur, ob sie ihn in den Warenkorb legen können (stock>0) oder nicht (stock==0). Sie können allerdings die maximale Stückzahl durch eine höhere Eingabe überschreiten, die dann automatisch auf die vorhandene Zahl korrigiert wird. Passiert aber in der Praxis eher selten, da es sich um Platten und CDs handelt und man die ja meist nur 1x braucht

              Ich persönlich, wäre ich Kunde, würde es auch eher zu schätzen wissen, wenn ich nach dem Bestellen eine persönliche Mail bekomme, daß einer meiner bestellten Artikel nicht mehr verfügbar ist, und vor die Wahl gestellt werde, ob ich erstmal die restlichen Artikel bezahle und geliefert bekomme, oder gar ganz abwarten will, oder im schlimmsten Fall stornieren will.

              Das ganze Shopsystem ist nicht darauf konzipiert, daß die User ihre offenen Bestellungen einsehen/bearbeiten können.
              Ebenfalls ist dies als Admin nicht möglich.
              Die Bestellung kommt "am Stück" rein und es ist momentan technisch für den Shopbetreiber nicht möglich, da einzelne Artikel rauszustreichen.
              Also müsste er die Rechnung "per Hand" neu berechnen/schreiben usw. und so fort...der unerwünschte Aufwand.

              Im Moment ist halt eine Stornierung der schnellste Weg für den Betreiber, aber eben auch der ärgerlichste für den Kunden.

              Ich werde das nochmal mit dem Betreiber beraten, wo man da jetzt Prioritäten setzt.

              Danke nochmal
              "...vielleicht stehe ich vor dir und du erkennst mich nicht. Spielt das eine Rolle? Wir sah'n ins gleiche Licht..."

              Comment

              Working...
              X