Artikel für Kundengruppen ausschließen, korrekt so?

Ich habe eine kurze Frage: Ich habe einen Artikel für eine Kundengruppe ausgeschlossen. Soweit so gut, wenn der Kunde sich zuerst einloggt ist der Artikel auch für Ihn nicht auswählbar. Ist der Kunde jedoch als Gast im Shop und legt sich diesen Artikel in den Warenkorb, und loggt sich dann erst ein, dann kann er den Artikel (trotz das seine Kundengruppe diesen nicht bestellen darf) bestellen. Ist das ein Denkfehler meinerseits oder ein Bug im ShopSystem? vielen Dank im Voraus :slight_smile: Vielleicht noch hier der etwas detaillierter Hintergrund: Der Shop ist prinzipiell ausgelegt für Endverbaucher und funktioniert hier auch tadellos. Nun wollte ich auch meine Wiederverkäufer, die einen % auf die Artikel bekommen mit einbinden. Jedoch bekommen die Wiederverkäufer die % natürlich nicht auf Sonderangebote, und genau dieses wollte ich wie oben beschrieben ausschließen, für Gäste und Endkunden aber natürlich anzeigen und auch bestellbar machen.

Normalerweise verschwindet der Artikel in dem Fall aus dem Warenkorb, bzw sollte es.

kann dies jemand nochmal in seiner Version nachvollziehen? Bei mir ist es immer noch so, dass Artikel die vor dem einloggen in den Warenkorb gelegt werden trotz Kundenauschluß bestellt werden können (Das Bild im Warenkorb wird gelöscht, in der der Kategorie kann der Artikel auch nicht mehr ausgewählt werden, aber im Warenkorb bleibt er und ist auch bestellbar)

Hi, kann ich nachstellen, so wie ich das sehe, wird das beim Reinlegen eines Artikels in den WK geprüft - danach aber nicht mehr. Am besten eben ein Ticket unter issues.shopware.com anlegen. Daniel

Danke für die Auskunft :slight_smile: weiß du wie die Funktion für diesen Check heißt? Dann kann ich selbst ein Bugfix bauen bis das in den Release einfließt. Grüße Ben

Hi, das ist keine eigenständige Methode, sondern in aller Regel ein Subselect oder LEFT JOIN auf s_articles_avoid_customergroups (vgl. \sBasket::getArticleForAddArticle). Der Fix würde grundsätzliche die \sBasket::sGetBasket betreffen, hier müssen die ausgeschlossenen Produkte entfernt / geprüft werden. Die sGetBasket ruf ein paar andere Methoden auf, vermutlich kann man das am einfachsten in der \sBasket::getAdditionalInfoForUpdateArticle fixen und dort zusätzlich den Check einbauen, ob das aktuelle Produkt in der s_articles_avoid_customergroups-Tabelle steht. Wenn es darin steht, sollte das Produkt nicht selektiert werden, die Methode gibt array() zurück, dadurch schmeißt die Methode \sBasket::sUpdateArticle den Artikel aus dem Warenkorb und der Rest funktioniert wie gehabt. Via Plugin kommt man da eher schlecht dran, ggf. kannst du dir das Event Shopware_Modules_Basket_getPriceForUpdateArticle_FilterPrice ansehen, wenn du da keinen Preis setzt, schmeißt Shopware das Produkt auch raus. Dritte Alternative wäre, am Anfang der sGetBasket (before-Hook?) mit einem DELETE-Query alle Produkte aus der s_order_basket zu löschen, die für die aktuelle Session / die aktuelle Kundengruppe nicht (mehr) zulässig sind. So oder so ist der Fix zwar schnell eingebaut, aber nicht ganz unkritisch, was das Warenkorb-Verhalten und die Warenkorb-Performance angeht - musst du also sorgsam testen. Daniel

1 „Gefällt mir“

Hi,

gibt es hier schon eine Lösung? Bei mir (SW 5.1.3.) wird sogar der Artikel noch im Listing angezeit, bzw. die Detail-Seite ist aufrufbar. Er sollte doch aber komplett verschwinden, oder ?

Er kann nur “eingeloggt”  nicht in den Warenkorb gelegt werden.  Ansonsten entspricht das dem Szenario wie oben beschrieben.

Hat noch jemand das gleiche Problem ?

Danke.

Leider immer noch drin :frowning:

Das Problem besteht leider immernoch. Gibt es hierfür immernoch keine Lösung? 

Die Händler meines Kunden haben den Trick mittlerweile raus und nutzen diesen aus, was einen ziemlich hohen Storno und Diskussionsaufwand bedeutet…