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: Verbesserungen/Korrekturen der Coupon-Implementation im Shop zur Diskussion

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Verbesserungen/Korrekturen der Coupon-Implementation in modified Shop-Version 2.0.7.2
    ------------------------------------------------------------------------------------------------
    Für das Thema bitte auch Neues Standard-Template "tpl_modified_nova" zur Vorschau | Antwort #113 und die zwei folgenden Posts
    und das Ticket #2346 und meine Kommentare dazu beachten.

    Bevor ich die Punkte und Zusammenhänge in ein Ticket schreibe wäre es schön, wenn jemand (oder mehrere :träum:) die von mir unten aufgeführten Punkte verifizieren und ggfls. bestätigen oder widerlegen würde.

    Da die Foren-Software Code-tags innerhalb von Listenpunkten zerschießt habe ich [tt] benutzt und hoffe es ist trotzdem leicht lesbar.
    • Was ist coupon_type  'G' ?
      Kommt in /admin/coupon_admin.php  in einer DB-Query vor
      und in /includes/modules/order_total/ot_coupon.php  wird es in einer if-Clause abgefragt.
      Kann das weg ?

    • Der Text in MODULE_ORDER_TOTAL_COUPON_SPECIAL_PRICES in popup_coupon_help.php  für MODULE_ORDER_TOTAL_COUPON_SPECIAL_PRICES == 'false' lautet immer gleich
       (für german: 'Ihr Coupon kann nicht auf Sonderangebote angewendet werden.').
       Das ist jedoch nicht korrekt, denn das gilt nur dann, wenn der Coupon-Wert in Prozent angegeben ist.
       Hat der Wert einen Festwert (coupon_type == 'F') wird der Coupon nämlich immer auf Sonderangebote angewendet, unabhängig von der Einstellung im OT-Modul.

      Entweder müsste man letztgenanntes ändern oder man müsste
      • den augegebenen Popup-Help-Text abhängig davon machen, ob es sich um einen Prozent-Wert handelt
        und
      • den Text MODULE_ORDER_TOTAL_COUPON_SPECIAL_PRICES_DESC für das OT-Modul 'ot_coupon' anpassen.
        z.B. anstatt
        'Rabatt auf Sonderangebote erlauben'
        das:
        'Rabatt auf Sonderangebote erlauben<br />("Nein" gilt nur bei %-Werten für den Coupon, Fix-Betrag-Werte werden immer abgezogen)'

    • In /includes/modules/order_total/ot_coupon.php  wird an 3 Stellen in einer for-Schleife sizeof()  für jeden Loop benutzt.
      2 x in
      for ($i = 0; $i < sizeof($order->products); $i ++) {

      und 1 x in
      for ($i = 0; $i < sizeof($products); $i ++) {

      Das sollte man ändern in
      for ($i = 0, $n = sizeof($VARIABLE); $i < $n; $i ++) {:

      Außerdem könnte man den Code versuchen umzustrukturieren, um einen Teil der Loops zu vermeiden.
      Ob das sicher geht habe ich nicht zu Ende geprüft, mir scheint jedoch, daß Loops redundant durchlaufen werden
      und man je zwei der Loops durch $order->products  zu einem einzigen zusammenfassen könnte.

      Insbesondere wird der for-Loop vor
      if (MODULE_ORDER_TOTAL_COUPON_SPECIAL_PRICES == 'false'

      auch ausgeführt wenn die zitierte if-Clause zutrifft, und dann innerhalb derselben ein zweites mal.

    • Abfragen wie
      if ($coupon_array['restrict_to_products'] || $coupon_array['restrict_to_categories']) {

      oder
      $coupon_array['restrict_to_products'] && in_array(xtc_get_prid($order->products[$i]['id']), $pr_ids) ? true : false;

      sollten vermieden werden und statt dessen auf leeren String geprüft werden.
      if($coupon_array['restrict_to_products'] != '')

      Es handelt sich ja um das Ergebnis einer DB-Query und das Ergebis ist ein String, gefüllt oder leer.
      Die reine Boolean-Abfrage könnte in manchen PHP-Versionen zu Problemen führen und ist auch semantisch nicht korrekt..


     Gruß,
    noRiddle

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

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Mmh, keiner der umtriebigen Experten am Start ?
    ...oder jemand anderes, der Plan hat...

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Ticket #2553

    noRiddle

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.306
    • Geschlecht:
    Komme erst jetzt dazu dir darauf zu antworten.

    Ich habde das Ticket erstmal verschoben, da hier sehr viele Routinen dran hängen.

    zu deiner Frage:

    [...]
    • Was ist coupon_type  'G' ?
      [...]
    [...]

    Das sind Gutscheine. ;-)

    Gruss Gerhard

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Mmh, da die Unzulänglichkeiten sich auf Kunden auswirken hielt ich das Thema für sehr wichtig.
    Da man im WK nicht mehr sieht, wenn man dort Sonderangebote hat, dürfte eine Meldung, die sagt der Coupon wurde eingelöst, sehr dubios auf den Kunden wirken, wenn er gar nicht eingelöst wurde.

    Der nicht korrekte Text
    'Ihr Coupon kann nicht auf Sonderangebote angewendet werden.'
    könnte schnell angepasst werden.

    Auch der Text für MODULE_ORDER_TOTAL_COUPON_SPECIAL_PRICES_DESC  im OT-Modul könnte eigentlich schnell korrigiert werden.

    Ich kann nicht sehen, daß Anpassungen diesbezüglich (und auch die sizeof()  in den Loops) ein Problem darstellen, da die Fixes kaum Zeit in Anspruch nehmen würden.
    Eine Auswirkung auf "Routinen" kann ich auch nicht sehen, was allerdings an mir liegen kann.

    Ticket #2509, welches auch eine fehlerhafte Meldung Coupons betreffend betrifft, wurde ja dankenswerterweise bereits gefixt.

    Gruß,
    noRiddle

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.306
    • Geschlecht:
    Die Sprachdateien habe ich in r15443 gemacht. Änderungen an den Loops mache ich jetzt nicht mehr für diese Version.

    Gruss Gerhard

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Da das zugehörige Ticket auf "fixed" gesetzt ist, jedoch nicht alles gefixt wurde, wie soll der Rest dokumentiert bleiben, damit er nicht untergeht ?

    Gruß,
    noRiddle
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
               
    anything