Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 Member since: August 2019 edited October 14

Shopwre 5.6.8

Hallo Forengemeinde,

bei uns werden Lagerbestände angezeigt.

Bestellt ein Kunde nun von einem Artikel 2 Stück, von dem 1 Stück lagernd ist, so wird er im Bestellprozess auf den Minderbestand hingewiesen.

In der sOrder wird aber sofort lieferbar angezeigt. Was muss ich ändern damit in so einem Fall die Lieferzeit für nicht lagernde Artikel angezeigt wird ?

Eine Angabe der Lieferzeit genügt, da wir keine Teillieferungen machen.

ielen Dank für Ihre Bestellung bei   {config name=shopName} (Nummer: {$sOrderNumber}) am {$sOrderDay} um {$sOrderTime}.
Informationen zu Ihrer Bestellung:

Pos. Art.Nr.              Lieferbarkeit                Menge         Preis        Summe
{foreach item=details key=position from=$sOrderDetails}
{$position+1|fill:4} {$details.ordernumber|fill:20} {if $details.modus == '0'} {if isset($details.active)&&!$details.active} bitte Lieferzeit anfragen               {elseif $details.sReleaseDate && $details.sReleaseDate|date_format:"%Y%m%d" > $smarty.now|date_format:"%Y%m%d"} lieferbar ab: {$details.sReleaseDate|date:'date_long'} {elseif $details.esd} als Sofortdownload verfügbar {elseif $details.instock > 0} sofort lieferbar             {elseif $details.shippingtime} lieferbar in {$details.shippingtime} Werktagen    {else} bitte Lieferzeit anfragen      {/if} {else}                                {/if} {$details.quantity|fill:6} {$details.price|padding:8} EUR {$details.amount|padding:8} EUR
{$details.articlename|wordwrap:49|indent:5}
{/foreach}

 

 

Answers

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 Member since: August 2019

    Hat niemand eine Idee wie man das lösen kann ?

    Es ist ja nicht schön wenn 1 Stück lagend ist, der Kunde 500 bestellt und in der Bestellbestätigung "sofort lieferbar" steht, obwohl 499 Stück eben nicht " sofort lieferbar" sind.

    In diesem Fall wäre es besser wenn die Lieferzeit die für nicht lagernde Artikel angegeben ist angezeigt wird.

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 Member since: August 2019

    Ich hoffe einer unserer Spezialisten hier kann mir helfen Halo

  • NextMikeNextMike MemberComments: 2805 Received thanks: 445 Member since: December 2014

    Du kannst gerne einen Spezialisten bezahlen. Vielleicht löst er das Problem.

    Ansonsten habe ich kurz gesehen, dass der Bestand (instock) bei den Variablen vorhanden ist. Die Bestellmenge ist auch bekannt. Bastel mal was daraus.

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 Member since: August 2019

    größer 0 = sofort lieferbar ist ja nicht korrekt wenn die Bestellmenge höher ist als der Bestand. Was für Variablen könnten denn da nützlich sein Mike ?                                        

  • NextMikeNextMike MemberComments: 2805 Received thanks: 445 Member since: December 2014

    Wolltest Du nicht den Fall abbilden wenn Bestellmenge > Bestand?

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 Member since: August 2019

    Wolltest Du nicht den Fall abbilden wenn Bestellmenge > Bestand?

    ja

  • NextMikeNextMike MemberComments: 2805 Received thanks: 445 Member since: December 2014

    ja, dann ist es $details.quantity und $details.instock

    Dies müsstest Du als Bedingung einsetzen.

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 edited October 19 Member since: August 2019
    Komme ich der Lösung so näher ? Wäre prima wenn jemand der sich damit auskennt die Abfrage korrekt darstellt
    
    
    
    <code>{elseif $details.instock and $details.quantity > = $details.instock } sofort lieferbar 

     

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 edited October 20 Member since: August 2019

    Ist hier jemand der bereit ist mir zu helfen bitte ? Bekomme das alleine nicht hin.

  • MrAleMrAle MemberComments: 191 Received thanks: 44 edited October 20 Member since: April 2019

    Ist doch schon die Lösung? Sollte bereits so funktionieren. 

    Kannst das ja mal im Standard testen - vermutlich greift irgend eine andere Kondition.

    Musst das elseif instock > 0 rausnehmen - sonst greift das immer.

    Gruß Alex

  • NextMikeNextMike MemberComments: 2805 Received thanks: 445 Member since: December 2014

    {if Bedingung} heißt "falls" und {elseif Bedingung} heißt "ansonsten falls", {else} heißt "ansonsten"

    Damit musst Du die kompletten Bedingungen lesen und ggf. anpassen. Mit {/if} schließen. Darüber nachzudenken, das nimmt Dir niemend ab.

    {if Bedingung} Tu das

    {elseif Bedingung}  tu jenes

    {else} tu noch was anderes

     {/if}

    Bedingung kann sein: x > y

    https://www.smarty.net/docsv2/de/language.function.if.tpl 

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 edited October 20 Member since: August 2019

     

    Zunächst Danke

    Meine Abfrage funktioniert nicht. Ist das "and" falsch ?

    {elseif $details.instock and $details.quantity > = $details.instock } sofort lieferbar {/if}
    {elseif $details.instock > = $details.quantity} sofort lieferbar {/if}

    funktioniert auch nicht

  • NextMikeNextMike MemberComments: 2805 Received thanks: 445 Member since: December 2014

    and ist nicht generell falsch. Es kommt darauf an was Du ausdrücken möchtest. Ganz sicher scheitert es schon an dem Abstand zwischen > und =

    Mal davon ab, wolltest Du nicht den Fall abbilden wo die Zeile nicht sofort lieferbar ist?

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 edited October 20 Member since: August 2019

    Nein, nicht sofort lieferbar ergibt sich ja aus den anderen Abfragen, kopiere das nochmal hierher.

    Pos. Art.Nr.              Lieferbarkeit                Menge         Preis        Summe
    {foreach item=details key=position from=$sOrderDetails}
    {$position+1|fill:4} {$details.ordernumber|fill:20} {if $details.modus == '0'} {if isset($details.active)&&!$details.active} bitte Lieferzeit anfragen               {elseif $details.sReleaseDate && $details.sReleaseDate|date_format:"%Y%m%d" > $smarty.now|date_format:"%Y%m%d"} lieferbar ab: {$details.sReleaseDate|date:'date_long'} {elseif $details.esd} als Sofortdownload verfügbar {elseif $details.instock > 0} sofort lieferbar             {elseif $details.shippingtime} lieferbar in {$details.shippingtime} Werktagen    {else} bitte Lieferzeit anfragen      {/if} {else}                                {/if} {$details.quantity|fill:6} {$details.price|padding:8} EUR {$details.amount|padding:8} EUR
    {$details.articlename|wordwrap:49|indent:5}
    {/foreach}

    Ich möchte nur die Abfrage für die sofort lieferbaren Artikel anpassen. Deswegen beginnt die Abfrage ja mit elseif und nicht mit if. Du hast natürlich recht >= muss ohne Leerzeichen sein.

    Teste jetzt mal das.

    {elseif $details.instock >= $details.quantity} sofort lieferbar

     

  • Thomas_bei_DunkenThomas_bei_Dunken MemberComments: 56 Received thanks: 2 Member since: August 2019

    So funktioniert es, schönen Dank nochmal an euch zwei.

    Mich wundert das es so nicht als Standard angelegt ist, aber was solls.

Sign In or Register to comment.