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: Lieferzeit im Bestätigungsmail ($PRODUCTS_QUANTITY ist String und nicht Integer)

    load4all

    • Neu im Forum
    • Beiträge: 32
    Hallo!

    Bei mir im Shop ist die Lieferzeit immer in Abhängigkeit der Anzahl an lagernden Artikel angegeben. Im Bestätigungsmail kam bisher allerdings immer nur die standardmässige Lieferzeit (Lieferzeit: 3-4 Tage). Jetzt wollte ich das heute abend abändern, allerdings komm ich jetzt nicht weiter...

    Meine betroffene Stelle im "order_mail.html" sieht folgendermassen aus:

    Code: PHP  [Auswählen]
              <td width="20" style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">{$order_values.PRODUCTS_QTY}</div></td>
              <td width="20" style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">x</div></td>
              <td style="border-right: 2px solid; border-bottom: 2px solid; border-color: #ffffff;"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>{$order_values.PRODUCTS_NAME}</strong>{if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<br />Lieferzeit:

                            {if $PRODUCTS_QUANTITY <= '0'}
                <p class="shippingtime"> momentan nicht erhältich<br/></p> {/if}
                            {if $PRODUCTS_QUANTITY <= '99' && $PRODUCTS_QUANTITY>='1'}
                <p class="shippingtime"> 2-4 Tage<br/></p> {/if}
                            {if $PRODUCTS_QUANTITY>='100'}
                <p class="shippingtime"> ca. 14 Tage<br/></p> {/if}
    Und im Mail sieht das dann folgendermassen aus:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Ich hoffe ihr könnt mir helfen. Irgendwie wird die Stückzahl nicht richtig ausgelesen. Die eingestellte Stückzahl ist momentan 4.

    PS: Falls ich einen Artikel nicht lagernd habe aber bestellt, gebe ich einfach einen Wert über 100 an, deshalb diese Bedingung. Auf der "product_info" Seite funktioniert das ganz prächtig so...

    EDIT: Danke für's Bild einfügen, hab erst im Nachhinein gesehen, dass ich im Forum selbst Bilder hochladen kann.



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

    flocky84

    • Fördermitglied
    • Beiträge: 250
    • Geschlecht:
    Versuch es mal so.

    tausche

    Code: PHP  [Auswählen]
    {if $PRODUCTS_QUANTITY <= '0'}
      <p class="shippingtime"> momentan nicht erhältich<br/></p> {/if}
      {if $PRODUCTS_QUANTITY <= '99' && $PRODUCTS_QUANTITY>='1'}
      <p class="shippingtime"> 2-4 Tage<br/></p> {/if}
      {if $PRODUCTS_QUANTITY>='100'}
      <p class="shippingtime"> ca. 14 Tage<br/></p> {/if}
    gegen

    Code: PHP  [Auswählen]
    {if $PRODUCTS_QUANTITY <= '0'}
      <p class="shippingtime"> momentan nicht erhältich<br/></p> {/if}
      {if $PRODUCTS_QUANTITY <= '99' and $PRODUCTS_QUANTITY>='1'}
      <p class="shippingtime"> 2-4 Tage<br/></p> {/if}
      {if $PRODUCTS_QUANTITY>='100'}
      <p class="shippingtime"> ca. 14 Tage<br/></p> {/if}
    Vielleicht klappt es ja so.
    Da wurden jetzt die "&&" gegen "and" ausgetauscht.

    LG Flo

    load4all

    • Neu im Forum
    • Beiträge: 32
    Danke für deinen Beitrag. Leider wird immer noch dasselbe angezeigt. :-/

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Das Problem an der Stelle ist $PRODUCTS_QUANTITY.

    Das ist im Template ein Wort (String) und keine Zahl. Deshalb kann man auch eine mathematischen Operationen darauf anwenden.

    Lösung: vor Übergabe der Variable $PRODUCTS_QUANTITY ans Template müsste diese mit (int)

    Code: PHP  [Auswählen]
    $smarty->assign('PRODUCTS_QUANTITY', (int)$product_info['products_quantity']);
     
    gecasted werden.
    Leider weiß ich nur gerade nicht an welchen Stellen. :(
    (reicht es in "/includes/modules/product_info.php" und "/print_product_info.php")?

    P.S.: Thema Verschoben nach "Bugs oder Funktionsfehler".

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Ich finde das Thema zwar nicht mehr, aber mir war so, als hätte ich das intern auch schonmal angesprochen, dass die Lieferzeit Angabe in den Bestellbestätigungs E-Mails fehlt. :-?

    Grüße

    Torsten

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Mit der Lieferzeit hat das nichts zu tun, hier geht es um das Rechnen mit der Liefermenge im Template.

    jonnyB

    • Fördermitglied
    • Beiträge: 519
    • Geschlecht:
    Ich denke, daß die Variable {$PRODUCTS_QUANTITY} hier garnicht zur Verfügung steht.
    Um diese in der order_mail überhaupt nutzen zu können, sollte diese in der send_order.php definiert werden.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Mit der Lieferzeit hat das nichts zu tun, hier geht es um das Rechnen mit der Liefermenge im Template.

    Upps, da hab ich das Thema wohl zu schnell überflogen. :oops:

    Grüße

    Torsten

    load4all

    • Neu im Forum
    • Beiträge: 32
    Bin immer noch am Ausprobieren, eine konkrete Lösung habe ich noch nicht.

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Ohh, alle sind weit vom Thema abgekommen.

    Es geht hier um die verfügbare Anzahl der Attribute des Produktes welches in den Warenkorb kommt, um daraus die Lieferbarkeit/Lieferzeit zu berechnen.

    Ich habe mal dafür mal was geschrieben, falls Du wirklich Interesse haben solltest kannst Du Dich bei mir melden, die Version unterstützt auch mehrere Attribute pro Produkt.

    Gruß

    h-h-h

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    @h-h-h: Nein, hier geht es darum, dass man in der Bestellemail nicht mit der Menge $PRODUCTS_QUANTITY rechnen kann, weil es keine Zahl ist!

    ThorstenK

    • Fördermitglied
    • Beiträge: 170
    • Geschlecht:
    So wie DokuMan sehe ich das auch. Ein Problem das ich sehe: Ist das denn noch die selbe Menge wie im Warenkorb? Denn nach Absenden der Bestellung wird ja der Bestand um die bestellte Menge verringert.
    Ergo müsste man denke ich, den Wert von $PRODUCTS_QUANTITY im Warenkorb in eine separate Variable speichern, oder man rechnet mit dem aktuellen Wert von $PRODUCTS_QUANTITY und zieht die bestellte Menge ab.

    Da ich auch schon länger mit dem selben Problem kämpfe, wäre eine Lösung oder ein Tipp wie das zu machen ist echt super.

    Mir würde es beispielsweise im Grunde schon genügen, wenn der Text, der abhängig von $PRODUCTS_QUANTITY, im Warenkorb erzeugt wird 1:1 durchgeschliffen wird bis zur Bestellbestätigungsmail. Also "Nicht auf Lager - Lieferzeit x Tage", "sofort verfügbar" etc.

    Grüße
    Thorsten

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Also mit meiner Erweiterung funktioniert es auch bei dem Produktbestand selbst, nur zusätzlich, falls Attribute vorhanden sind, wird aus deren Bestand die Lieferzeit berechnet.

    Gruß

    h-h-h

    15 Antworten
    1270 Aufrufe
    07. September 2022, 09:47:39 von derheiko
    2 Antworten
    2765 Aufrufe
    15. März 2015, 20:32:51 von toppi