Hallo liebe Community, ich habe etliche Zeit gesucht, sowohl in diesem Forum als auch via Google und nutze jetzt dann doch das Forum. Macht mich bitte darauf aufmerksam, sollte dies ein Doppel-Post oder Ähnliches sein. Ich unterhalte einen Shopware 5 Shop der an ein Warenwirtschaftssystem von JTL (JTL-WaWi) angeschlossen ist. Im SW5-System sind bisher klassische Standard-Versandarten hinterlegt, d.h. keine Ausweichs- oder Aufschlags-Versandarten, damit kann ich auch alle normalen Artikel abdecken. Der Shop führt allerdings auch Speditions- und Sperrgutartikel und hier wird es kompliziert. Ich habe mir das Tutorial zum Zuweisen einer Versandart zu einer Artikelkategorie angeschaut, leider ist mein Fall etwas komplizierter. Die Information, dass ein Artikel ein Speditions-/Sperrgut-Artikel ist, kommt eigentlich aus der WaWi mittels einer Versandklasse. Diesen Versandklassen sind dann Versandarten zugeordnet. Im SW5-System geht das nicht mehr, weil der Connector zwischen den beiden Systemen das nicht hergibt! Ich muss also zwei Informationen im SW5-System unterbringen: 1. Ein Artikel ist ein Speditions-/-Sperrgut-Artikel 2. Für Speditions-/Sperrgut-Artikel gilt eine Versandkostenstaffel, die ungefähr so aussieht und zwar NUR diese Versandkostenstaffel: 250 bis 300 kg -> 45,00 Euro 300,01 bis 300 kg -> 64,00 Euro usw. Mein Ansatz: Ich erstelle eine Kategorie „Sperrgutartikel“ in der WaWi, diese wird korrekt an das SW5-System übertragen und ich konfiguriere diese Kategorie so, dass sie nicht im Frontend sichtbar ist. Ich ordne alle relevanten Artikel u.A. dieser Kategorie unter und nutze dann das oben genannte Tutorial. Die Frage wäre nun: Wenn ich die Artikel vorliegen habe und die Kategorie-ID kenne… wie müssen dann die Einstellungen für die Versandkosten genau aussehen? Es wäre toll, wenn ihr mir helfen könntet! Viele Grüße JG
Hallo, in solchen Fällen hat es sich bewährt, die Prüfung über ein Freitextfeld am Artikel zu lösen. JTL kann die Freitextfelder der Shopware ja praktischerweise ohne Anpassungen befüllen. Die Lösung über die Kategorien sollte aber ebenso funktionieren. Ich mag die Freitextfelder deutlich lieber, weil die Besingung simpler ist und auch weniger Pflegeaufwand mit sich bringt. Zusätzlich lässt sich dann ganz leicht z.B. auf der Produktdetailseite oder im Warenkorb eine Box ausgeben, die auf den höheren Versandpreis hinweist. Was wichtig ist: - Gelten die genannten Preise pro Sperrgut-Artikel oder einmalig pro Auftrag? - Wie soll dich die Berechnung verhalten, wenn es sowohl einen “normalen” Paketversand-Artikel als auch einen Sperrgut-Artikel in einem Warenkorb gibt? Davon ist dann abhängig, wie die Struktur der Bedingungen und Berechnungen aussehen soll. Im einfachsten Fall wird zunächst als Bedingung für die Wirksamkeit der Versandkosten-Regel im Freitextfeld nachgeschaut: http://community.shopware.com/Versandko … l_Attribut Und dann würde es schon reichen, wenn die Standard-Berechnung nach Gewicht genutzt wird.
Hallo, vielen Dank für die schnelle Antwort. Nachdem ich die Angaben befolgt habe, ist nun korrekt über das erweiterte Versandkosten-Modul die Abfrage auf attr16 gelegt und das Produkt wird nun mit den entsprechenden Versandkosten versehen. Die Fragen sind tatsächlich berechtigt: “Gelten die genannten Preise pro Sperrgut-Artikel oder einmalig pro Auftrag?” Die Preise gelten pro versendetem Sperrgut-Artikel - es kann durchaus vorkommen, dass die Spedition aus unterschiedlichen Lagern beliefert und dadurch mehr Kosten entstehen. Wie soll dich die Berechnung verhalten, wenn es sowohl einen “normalen” Paketversand-Artikel als auch einen Sperrgut-Artikel in einem Warenkorb gibt? Das ist der trickreiche Part: 1. Jeder Sperrgut-Artikel soll einmalig seine gewichtsabhängigen Versandkosten bekommen 2. Alle normalen Artikel werden für einmalig 4,95 Euro versandt, ab einem Warenkorbwert (der normalen Artikel) von über 100 Euro ist der Versand der normalen Artikel frei. Wie ließe sich das nun bewerkstelligen? Vielen Dank schon einmal für die Hilfe! Viele Grüße JG
Hi, ich bin mittlerweile etwas weiter und habe eine Query gebastelt, die soweit auch funktioniert: SELECT SUM( CASE WHEN ( SELECT x.sum_prices FROM ( SELECT SUM(s_articles_prices.price) as sum_prices, s_order_basket.sessionID as sess_id FROM s_order_basket JOIN s_user ON (s_user.id = s_order_basket.userID) JOIN s_articles_attributes ON (s_order_basket.articleID = s_articles_attributes.articleID) JOIN s_articles_prices ON (s_articles_prices.articleID = s_articles_attributes.articleID) WHERE s_order_basket.sessionID = s_user.sessionID AND ISNULL(s_articles_attributes.attr16) GROUP BY s_order_basket.sessionID ) as x WHERE x.sess_id = XXXXXXXXX) > 75 THEN 0 ELSE 4.95 END ) Wenn ich eine konkrete sessionID dort hineingebe, wird das Ergebnis korrekt berechnet. Es fehlt zwar noch ein Zusatz, für den Fall dass ein Artikel mehrfach bestellt wird (quantity) aber das ist nur noch ein wenig mehr. Vielmehr verzweifle ich an der Frage, wie ich aus der Datenbank die betreffende sessionID auslesen kann… Ich joine ja die zwei betreffenden Tabellen bereits. Lasse ich den Passus WHERE x.sess_id = XXXXXXXXX raus, sagt er mir #1242 - Subquery returns more than 1 row . Mir ist natürlich bewusst warum er das macht. Was kann ich tun? Für Hilfe wäre ich wirklich sehr dankbar! Freundliche Grüße Julian Gerhard