Hi, kann mir jemand auf die schnelle sagen, wie ich die Warenüberprüf-Funktion auf der Bestellabschlussseite weg bekomme? Ein Artikel aus Ihrer Bestellung ist nicht mehr verfügbar! Bitte entfernen Sie die Position aus dem Warenkorb! Also nicht der Text, sonder die ganze Routine! Danke
Hallo, dann hast du aber „Abverkauf“ aktiv. Den einfachste Weg ist dann „Abverkauf“ nicht zu nutzen. Sonst müsste ja die gesamte Prüfung im Code deaktiviert werden.
Abverkauf ist nicht Aktiv. Das Problem liegt an einer anderen Stelle. Die Methode sCheckBasketQuantities überprüft ja den Zustand. Aber das SQL Query bezieht sich auf die ORDERNUMBER. Diese manipuliere ich aber, so dass die Abfrage nicht mehr funktionieren kann. Habe nun die Methode überlagert und mache die Abfrage anhand der ArticleID. Dies funktioniert bis jetzt auch. Siehst du da evtl. ein Problem? function sCheckBasketQuantities(Enlight\_Hook\_HookArgs $args) { $sql = " SELECT (d.instock - b.quantity) as diffStock, b.ordernumber, a.laststock, IF(a.active=1, d.active, 0) as active FROM s\_order\_basket b LEFT JOIN s\_articles\_details d ON d.articleID = b.articleID LEFT JOIN s\_articles a ON a.id = d.articleID WHERE b.sessionID = ? AND b.modus = 0 GROUP BY b.ordernumber "; $result = Shopware()-\>Db()-\>fetchAll($sql,array(Shopware()-\>SessionID())); $hideBasket = false; foreach ($result as $article){ if (empty($article['active']) || (!empty($article['laststock']) && $article["diffStock"] \< 0)){ $hideBasket = true; $articles[$article["ordernumber"]]["OutOfStock"] = true; } else { $articles[$article["ordernumber"]]["OutOfStock"] = false; } } return array("hideBasket"=\>$hideBasket,"articles"=\>$articles); }
NEU => ON d.articleID = b.articleID ALTE => ON d.ordernumber = b.ordernumber AND d.articleID = b.articleID
Hallo, habe auch das Problem. Leider haben wir recht viele Artikel mit Bestand “null”. Diese müssen aber für den Kunden bestellbar bleiben. Habe die Einstellungen geprüft. Bei den Artikeln ist der Abverkauf nicht aktiv… Ebenso ist die Einstellung “Abverkaufsartikel ohne Lagerbestand deaktivieren” nicht aktiv. Was kann ich tun, damit auch die Artikel ohne Bestand bestellt werden können?
gab es hier einen Lösung?
wir haben das Problem egal ob ein Artikel auf Lager ist oder nicht Er kann einfach nicht gekauft werden Wird der Artikel einmal in Shopware gespeichert, kann man ihn kaufen Siehe anhänge Abverkauf ist nicht gesetzt WAWI ist actindo
Hallo AKa-Sports, ich vermute, dass der Artikel defekt ist bzw. wichtige Infos in der Datenbank fehlen. Kannst du den besagten Artikel einmal im Backend speichern und dann die Bestellung mit dem Artikel neu versuchen? Die genannte Meldung beim Abschluss kann nämlich eigentlich nur auftauchen, wenn z.B. ein wichtiger Eintrag in der Datenbank nicht gesetzt ist und somit Informationen fehlen. Sebastian
…wir konnten das Problem wie folgt lösen: Bei uns war in der Tabelle “s_articles_details” das Feld active auf 0… In der eigentlichen s_articles allerdings auf 1. Unsere Vermutung ist ein Übernahmefehler von 3.5.6 auf die 4er Version. Seither läuft es nun problemlos.
Hallo, unsere Artikel werden über die neue REST-Api eingespielt und wir haben das gleiche Problem. Alle eingespielten Artikel sind in der Tabelle „s_articles_details“ auf active=0. So können die Artikel nicht bestellt werden. Hat hier jemand eine Lösung? Grüße
Hallo, die Lösung ist schlicht, beim Anlegen der Varianten “active => true” für jede Variante zu übergeben :). Standardmäßig ist der Wert im Detail-Model hier “false”: /\*\* \* @var integer $active \* \* @ORM\Column(name="active", type="integer", nullable=false) \*/ private $active = false;
Ich habe das gerade nochmal evaluiert und da kein Fehlverhalten beobachten können. Falls ihr dennoch weiterhin in das Problem lauft, stellt bitte einfach mal ein möglichst auf das Wesentliche reduziertes Array ein, das das Problem trotz gesetzten Active-Feldes verursacht. Dann schaue ich mir das nochmal an. Besten Gruß, Daniel
[quote=„Daniel Nögel“]Hallo, die Lösung ist schlicht, beim Anlegen der Varianten „active => true“ für jede Variante zu übergeben :). Standardmäßig ist der Wert im Detail-Model hier „false“: /\*\* \* @var integer $active \* \* @ORM\Column(name="active", type="integer", nullable=false) \*/ private $active = false;
Ich habe das gerade nochmal evaluiert und da kein Fehlverhalten beobachten können. Falls ihr dennoch weiterhin in das Problem lauft, stellt bitte einfach mal ein möglichst auf das Wesentliche reduziertes Array ein, das das Problem trotz gesetzten Active-Feldes verursacht. Dann schaue ich mir das nochmal an. Besten Gruß, Daniel[/quote] Hallo Daniel, wir hatten beim Import über die REST-Api zunächst das active nicht aufgeführt und alle Artikel waren automatisch aktiv. Nachdem nun festgetsellt wurde, dass auch in der Tabelle „s_articles_details“ das active auf 1 gesetzt werden muss, aktualisieren wir unsere Artikel wie folgt: [3]-16:55:45: Aktualisiere Artikel 42 von 5000: ArtikelXY [3]-16:55:45: { "useNumberAsId": "true", "active": "true", "mainDetail": { "inStock": "138.00000", "prices": [{ "customerGroupKey": "EK", "price": "55.80000", "pseudoPrice": "92.50000" }, { "customerGroupKey": "00", "price": "55.80000", "pseudoPrice": "92.50000" }] }
Nur ändert das schienbar nichts am Wert in der Tabelle „s_articles_details“. Grüße
Hallo, das active Attribut gehört an die jeweiligen Maindetails und Varianten, die entsprechen den ArtikelDetails. usenumberasid ist ein Request Parameter, in das Json Array gehört der eigentlich nicht. Dir API würde den so einfach stillschweigend ignorieren, dass vll auch nochmal verifizieren. Bin gerade unterwegs, daher etwas abgehakt, sry dafür :-). Daniel
Hallo, gibt es hierfür schon eine Problemlösung? Wir nutzen Shopware ebenfalls mit Actindo und ich denke hier liegt der Fehler bei der Synchronisation. Jemand vielleicht noch solche Erfahrungen gemacht? Viele Grüße Markus
Actindo arbeitet an dem Problem mit dem Connector bei uns wird das Problem gelöst temporär wenn wir über phpMyAdmin folgende SQL befehle drüber jagen UPDATE usrdb_akakbxpv1
.s_articles_details
SET active
= ‚1‘; UPDATE usrdb_akakbxpv1
.s_articles
SET active
= ‚1‘;
[quote=“AKa-Sports”]Actindo arbeitet an dem Problem mit dem Connector[/quote] Es tut mir Leid, aber auch als anfänglicher Actindo-Fan kann ich diese Aussage nicht mehr hören… [quote=“AKa-Sports”]bei uns wird das Problem gelöst temporär wenn wir über phpMyAdmin folgende SQL befehle drüber jagen UPDATE usrdb_akakbxpv1
.s_articles_details
SET active
= ‘1’; UPDATE usrdb_akakbxpv1
.s_articles
SET active
= ‘1’;[/quote] Dankeschön, werde ich mal probieren. Wenn ein Kunde nicht angerufen hätte, hätten wir es gar nicht bemerkt. Seit dem Update von 3.5.6 auf 4.0.4 funktioniert so einiges nicht mehr…
nach unseren Test hat Actindo das Problem behoben
[quote=„AKa-Sports“]nach unseren Test hat Actindo das Problem behoben[/quote] Mit einem neuen Connector? Oder nur bei euch?
ich musste nichts Updaten
Ah, okay. Und welche Shopware-Version nutzt ihr?