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: MODUL: Menge von Gratisartikel im Warenkorb reduzieren

    p3e

    • Experte
    • Beiträge: 2.396
    Hier kam schon öfter die Frage auf, wie man einen Gratisartikel auf die Anzahl 1 begrenzen kann. Für eine Osteraktion (Osterpostkartenset gratis bei jeder Bestellung) brauchte ich genau das .Ich habe ein kurzes updatesicheres Script geschrieben, bei dem alle Artikel deren Artikelnummer mit "-1x" enden (zB. Artikel-1x) auf die Menge 1 reduziert werden. Funktioniert für meine Zwecke prima.

    Ich finde die Methode einfache Dinge über die Artikelnummer zu lösen sexy, weil wenig Anpassungen nötig sind und die Funktionsweise einfach ist.

    Man könnte noch einen Mindesteinkaufswert für jeden Gratisartikel hinterlegen (zB. Artikel-10.00-1x). Dann muss das Skript nur noch so angepasst werden, dass die Menge erst dann reduziert bzw. der Artikel dann gelöscht wird, wenn die Summe der Gratisartikel die Warenkorbsumme übersteigt. Dann können je nach Einkaufswert auch mehrere Gratisartikel gewählt werden und der Kunde wird angeregt, einen höheren Einkaufswert zu erreichen. Das Löschen von Gratisartikeln muss in dem Fall dann aber auch zB. als Errormassage dem Kunden kommuniziert werden. Das habe ich in meiner einfachen Version erst einmal weggelassen, weil ich es über den Artikeltext kommuniziere.

    Ich habe es nicht in die cart_actions sondern in die application_top_end gepackt, weil ich ein firmeninternes Modul nutze, dass den Warenkorb alternativ über einen separaten Weg füllt. Über die application_top_end ist man auf jeden Fall unabhängig von eventuell anderen installierten Modulen.

    Lange Rede, jetzt die kleine updatesichere Anpassung:

    Erzeuge unter /includes/extra/application_top/application_top_end/ die Datei p3e_1x_products.php mit folgendem Inhalt:
    Code: PHP  [Auswählen]
    <?php
    /*
       /includes/extra/application_top/application_top_end/p3e_1x_products.php                                        
       Author: p3e   13.03.2021                                            
       Version: 1.0
       Usage: Article numbers ending with "-1x" (e.g. article-1x) are reduced to a single quantity in the shopping basket.
    */

    if (isset ($_SESSION['cart'])) {
            $products = $_SESSION['cart']->get_products();
          $sizeof_products = sizeof($products);
              for ($i = 0, $n = $sizeof_products; $i < $n; $i++) {
            if (substr($products[$i]['model'],-3)=='-1x' && (int)$products[$i]['qty'] != 1) {
                            $_SESSION['cart']->add_cart((int)$products[$i]['id'], 1, '', false);
            }
          }
    }
     

    Alle Artikel, die in der Artikelnummer mit "-1x" enden, können dann nur einmal im Warenkorb platziert werden. Es können beliebig viele Artikel mit dieser Eigenschaft angelegt werden.

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

    RobtheTop

    • Schreiberling
    • Beiträge: 332
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #1 am: 14. März 2021, 13:26:04
    Hi.
    Super Sache.
    Danke dafür, aber ich habe noch eine Frage.
    Benötige ich für dieses Script noch ein zusätzliches Modul oder ist es so an sich schon lauffähig?
    Ich Frage deshalb, weil mich interessiert, ob, wenn ich einen Gratisartikel anbiete, dieser ohne Weiteres direkt und ohne überhaupt ein Produkt zu "kaufen" in den Warenkorb gelegt werden kann.

    Oder kann jemand auch nur einfach so, eben nur diesen einen kostenlosen Artikel kaufen?

    Ok, ziemlich blöd formuliert alles, aber ich hoffe, du verstehst mich  :lol:
    Danke dir

    p3e

    • Experte
    • Beiträge: 2.396
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #2 am: 14. März 2021, 13:35:58
    Du kannst ja einen Mindestbestellwert von einem Cent oder mehr festlegen. Dann muss der Kunde auf jeden Fall was dazu bestellen. Ansonsten benötigt man kein zusätzliches Modul.

    RobtheTop

    • Schreiberling
    • Beiträge: 332
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #3 am: 14. März 2021, 18:02:51
    OK. Das ist perfekt.
    Wo legt man das Fest?
    Direkt in deinem Code oder im Shop?
    Kann es gerade nicht testen, bin nicht am Rechner.
    Danke dir

    p3e

    • Experte
    • Beiträge: 2.396
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #4 am: 14. März 2021, 18:29:05
    Die Mindestbestellmenge kannst Du im Shop für jede Kundengruppe getrennt einstellen:
    Admin -> Kunden -> Kundengruppen -> (Kundengruppe auswählen) -> bearbeiten -> Mindestbestellwert

    awids

    • Experte
    • Beiträge: 3.785
    • Geschlecht:
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #5 am: 14. März 2021, 18:55:17
    Deine Anmerkungen zum Mindestbestellwert und Mindestbestellwert/Kundengruppe setzen voraus, dass der Anwender das nötige Know-How besitzt, die Abfrage dahingehend umzustricken.  ;-)

    p3e

    • Experte
    • Beiträge: 2.396
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #6 am: 14. März 2021, 19:21:18
    Was muss denn da umgestrickt werden? Den Mindestbestellwert kann der Shop doch von Haus aus, wenn ich mich nicht irre.

    p3e

    • Experte
    • Beiträge: 2.396
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #7 am: 14. März 2021, 19:31:27
    Habe es gerade im Demoshop getestet. Den Mindestbestellwert kann man wie oben beschrieben im Shop einstellen.

    Wenn ich RobtheTop richtig verstehe, geht es ihm darum, dass er vermeiden will, dass ein Kunde ausschließlich den Gratisartikel bestellt. Oder habe ich was falsch verstanden?

    awids

    • Experte
    • Beiträge: 3.785
    • Geschlecht:
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #8 am: 14. März 2021, 19:36:28
    Nee, dann hab ich das beim groben Überfliegen eures Dialoges falsch verstanden.  :flee-mrgreen:
    Bin jetzt davon ausgegangen, dass gemeint war, den Mindestbestellwert direkt im Script mit dem Gratis-Artikel zu verknüpfen.

    RobtheTop

    • Schreiberling
    • Beiträge: 332
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #9 am: 14. März 2021, 21:32:28
    Genau, mir ging es darum, dass ein Kunde nicht ausschließlich den Gratisartikel bestellen kann, sondern mindestens 1 Artikel im Warenkorb hat.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #10 am: 14. März 2021, 22:41:29
    Hat es einen bestimmten Grund weshalb man die Artikelnummer auf "-1x" prüfen muss, reicht als Prüfkriterium für einen Gratisartikel der Preis nicht?
    Code: PHP  [Auswählen]
    <?php

    if (isset ($_SESSION['cart'])) {
            $products = $_SESSION['cart']->get_products();
          $sizeof_products = sizeof($products);
              for ($i = 0, $n = $sizeof_products; $i < $n; $i++) {
            if ($products[$i]['price'] == 0 && (int)$products[$i]['qty'] != 1) {
                            $_SESSION['cart']->add_cart((int)$products[$i]['id'], 1, '', false);
            }
          }
    }

    Gruss
    Hanspeter

    p3e

    • Experte
    • Beiträge: 2.396
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #11 am: 14. März 2021, 23:21:15
    Die Version im ersten Post macht durchaus Sinn. Ich habe noch andere Artikel im Sortiment, die gratis sind aber nicht auf einen Artikel pro Warenkorb beschränkt werden sollen.
    Das sind zum einen Verkaufshilfen für Händler, zum anderen sind das Artikel in Bundle-Produkten, die es kostenlos dazu gibt.
    In beiden Fällen würde Deine Änderung dazu führen, dass diese Produkte nur noch einmal pro Einkauf hinzugefügt werden könnten.

    Ein zweiter Grund ist, dass ich ein weiteres Modul in Gebrauch habe, bei dem der Kunde abhängig vom Warenwert, Gratisartikel in den Warenkorb legen darf (zB. ab 20 € einen Radiergummi, ab 40 € einen Stift). Hier soll der Kunde auch mehrmals den selben Artikel wählen können (in dem Beispiel bei 40 € Einkaufswert entweder zwei Radiergummis oder einen Stift). Deine Änderung würde das Modul dann stören.

    Deshalb habe ich die -1x gewählt.

    Das Modul mit dem Gratisartiken abhängig vom Warenwert, mache ich eventuell auch noch updatefähig und stelle es dann zur Verfügung. Da muss ich aber schauen, wie ich da Zeit habe.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #12 am: 15. März 2021, 00:24:51
    Also dann fasse ich das mal zusammen, das Modul, ich würde es zwar eher als Feature bezeichnen, aber sei's drum, beschränkt die Menge bestimmter Artikel, nämlich die welche in der Artikelnummer das Suffix "-1x" haben, auf eins, dabei ist der Preis unerheblich, sie können, müssen aber nicht gratis sein. Meine Meinung, ich hätte für dieses "Modul" einen anderen Titel gewählt.

    Gruss
    Hanspeter

    p3e

    • Experte
    • Beiträge: 2.396
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #13 am: 15. März 2021, 00:55:14
    Hanspeter, Ist dir irgendwas über die Leber gelaufen oder fühlst du dich angegriffen, weil ich mit deinem "Verbesserungsvorschlag" nichts anfangen kann? Du hast mich gefragt wieso und ich habe dir geantwortet. Weiter nichts. Sollte kein Grund für dich sein irgendwas ins lächerliche zu ziehen.

    Das ist Open-Source. Du kannst es gerne so abändern wie die willst. Das ist mitten aus dem laufendem Betrieb entstanden. Ich brauchte das für rein marktwirtschaftliche Zwecke, ich habe es bereits in Gebrauch und es erfüllt seinen Zweck prima. Der Name sagt genau das aus wozu ich es nutze. Ich wollte es einfach anderen modified Shopbetreibern zur Verfügung stellen, auch wenn es für dich zu klein zu sein scheint, Auf so ein Verhalten habe ich keine Lust und darauf einzugehen auch nicht wirklich Zeit. Ich habe meine Zeit im Forum schon ziemlich reduziert. Vielleicht sollte ich das noch weiter reduzieren.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Menge von Gratisartikel im Warenkorb reduzieren
    Antwort #14 am: 15. März 2021, 02:02:32
    Mir ist überhaupt nichts über die Leber gelaufen, du veröffentlichst hier ein Modul mit dem Titel "Menge von Gratisartikel im Warenkorb reduzieren", also gehe ich davon aus das es unter diesem Titel für die Community von Nutzen ist, dann schaue ich mir den Code an und stelle aber fest, dass es unter anderem für diesen Zweck gedacht ist, deshalb meine Frage in Antwort #10, lese deine Antwort #11 und fasse sie in Antwort #12 zusammen, dabei erlaube ich mir das Modul mitsamt der Antwort auf meine Frage kritisch zu kommentieren. Wenn ich dich dadurch beleidigt habe, dann tut mir das leid und entschuldige mich dafür. Aber Hand aufs Herz, ein Modul besteht doch üblicherweise aus mehr als sechs Zeilen Code, als Feature kann man das schon posten aber als Modul, also ich weiss nicht, zumal du auch noch Experte bist.

    Gruss
    Hanspeter
    Shop Hosting
    32 Antworten
    8843 Aufrufe
    24. Februar 2024, 18:25:08 von dennis234234
    1 Antworten
    1213 Aufrufe
    10. Juni 2020, 10:15:49 von Timm
    0 Antworten
    2318 Aufrufe
    29. Oktober 2014, 14:09:31 von dmun