Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
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: Hinweistext max. Artikelanzahl bei Warenkorb

    peeweemedia

    • Neu im Forum
    • Beiträge: 3
    Hinweistext max. Artikelanzahl bei Warenkorb
    am: 04. Juni 2013, 18:52:28
    Falls ich falsch bin, bitte verschieben.

    Ich habe in meinem Shop die max. bestellbare Artikelanzahl auf 15 Artikel gesetzt. Dies funktioniert auch wunderbar. Wenn man beim Warenkorb eine größere Anzahl angibt, dann setzt das System die Anzahl automatisch runter auf 15. Ich würde dann gerne bei /shopping_cart.php eine Hinweistext einfügen, dass die max. Anzahl nur 15 ist.
    Irgendwie steh ich auf dem Schlauch und schaff es nicht einen Text einzufügen.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=26432.0
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #1 am: 12. Juni 2013, 18:32:48
    Das Thema interessiert mich, ist wirklich nicht user-freundlich so.
    Idee:
    In /includes/cart_actions.php folgendes suchen:
    ! Achtung, kommt min. 2 x vor,
    einmal unter case = update_product
    und einmal unter case = add_product,
    in beiden Fällen folgende Anweisung durchführen !

    (Kann an noch mehr Stellen eingefügt werden, (z.B. unter case = buy_now) die habe ich aber noch nicht überprüft.)
    Code: PHP  [Auswählen]
    if ($cart_quantity > MAX_PRODUCTS_QTY) {

    und direkt darunter einfügen:
    Code: PHP  [Auswählen]
    // BOC test for error message in shopping cart, noRiddle
    $_SESSION['err_max_prod'] = true;
    // EOC test for error message in shopping cart, noRiddle

    In /shopping_cart.php folgendes suchen:
    Code: PHP  [Auswählen]
     if  ($_SESSION['customers_status']['customers_status_max_order'] != 0) {
      if ($_SESSION['cart']->show_total() > $_SESSION['customers_status']['customers_status_max_order'] ) {
      $_SESSION['allow_checkout'] = 'false';
      $less_to_buy = $_SESSION['cart']->show_total() - $_SESSION['customers_status']['customers_status_max_order'];
      $max_order=$xtPrice->xtcFormat($_SESSION['customers_status']['customers_status_max_order'], true);
      $order_amount=$xtPrice->xtcFormat($less_to_buy, true);
      $smarty->assign('info_message_1', MAXIMUM_ORDER_VALUE_REACHED_1);
      $smarty->assign('info_message_2', MAXIMUM_ORDER_VALUE_REACHED_2);
      $smarty->assign('order_amount', $order_amount);
      $smarty->assign('min_order', $max_order);
      }
     }

    Darunter das einfügen:
    Code: PHP  [Auswählen]
    // BOC test for error message in shopping cart, noRiddle
    if(isset($_SESSION['err_max_prod'])){
        $smarty->assign('error_max_prod', MAX_PROD_QTY_EXCEEDED);
    }
    unset($_SESSION['err_max_prod']);
    // EOC test for error message in shopping cart, noRiddle

    In /templates/DEIN_TEMPLATE/module/shopping_cart.html an beliebiger Stelle folgendes einfügen:
    (am Besten direkt unter <h1>{#heading_cart#}</h1>)
    Code: PHP  [Auswählen]
    {*BOC test for error message in shopping cart, noRiddle*}
    {if $error_max_prod}<p class="errormessage">{$error_max_prod}</p>{/if}
    {*EOC test for error message in shopping cart, noRiddle*}

    In /lang/SPRACHE/SPRACHE.php folgendes unten anfügen (vor dem schließenden ?> falls vorhanden):
    (Beispiel für Deutsch)
    Code: PHP  [Auswählen]
    // BOC test for error message in shopping cart, noRiddle
    define('MAX_PROD_QTY_EXCEEDED', 'Die maximal erlaubte St&uuml;ckzahl für den zuletzt hinzugef&uuml;gten Artikel wurde &uuml;berschritten.<br />Die Stückzahl wurde automatisch auf die erlaubte St&uuml;ckzahl reduziert.');
    // EOC test for error message in shopping cart, noRiddle

    Die Session wird nach einmaligem Aufruf gelöscht, die Meldung erscheint also nur genau einmal in dem Moment wo eine zu große Artikelmenge eingegeben wurde.

    Bitte testen und Feedback geben.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #2 am: 12. Juni 2013, 20:19:59
    Eine schöne Idee. Ich habe das mal in Ticket #30 festgehalten.

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #3 am: 13. Juni 2013, 14:27:35
    Mir ist gerade noch eine Diskrepanz aufgefallen (Bug ?).
    Es gibt ja eine Prüfung auf folgende vier Dinge bei Legen eines Artikels in den Warenkorb:
    • Lagerbestand überschritten
    • Maximale erlaubte Stückzahl für einen Artikel überschritten
    • Mindestbestellwert (customers_status_min_order)
    • Höchstbestellwert (customers_status_max_order)

    In Fall 1. wird die Stückzahl im Warenkorb nicht automatisch angeglichen aber eine Meldung ausgegeben, daß nicht genug auf Lager ist.
    In Fall 2. wird die Stückzahl automatisch angeglichen und mit meiner Implementation nun auch eine Meldung ausgegeben.
    In Fall 3. wird eine Meldung ausgegeben.
    In Fall 4. wird eine Meldung ausgegeben.

    Trifft Fall 1. und 2. zu und ist die max. erlaubte Stückzahl für einen Artikel höher als der Lagerbestand  werden beide Meldungen ausgegeben, die für Überschreitung des Lagerbestandes wie auch die neue von mir vorgeschlagene.
    Das ist natürlich dann nicht korrekt, da die Stückzahl zwar sowohl den Lagerbestand als auch die max. erlaubte Stückzahl pro Artikel überschreitet, der Stückzahl-Wert jedoch nicht angepasst wird.
    Dies wäre auch der Fall ohne meine Implementation, es fällt nur mangels Meldung nicht auf.

    Lösungsvorschlag:
    Den vorgeschlagenen Code für /shopping_cart.php erweitern zu:
    Code: PHP  [Auswählen]
    // BOC test for error message in shopping cart, noRiddle
    if(isset($_SESSION['err_max_prod']) && $_SESSION['any_out_of_stock'] == 0){
        $smarty->assign('error_max_prod', MAX_PROD_QTY_EXCEEDED);
    }
    unset($_SESSION['err_max_prod']);
    // EOC test for error message in shopping cart, noRiddle

    Damit wird die neue von mir hier vorgeschlagene Meldung nur ausgegeben wenn
    • die max. erlaubte Stückzahl für einen Artikel überschritten ist
    • der Lagerbestand nicht überschritten ist;
      ist dieser überschritten wird nur die Lagermeldung ausgegeben

    Da nun aber die Lagerwarnmeldung auch kommt wenn der Lagerbestand von Attributen überschritten wurde, ist die Lösung nicht perfekt.
    Es kommt ja bei Überschreitung des Lagerbestandes (Fall 1.) und gleichzeitiger Überschreitung der max. erlaubten Stückzahl für einen Artikel (Fall 2.) nur die Lagermeldung.
    Da die Überschreitung des Lagerbestandes sich jedoch auf Attribute bezog,
    die Überschreitung der max. erlaubten Stückzahl für einen Artikel jedoch auf den Hauptartikel,
    wird die Haupt-Artikel-Stückzahl automatisch reduziert, es kommt aber nicht die begehrte Meldung.
    Dazu habe ich mom. noch keine Idee.
    Jemand ?

    Die Fälle wo customers_status_min_order unterschritten bzw. customers_status_max_order überschritten wird und gleichzeitig Fall 1. und/oder Fall 2. zutreffen sind kein Problem.
    Es werden dann lediglich die nötigen Meldungen ausgegeben.

    Ganz schön komplex das ganze.
    Liegt u.a. auch daran, daß modified eCommerce bzgl. Attributen keine gute Lagerverwaltung hat.
    Da müsste wohl doch mal ein Master-Slave-Implementation rein  :flee-mrgreen:

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #4 am: 13. Juni 2013, 18:19:19
    Okay, Korrektur.
    Ich habe mich vertan mit der Behauptung, daß bei Überschreitung der max. erlaubte Stückzahl pro Artikel und der gleichzeitigen Lagerbestandsüberschreitung die Stückzahl im Warenkorb nicht automatisch angepasst würde.
    Mein verbesserter Vorschlag für die /shopping_cart.php ist also unnötig und es ist die Anleitung aus diesem Post zu nehmen.

    Da das alles ein wenig verwirrend ist, folgend nochmals die Kombinationsmöglichkeiten die vorkommen können:
      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel nicht überschritten
      • Lagerbestand Attributbestand nicht überschritten
          => Ausgabe der neuen Meldung
      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel überschritten
      • Lagerbestand Attributbestand nicht überschritten
          => Ausgabe der neuen Meldung und der Lagerbestandsmeldung
      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel überschritten
      • Lagerbestand Attributbestand überschritten
          => Ausgabe der neuen Meldung und der Lagerbestandsmeldung
      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel nicht überschritten
      • Lagerbestand Attributbestand überschritten
          => Ausgabe der neuen Meldung und der Lagerbestandsmeldung

    Wer die maximale erlaubte Stückzahl für einen Artikel
    (Backend => Konfiguration => Maximum Werte => Maximale Produktanzahl XX Maximale Anzahl eines Artikels im Warenkorb)
    niedrig setzt sollte bedenken, daß, auch wenn die Artkelanzahl bei höherer Angabe im Warenkorb automatisch auf die maximale erlaubte Stückzahl für einen Artikel reduziert wird, es trotzdem sein kann, daß der Lagerbestand von evtl. vorhandenen Attributen überschritten wurde.

    Es liegt also an jedem selbst die Texte für die Meldungen in der Sprachdatei nach Wunsch so anpassen, daß es bei den Kunden keine Verwirrung gibt.

    Bitte trotzdem noch um Test-Feedback.

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #5 am: 13. Juni 2013, 21:28:21
    Was ist eigentlich mit dir, peeweemedia ?
    Bist selbst angebl. Dienstleister, stellst hier solche Fragen und reagierst nicht mal auf Antworten ???

    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #6 am: 02. Juli 2013, 00:28:56
    Hab's zwar erfolgreich getestet, ein Feedback von jemandem der es eingebaut hat wäre trotzdem schön...
    peeweemedia ???

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #7 am: 26. November 2013, 16:15:38
     :?:

    Dewitt

    • Neu im Forum
    • Beiträge: 14
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #8 am: 14. Januar 2014, 11:04:02
    Hi noRiddle!

    Hab es soeben ausprobiert.
    Sobald ich an die german.php gehe, also irgendwas verändert ist, funktioniert es nicht mehr.
    Keine Fehlermedlung, sondern einfach ein weißer Bildschirm beim aufrufen.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #9 am: 14. Januar 2014, 18:00:35
    Dann hast du beim Einbau Mist gebaut.

    Was die */german.php betrifft hier mal ein Zitat aus meiner Anleitung:
    Zitat von: noRiddle
    In /lang/SPRACHE/SPRACHE.php folgendes unten anfügen (vor dem schließenden ?> falls vorhanden):

    Im Übrigen habe ich noch eine Verbesserung.
    Da man ja auch im Warenkorb Stückzahlen ändern kann und zwar bei mehreren Artikeln gleichzeitig (insofern vorhanden), sollte man in der
    /includes/cart_actions.php im case update_product
    folgendes machen anstelle des oben angegebenen:
    Code: PHP  [Auswählen]
    if ((int)$_POST['cart_quantity'][$i] > MAX_PRODUCTS_QTY){
        // BOC test for error message in shopping cart, noRiddle
        $_SESSION['err_max_prod'][$i] = true;
        // EOC test for error message in shopping cart, noRiddle
        $cart_quantity = MAX_PRODUCTS_QTY;
    }

    und in /shopping_cart.php dies anstelle des oben genannten:
    Code: PHP  [Auswählen]
    // BOC test for error message in shopping cart, noRiddle
    if(isset($_SESSION['err_max_prod'])) {
        $error_msg = array();
        for ($i = 0, $n = sizeof($products); $i < $n; $i ++) {
            if(isset($_SESSION['err_max_prod'][$i])){
                $emsg = sprintf(MAX_PROD_QTY_EXCEEDED, $products[$i]['name']);
                $error_msg[] = array(E_MSG => $emsg);
            }
            unset($_SESSION['err_max_prod'][$i]);
        }
        $smarty->assign('error_max_prod', $error_msg);
    }
      // EOC test for error message in shopping cart, noRiddle

    In der /lang/SPRACHE/SPRACHE.php dann das
    Code: PHP  [Auswählen]
    // BOC test for error message in shopping cart, noRiddle
    define('MAX_PROD_QTY_EXCEEDED', 'Die maximal erlaubte St&uuml;ckzahl für "%s" wurde &uuml;berschritten.<br />Die Stückzahl wurde automatisch auf die erlaubte St&uuml;ckzahl reduziert.');
    // EOC test for error message in shopping cart, noRiddle

    und im template /module/shopping_cart.php das
    Code: PHP  [Auswählen]
    {*BOC error message for exceeded product quantity, noRiddle*}
    {if $error_max_prod}
    <div class="errormessage">
        <ul>
            {foreach item=err_max_data from=$error_max_prod}
            <li>{$err_max_data.E_MSG}</li>
            {/foreach}
        </ul>
    </div>
    {/if}
    {*EOC error message for exceeded product quantity, noRiddle*}

    Damit wird für jeden Artikel der die max. erlaubte Stückzahl überschreitet bei Eingabe eine Meldung ausgegeben.

    Gruß,
    noRiddle

    Dewitt

    • Neu im Forum
    • Beiträge: 14
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #10 am: 14. Januar 2014, 19:08:46
    Danke für die Antwort.

    Kannst du vielleicht etwas genauer erläutern was ich falsch gemacht haben könnte?
    Habe den befehl Vor dem schließenden ?> eingefügt.

    Was bewirkt die Änderung?
    Die du jetzt angefügt hast?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #11 am: 14. Januar 2014, 19:34:30
    Was die Änderung bewirkt habe ich oben doch geschrieben.

    Du schriebst:
    "Sobald ich an die german.php gehe, also irgendwas verändert ist, funktioniert es nicht mehr."
    Also hat es vorher funktioniert ?

    Ich kann ja leider nicht hellsehen, weiß deshalb nicht was du verkehrt gemacht hast.
    Schalte mal die Fehlermeldungen an (siehe Handbuch) und melde was da an Fehlermeldungen kommt wenn du nach deinem besten Wissen alles korrekt eingebaut hast.

    Gruß,
    noRiddle

    Dewitt

    • Neu im Forum
    • Beiträge: 14
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #12 am: 14. Januar 2014, 19:47:13
    Vielleicht kommunizieren wir per Mail, spamt nicht das Forum so voll ;-)

    Hatte alles eingebaut und da lief es nicht mehr, so habe ich alles nach und nach auf den alten Stand gebracht.
    Dann habe ich gemerkt das es die german.php ist, sobald diese nicht im Altzustand auf dem Server lag, war der Bildschirm einfach weiß.

    Vielleicht kannst du mir deine schicken?
    Oder eine in der die Änderung vorhanden ist?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #13 am: 15. Januar 2014, 00:43:26
    Jau, kannst mich über mein Häuschen links anschreiben.

    Was die german.php betrifft muß man ja lediglich eine Zeile einfügen, da kann ja normalerweise nichts passieren.

    Gruß,
    noRiddle

    tromPeter

    • Neu im Forum
    • Beiträge: 47
    • Geschlecht:
    Re: Hinweistext max. Artikelanzahl bei Warenkorb
    Antwort #14 am: 21. Januar 2014, 14:08:59
    hey noRiddle,

    ich nochmal :-)

    du schreibst in der Anleitung

    ! Achtung, kommt min. 2 x vor,
    einmal unter case = update_product
    und einmal unter case = add_product,
    in beiden Fällen folgende Anweisung durchführen !


    dann weiter unten:

    Da man ja auch im Warenkorb Stückzahlen ändern kann und zwar bei mehreren Artikeln gleichzeitig (insofern vorhanden), sollte man in der
    /includes/cart_actions.php im case update_product

    Code: PHP  [Auswählen]
        if ((int)$_POST['cart_quantity'][$i] > MAX_PRODUCTS_QTY){
            // BOC test for error message in shopping cart, noRiddle
            $_SESSION['err_max_prod'][$i] = true;
            // EOC test for error message in shopping cart, noRiddle
            $cart_quantity = MAX_PRODUCTS_QTY;
        }

    Muss das nicht unter den Fall:
    // customer wants to update the product quantity in their shopping cart (Zeile 65 in der cart_actions.php)

    Wenn ich nach der Anleitung gehe steht keines unter diesem Fall. Oder hab ich da was verpeilt?

    Gebe ehrlich zu das ich das Php gedönse nur nach Anleitung einbauen kann.
    Wenn ich mir zu lange Php Code ansehe landet mein Hirn ich in einer if else do nothing Schleife :-o

    Ach und mir ist nochwas in den Kombinationsmöglichkeiten aufgefallen:

      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel nicht überschritten
      • Lagerbestand Attributbestand nicht überschritten
          => Ausgabe der neuen Meldung
      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel überschritten
      • Lagerbestand Attributbestand nicht überschritten
          => Ausgabe der neuen Meldung und der Lagerbestandsmeldung
      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel überschritten
      • Lagerbestand Attributbestand überschritten
          => Ausgabe der neuen Meldung und der Lagerbestandsmeldung
      • Maximal erlaubte Stückzahl überschritten
      • Lagerbestand Hauptartikel nicht überschritten
      • Lagerbestand Attributbestand überschritten
          => Ausgabe der neuen Meldung und der Lagerbestandsmeldung

    was ist den in diesem Falle:

    • Maximal erlaubte Stückzahl nicht überschritten
    • Lagerbestand Hauptartikel überschritten
    • Lagerbestand Attributbestand überschritten

    So, ich hoffe ich habe alle Klarheiten beseitigt  :mhhh:

    Verwirrte Grüße, Peter
    13 Antworten
    5704 Aufrufe
    03. Juli 2012, 11:25:59 von cillex
    1 Antworten
    2192 Aufrufe
    19. Januar 2012, 14:37:24 von Tomcraft
    4 Antworten
    4053 Aufrufe
    02. Mai 2014, 15:23:33 von Saywer
    23 Antworten
    11943 Aufrufe
    11. August 2012, 12:39:44 von spar-helferchen
               
    anything