E-Mail Vorlagen - sArticle.active = 1 obwohl Artikel inaktiv

Hi zusammen,

wir haben ein Problem mit den E-Mail Vorlagen (konkret: sARTICLESTOCK) und den dort nutzbaren Variablen. In der foreach Schleife des Jobs befindet sich eine if-Abfrage, da nur Artikel ausgegeben werden sollen, die auch aktiv sind. Die Vorlage sieht also wie folgt aus:

{foreach from=$sJob.articles item=sArticle key=key}
        	{if $sArticle.active == 1}
                 <tr style="padding: 3px 0;">
                    <td style="border-bottom:1px solid #cccccc; padding: 5px;">{$position} </td>
                    <td style="border-bottom:1px solid #cccccc; padding: 5px;">{$sArticle.ordernumber} </td>
                    <td style="border-bottom:1px solid #cccccc; padding: 5px;">{$sArticle.name} </td>
                    <td style="border-bottom:1px solid #cccccc; padding: 5px;">{$sArticle.instock} </td>
                </tr>
                {assign var=position value=$position+1}
            {/if}   
        {/foreach}

Das Problem ist nun aber, dass Artikel zwar inaktiv sind und auch beide Tabellen in der Datenbank (s_articles und s_articles_details) für den Artikel in der Spalte active den Wert 0 haben, der Artikel aber trotzdem ausgegeben wird. Wenn ich mir die Beispielvariablen anschaue, wird für den Artikel true zurückgegeben, obwohl eben die Datenbank false in beiden Tabellen hinterlegt hat.

{$sJob.articles.3008.active}: 1

Lässt sich das irgendwie erklären oder woher nimmt der Cronjob den Aktiv-Wert für die Artikel?
Danke im Voraus!

LG

Kann jemand helfen?
Wir kommen hier nicht weiter.

Es gibt in der Datenbank zwei active-Werte.

s_articles_details.active
s_articles.active

Ein Produkt hat immer beide Werte und wenn es komplett inaktiv ist, müssten auch beide Werte auf „0“ stehen.

Danke für die Antwort. Das Problem ist ja, dass die beiden Werte in der Datenbank auf 0 standen und der Artikel trotzdem ausgegeben wurde. Jetzt haben wir den Artikel erstmal gelöscht.

Hi winklerswurst,

das ist doch ein Wert vom Typ bool, glaube dein if-statement ist einfach falsch. Versuchs mal mit

{if $sArticle.active}

oder noch besser:

{if (isset($sArticle.active) && $sArticle.active)}

LG Phil