Fehlermeldung ab Versandkosten Variablen bei Produktexport

Hallo Gemeinde,

wer kann mir bitte helfen, bzw. sagen wo der Fehler liegt. Ich muss gerade einen Produktexport für unser Partnerprogramm machen.

Siehe hier:

Kopfzeile

{strip}
Deeplink{#S#}
Produkt-Titel{#S#}
Produktbeschreibung{#S#}
Produktbeschreibung-lang{#S#}
Bruttopreis{#S#}
Nettopreis{#S#}
Anbieter-Artikelnummer{#S#}
Hersteller{#S#}
Produktbild-URL{#S#}
Vorschaubild-URL{#S#}
Produktkategorie{#S#}
Lieferzeit{#S#}
Versandkosten-Vorkasse{#S#}
Versandkosten-Sofortbanking{#S#}
Versandkosten-Paypal{#S#}
Versandkosten-Barzahlung{#S#}
Versandkosten-Kreditkarte{#S#}
Grundpreis{#S#}
Inhalt{#S#}
{/strip}{#L#}

 

Template

{strip}
{$sArticle.articleID|link:$sArticle.name|escape}{#S#}
{$sArticle.name}{#S#}
{$sArticle.description}{#S#}
{$sArticle.description_long|strip_tags|strip|trim|truncate:900:"…":true|html_entity_decode|escape}{#S#}
{$sArticle.price}{#S#}
{$sArticle.netprice}{#S#}
{$sArticle.ordernumber}{#S#}
{$sArticle.supplier}{#S#}
{$sArticle.image|image:1}{#S#}
{$sArticle.image|image:0}{#S#}
{$sArticle.articleID|category:">"|escape}{#S#}
{if $sArticle.instock}1-3 Werktage{elseif $sArticle.shippingtime}{$sArticle.shippingtime} Werktage{else}5-10 Werktage{/if}{#S#}
{$sArticle|@shippingcost:„prepayment“:„de“:„DHL Paket Deutschland“|escape:„number“}{#S#}
{$sArticle|@shippingcost:„sofortbanking“:„de“:„DHL Paket Deutschland“|escape:„number“}{#S#}
{$sArticle|@shippingcost:„paypal“:„de“:„DHL Paket Deutschland“|escape:„number“}{#S#}
{$sArticle|@shippingcost:„barzahlungbeiabholung“:„de“:„DHL Paket Deutschland“|escape:„number“}{#S#}
{$sArticle|@shippingcost:„ipayment“:„de“:„DHL Paket Deutschland“|escape:„number“}{#S#}

{if $sArticle.referenceunit && $sArticle.purchaseunit}
{assign var=„sArticleReferenceprice“ value=$sArticle.price/$sArticle.purchaseunit*$sArticle.referenceunit}
{$sArticle.referenceunit} {$sArticle.unit} = {$sArticleReferenceprice|escape:„number“}{#S#}
{$sArticle.purchaseunit} {$sArticle.unit}{#S#}
{else}
{#S#}{#S#}
{/if}
{/strip}{#L#}

 

Wenn die 5 Zeilen bzw. Variablen für die Versandkosten nicht im Exporttemplate sind, funktioniert der Export einwandfrei. Sobald ich 1, 2, 3, 4 oder alle 5 der Versandkosten hinzufüge, kommt eine Fehlermeldung und der Export wird nicht angezeigt.

Habe schon alles im Forum durchforstet, aber entweder ist der Thread 4 Jahre alt oder hat mit dieser Sache hier nicht viel zu tun.

Die Fehlermeldung:

 Deeplink;Produkt-Titel;Produktbeschreibung;Produktbeschreibung-lang;Bruttopreis;Nettopreis;Anbieter-Artikelnummer;Hersteller;Produktbild-URL;Vorschaubild-URL;Produktkategorie;Lieferzeit;Versandkosten-Vorkasse;Versandkosten-Sofortbanking;Versandkosten-Paypal;Versandkosten-Barzahlung;Versandkosten-Kreditkarte;Grundpreis;Inhalt; 
## Ups! Ein Fehler ist aufgetreten!


Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.


### SQLSTATE[42S22]: Column not found: 1054 Unknown column 'gesamtgewicht' in 'where clause' in Zend/Db/Statement/Pdo.php on line 234

### Stack trace:



    "#0 Zend/Db/Statement.php(303): Zend\_Db\_Statement\_Pdo-\>\_execute(Array) #1 Zend/Db/Adapter/Abstract.php(480): Zend\_Db\_Statement-\>execute(Array) #2 Zend/Db/Adapter/Pdo/Abstract.php(238): Zend\_Db\_Adapter\_Abstract-\>query('\n SE...', Array) #3 Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend\_Db\_Adapter\_Pdo\_Abstract-\>query('\n SE...', Array) #4 Zend/Db/Adapter/Abstract.php(756): Enlight\_Components\_Db\_Adapter\_Pdo\_Mysql-\>query('\n SE...', Array) #5 Shopware/Core/sExport.php(1526): Zend\_Db\_Adapter\_Abstract-\>fetchRow('\n SE...') #6 Shopware/Core/sExport.php(1675): sExport-\>sGetPremiumDispatch(Array, 'DHL Paket Deuts...') #7 Shopware/Core/sExport.php(1434): sExport-\>sGetArticlePremiumShippingcosts(Array, Array, Array, 'DHL Paket Deuts...') #8 var/cache/production\_201604081130/templates/export\_20/05/f0/90/05f090ae55031e8cf7bb53ed51d854580516e9e6.string.php(57): sExport-\>sGetArticleShippingcost(Array, 'prepayment', 'de', 'DHL Paket Deuts...') #9 Smarty/sysplugins/smarty\_internal\_templatebase.php(180): content\_57a3305832d061\_56560191(Object(Enlight\_Template\_Default)) #10 Shopware/Core/sExport.php(1182): Smarty\_Internal\_TemplateBase-\>fetch('string:{foreach...', 20) #11 Shopware/Controllers/Backend/Export.php(116): sExport-\>executeExport(Resource id #690) #12 Shopware/Controllers/Backend/Export.php(67): Shopware\_Controllers\_Backend\_Export-\>generateExport('php://output') #13 Enlight/Controller/Action.php(158): Shopware\_Controllers\_Backend\_Export-\>indexAction() #14 Enlight/Controller/Dispatcher/Default.php(523): Enlight\_Controller\_Action-\>dispatch('indexAction') #15 Enlight/Controller/Front.php(226): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #16 Shopware/Kernel.php(153): Enlight\_Controller\_Front-\>dispatch() #17 vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #18 Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #19 vendor/symfony/http-kernel/HttpCache/HttpCache.php(263): Shopware\Components\HttpCache\AppCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true) #20 Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>pass(Object(Symfony\Component\HttpFoundation\Request), true) #21 shopware.php(101): Shopware\Components\HttpCache\AppCache-\>handle(Object(Symfony\Component\HttpFoundation\Request)) #22 {main}"



 

 

 

Woran kann es liegen? Bin schon am verzweifeln. Alternativ würde es auch ausreichen, eine einzige Zeile für die Versandkosten als Standard hinzuzufügen. Aber selbst das schlägt fehl.

 

Mir ist noch folgendes eingefallen.

Wir haben unsere Versandkosten nach Gewicht gestaffelt.

Wir haben 6 Versandarten angelegt:

Paketversand Deutschland

Paketversand EU

Paketversand ausserhalb der EU

Sperrgutversand Deutschland

Sperrgutversand EU

Selbstabholung

Warum werden die Versandkosten mit den Zahlarten in Verbindung gebracht?

Bzw. die Variable enthält ja die Zahlart und dann die Versandart zugleich.

 

 

Viele Grüße

Matthias

 

Was mich auch gewundert hat ist, dass in der Doku zum Produktexport anlegen bei den Variablen gar nichts zu den Versandkosten aufgeführt ist. Ist das evtl. irgendwo anders zu finden, wie man die Variablen bei Produktexporten anlegen muss?

 

Viele Grüße

Matthias

 

Ich möchte mal die ganze Sache verstehen können um den Fehler zu beheben. Die Variable sagt mir nicht viel, daher wäre es schön wenn mir jemand das ein oder andere Erläutern könnte. Da ich auch beim nächsten SW5 Projekt die Produktexporte benötige, muss ich das tatsächlich zum Laufen bringen, sonst wirds ein richtiges Problem.

Also die Fehlermeldung lautet ja:

 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'gesamtgewicht' in 'where clause' in Zend/Db/Statement/Pdo.php on line 234

Anscheinend regt sich das System am Punkt Gesamtgewicht auf. Könnte es möglicherweise damit zusammen hängen, dass ich bei den Artikeln die Gewichte nicht mit 3 Dezimalstellen eingegeben habe? Also wie z.B. bei den Versandarten bzw. Kosten?

Ich habe bei den meisten Produkten das Gewicht 0,01 eingegeben. Müsste das evtl. 0,010 heissen?

Die Versandarten funktionieren aber alle bei den Bestellungen.

Ich gehe mal davon aus, dass ich für den Produktexport nur die Versandkosten innerhalb Deutschlands brauche. Das sind bei mir 2 Versandarten:

Hier ein paar Screenshots der Versandarten. Dort habe ich nur die aktuellsten Versandarten aktiv geschaltet. Die anderen sind nur zum Testen gewesen.

 

 

Hat sich dort vielleicht ein Fehler eingeschlichen, der das Problem bei der Versandkostenberechnung im Produktexport hervorruft?

 

Ich verstehe auch die Variable nicht ganz. In der Doku steht dass mit @shippingcost die Versandkosten des jeweiligen Artikel berechnet werden.

Wäre da nicht die folgende Variable sinnvoll bzw. würde ausreichen?

{$sArticle.articleID|@shippingcost}

In den Musterfeeds steht immer diese Variable drin, welche bei mir den Fehler auslöst:

 {$sArticle|@shippingcost:"prepayment":"de":"Deutsche Post Standard"|escape:"number"}

Warum steht da die Zahlart und DE mit drin? Was hat das escape number zu bedeuten?

 

Kann der Fehler vielleicht daher rühren, dass ich einen Englischen Sprachshop angelegt habe, der aber noch komplett leer ist. Dort ist noch kein Artikel angelegt und nur die Seite Home verfügbar. In den Einstellungen zum Produktexport habe ich angegeben, dass die englischen Kategorien gesperrt sind.

Wenn ich bei den Feedeinstellungen bei Kategorie Deutsch wähle, steht nach dem Speichern eine Zahl 3 drin.

 

Hoffentlich könnt Ihr mir aufgrund dieser Angaben einen Tipp geben. Würde mich riesig freuen. :slight_smile:

 

Viele Grüße

Matthias

 

1 Like

Ich denke, der Fehler ist nicht ganz so trivial. Du hast eine eigene Bedingung bei den Versandkosten eingestellt und fragst in den Produktexporten die Versandkosten ab. Allerdings unterstützen die Produktexporte nicht alle eigenen Bedingungen und Berechnungen die das Versandkosten-Modul unterstützt. Hauptgrund dafür ist auch, dass das Versandkostenmodul quasi alles kann. Überprüfe mal in den Grundeinstellungen > Versandkosten deine erweiterte SQL-Abfrage. Dort wird sicherlich auf Gesamtgewicht geprüft.

Hallo,

folgendes ist dort hinterlegt:

Viele Grüße

Matthias

 

Hallo nochmals,

weiss jemand was ich da nun ändern muss? Also in der erweiterten SQL Abfrage?

Viele Grüße

Matthias

 

@Moritz‍

mit deiner Vermutung, die den Fehler auslöst meinst du die Regeln in den Erweiterten Einstellungen der Versandart?

Also die spezielle Gewichtsbegrenzung? Wenn ja, ist die Frage ob ich diese überhaupt brauche. Durch meine Versandkostenstaffelung sind die Gewichte ja eh schon angegeben.

Ich weiss selber nicht mehr ganz genau, warum ich das mit der zusätzlichen Gewichtsangaben überhaupt gemacht habe.

Bin ich da auf dem richtigen Dampfer?

 

Viele Grüße

Matthias

 

Hallo,

ich habe nun die Gewichtsregeln in dem Reiter “erweiterte Einstellungen” (siehe Screenshot oben) rausgemacht. Bei allen Versandarten.

Der Datenexport hat deshalb aber auch nicht geklappt und er bringt die obige Fehlermeldung wieder. Wieder mit dem Tipp “Gesamtgewicht”. 

Diese Regel muss ich nun wieder aktivieren, da sonst 2 Versandarten zur Auswahl standen, obwohl das Gewicht nicht für die Versandard angelegt war.

 

Das Problem liegt also in der Variable:

{$sArticle|@shippingcost:“prepayment”:“de”:“Deutsche Post Standard”|escape:“number”}{#S#}

Dadurch wird der Fehler ausgelöst.

Ich habe folgende Variable probiert:

{$sArticle|@shippingcost}{#S#}

Mit dieser Variable funktioniert zwar der Produktfeed wieder, aber es stehen keine Versandkosten in der Spalte.

 

Wie müsste ich nun vorgehen, um den Fehler beheben zu können?

Leider stehe ich bereits unter Zeitdruck, da das Partnerprogramm bereits veröffentlicht ist und mir die .CSV noch als Werbemittel für die Affiliates fehlt.

Werden noch Screenshots benötigt? Ich poste gerne jeden, wenn es zur Lösung des Problems weiterhilft.

 

Viele Grüße

Matthias

 

Ich habe folgendes probiert:

{$sArticle|@shippingcost:„Deutsch“|escape:„number“}{#S#}

Anstelle von „de“ habe ich „Deutsch“ eingetippt, da ich gesehen habe, dass in Grundeinstellungen>Shops dieser auch als Name: Deutsch angelegt ist und nicht DE.

Die Fehlermeldung erscheint nun nicht mehr, aber es steht in der Spalte für die Versandkosten überall nur 0,00 drin.

Vermutlich muss ich nun noch in die Variable eine Gewichtsabfrage einbauen?

Viele Grüße

Matthias

 

könnte es evtl. sein, dass ich folgendes machen muss?

Bei Sprachsubshops mit einer virtuellen Domain filtern Sie in Ihrem Feed nach der gewünschten Sprache und passen nachfolgend per replace (|replace:"http://meindedomain.de/":"http://meindedomain.de/en") die betroffenen Smarty-Variablen an. Folgendes Beispiel zeigt Ihnen, wie Sie in einem Feed die Standard-Domain durch die virtuelle Domain /en ersetzen:

Alt:

   {$sArticle.articleID|link:$sArticle.name|escape}{#S#}  

 

Neu:

   {$sArticle.articleID|link:$sArticle.name|escape|replace:"http://meindedomain.de/":"http://meindedomain.de/en"}{#S#}  

 

Oder gilt das nur, wenn man die Artikel aus dem Ordner Englisch des Sprachshops exportieren will?

Viele Grüße

Matthias

 

Kann mir bei meinem Problem vielleicht jemand kostenpflichtig helfen? Gerne per PM.

Diese Variable: {$sArticle|@shippingcost:“prepayment”:“de”:“Deutsche Post Standard”|escape:“number”}{#S#}

müsste an meine, nach Gewicht gestaffelten Versandkosten für den Produktexport angepasst werden.

Alle anderen Variablen im Produktexport funktionieren bereits.

Viele Grüße

Matthias

 

Soderla, bevor dieser Thread hier ins lächerliche gerät habe ich auf eine Notlösung zurückgreifen müssen.

Ich habe für die Versandkostenspalte die Lieferzeit Variable verwendet.

{if $sArticle.instock}6,80{elseif $sArticle.shippingtime}{$sArticle.shippingtime} Werktage{else}5-10 Werktage{/if}{#S#}

Ich habe für die Versandkosten statt der 1-3 Werktage die 6,80 Porto eingetragen. Das trifft eh auf 99,6% aller Artikel innerhalb Deutschlands zu.

Nun werden wenigstens die Versandkosten bei jedem Artikel angezeigt.

Zumindest kann ich den Produktexport nun schon mal nutzen.

Da mir auch hier kein Profi weiterhelfen konnte, möchte ich mal auf die Aussagen in der Doku wie z.B. “keine Programmierkenntnisse bei der Erstellung des Produktexport Templates notwendig” hinweisen. Das stimmt nämlich nicht. Zumindest habe ich 3 Tage wegen einer Variable vergeudet ohne Erfolg.

 

Viele Grüße

Matthias

 

 

 

 

Mir ist noch eine Möglichkeit eingefallen woran es liegen kann:

Für Deutschland habe ich ja 3 Versandarten

1 mal Paketversand von 0 bis 30 kg (Zahlart Vorkasse prepayment)

1 mal Spedition Versand ab 30,001 bis 1000 kg (Zahlart Vorkasse prepayment)

1 mal Selbstabholung mit Faktor -100% (aber nur Barzahlung als Zahlungsweise) daher sollte diese Versandart bei prepayment gar nicht angesprochen werden.

 

Nun habe ich die Variable so umgesetzt:

{$sArticle|@shippingcost:“prepayment”:“Deutsch”:“DHL Paket Deutschland”:“Spedition und Sperrgut Deutschland”|escape:“number”}{#S#}

Leider zeigt mir der Export trotzdem die Versandkosten überall mit 0,00 an.

Das “de” in der Variable musste ich als “Deutsch” bezeichnen, da dann der oben im Thread aufgeführte Fehler beseitigt ist.

 

Hat nun evtl. jemand eine Idee, ob evtl. eine Gewichtsabfrage in die Variable rein muss?

Macht es evtl. Probleme wenn kein “_” zwischen den Versandkostenbezeichnungen steht?

Oder muss ich die Versandartenbezeichnungen auch in das Feld interner Kommentar schreiben?

 

Viele Grüße

Matthias

 

 

Hallo,

ich glaube da kannst du rumprobieren wie du möchtest, die Versandkostenermittlung beim Produktexport hat mit der Bedigung Probleme die du in deiner erweiterten SQL-Abrfage nutzt. Das kannst du nur umgehen, indem du wie oben eine If-Abfrage direkt im Produktexport machst und so deine Versandkosten “nachbaust”. Eine andere Möglichkeit sehe ich da nicht.

Moritz

Hallo Moritz,

ok. Die Bedingung in der erweiterten SQL Abfrage habe ich aber nicht reingeschrieben. Diese stand schon so als Standard drin.

Kann ich die auch rauslöschen?

Wenn nicht, meinst du dann so eine Abfrage in der Variable wie z.B. bei Inhalt und Grundpreis?

z.B.

 {if $sArticle.referenceunit && $sArticle.purchaseunit} {assign var="sArticleReferenceprice" value=$sArticle.price/$sArticle.purchaseunit\*$sArticle.referenceunit} {$sArticle.referenceunit} {$sArticle.unit} = {$sArticleReferenceprice|escape:"number"}{#S#} {$sArticle.purchaseunit} {$sArticle.unit}{#S#} {else} {#S#}{#S#} {/if}

 

Da ich mir diesbezüglich gar nicht zu helfen weiss, wäre eine Hilfestellung gut. Wer kann so was?

Viele Grüße

Matthias

 

Das steht da nicht im Standard drin, dass musst du da reinegschrieben haben :wink:
Wenn du das rauslöschst, wird deine Eigene Bedingung bei den Versandkosten nicht mehr funktionieren.

Du kannst ja auch einfach das Gewicht abfragen, hier ein Beispiel: 

{if $sArticle.weight < 5}6,80{else}10,00{/if}{#S#}

Also einfach angeben, wie die versandkosten sich bei welchem Gewicht verhalten sollen.

1 Like

Hallo Moritz,

ich habe grade für unseren neuen Shop  SW5 komplett frisch installiert. Dort habe ich bis auf die SW Umfrage zur Installation noch gar nichts gemacht. Wenn ich dort auf Grundeinstellungen>Storefront>Versandkosten Modul gehe, steht dort auch bereits:

MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd

drin. Auch dort habe ich es nicht selber reingeschrieben.

Daher bin ich nun etwas verunsichert ob das da drin stehen muss oder nicht. :slight_smile:

 

Viele Grüße

Matthias

 

Vielen Dank Moritz du bist genial :slight_smile:

Die Variable sieht nun so aus:

{if $sArticle.weight < 30}6,80{/if}{if $sArticle.weight > 30}39,00{elseif $sArticle.weight > 60}59,00{/if}{#S#}

Bei allen Artikeln unter 30 kg steht nun 6,80 dort. Perfekt.

Bei allen Artikeln über 30 kg steht 39,00. Passt

Aber bei den Artikeln über 60 kg steht auch 39,00. Wie bekomme ich da die 59,00 rein.

Vermutlich muss ich bei der Angabe > 30 noch eine Begrenzung wie z.B. <60 machen. Hab ich schon probiert, aber einen Syntax fehler erhalten.

Viele Grüße

Matthias

 

 

Habe auch diese Möglichkeit probiert.

{if $sArticle.weight < 30}6,80{elseif $sArticle.weight = 40}39,00{else}59,00{/if}{#S#}

Alle Artikel unter 30 kg bekommen 6,80. Das passt.

Die Artikel für 39,00 haben alle im Shop genau 40kg hinterlegt. Bei den 40kg Artikeln zeigt er auch 39,00 an. Aber bei den Artikeln über 60 kg zeigt er auch 39,00 an.

Habe schon mehrere Versuche gemacht. Die 59,00 tauchen noch nicht auf.

 

Irgendwo ist da noch etwas falsch.

Du hast eine eigene Bedingung bei den Versandkosten eingestellt und fragst in den Produktexporten die Versandkosten ab.link