[gelöst] Abverkauf vs. Lagerbestand

Hallo Forum, wenn ich bei einem Artikel in den Stammdaten bei Abverkauf einen Haken mache und dann das Kategorie-Listing anschauen fehlt der Button „Jetzt bestellen“ trotz eines Lagerbestandes von 100 (SW 4.0.3, 3col Listing). In der Detailansicht kann ich das Produkt richtigerweise bestellen. Entferne ich den Haken ist der fehlende Button wieder da. Habe nur ich diesen Fehler oder tritt er bei euch auch auf? Gruß Ralph

Das steht so explizit in den Templates. Kann man ändern.

[quote=„waldicom“]Das steht so explizit in den Templates. Kann man ändern.[/quote] {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.laststock == 1 && !($sArticle.notification == 1 && {config name="deactivatebasketonnotification"} == 1)} Was in meinem Fall aber den Button nicht deaktivieren sollte. Ist keine Variante, kein Konfigurator-Artikel, hat einen Bestand von mehr als 1, steht nicht auf Benachrichtigung.

[quote=“Ralph G.”][quote=“waldicom”]Das steht so explizit in den Templates. Kann man ändern.[/quote] {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.laststock == 1 && !($sArticle.notification == 1 && {config name="deactivatebasketonnotification"} == 1)} Was in meinem Fall aber den Button nicht deaktivieren sollte. Ist keine Variante, kein Konfigurator-Artikel, hat einen Bestand von mehr als 1, steht nicht auf Benachrichtigung.[/quote] “laststock” bedeutet aber nicht Lagerbestand sondern nur, dass das ein Abverkaufartikel ist. Der Name ist hier nur ein wenig unglücklich ausgewählt, meiner Meinung nach… Lagerbestand ist “instock”. Das passiert deswegen, weil man die Anzahl der Artikel auf der Produktliste im Standard nicht auswählen kann. Hiermit geht das.

1 „Gefällt mir“

Danke das war es. :slight_smile: Das Plugin sieht interessant aus, vielleicht kann ich das irgendwann mal verwenden.

Wo finde ich denn diese Zeile: {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.laststock == 1 && !($sArticle.notification == 1 && {config name=„deactivatebasketonnotification“} == 1)} Man könnte doch einfach das "!$sArticle.laststock == 1 " aus dem Code entfernen, wenn der jetzt Bestellen Button immer angezeigt werden soll, oder sehe ich das falsch?

habs unter …/templates/DEIN TEMPLATE/frontend/listing/box_article.tpl gefunden.

Ich habe das im box_article.tpl so geändert: {block name='frontend\_listing\_box\_article\_actions\_buy\_now'} {\* Buy now button \*} {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.instock \< 1 && !($sArticle.notification == 1 && {config name="deactivatebasketonnotification"} == 1)} [{s name='ListingBoxLinkBuy'}{/s}]({url controller='checkout' action='addArticle' sAdd=$sArticle.ordernumber} "{s name='ListingBoxLinkBuy'}{/s}") {/if} {/block} Also !$sArticle.instock < 1 && eingefügt und laststock entfernt. Ich habe es jedoch in templates/_emotion/frontend/listing/box_article.tpl geändert. Ich vermute, es war besser in templates/MEIN_TEMPLATE/frontend/listing/box_article.tpl. Aber wie mache Ich das genau? Genugt: {extends file='parent:frontend/listing/box\_article.tpl'} {block name='frontend\_listing\_box\_article\_actions\_buy\_now'} {\* Buy now button \*} {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.instock \< 1 && !($sArticle.notification == 1 && {config name="deactivatebasketonnotification"} == 1)} [{s name='ListingBoxLinkBuy'}{/s}]({url controller='checkout' action='addArticle' sAdd=$sArticle.ordernumber} "{s name='ListingBoxLinkBuy'}{/s}") {/if} {/block} Ich meine es nicht, weil Ich doch angeben soll, das dieses Block der default Block ersetzt? Aber Ich weiss nicht, wie es zu machen. Kann jemand hilfen? Muss der obigen Block {block name=‘frontend_listing_box_article_actions’} eigentlich auch nicht genannt werden?

Leider kann ich nicht helfen fredz, wir haben aber das gleiche Problem. Hast du vielleicht schon die Lösung gefunden? Oder jemand anders?

[quote=“TonyD”]Leider kann ich nicht helfen fredz, wir haben aber das gleiche Problem. Hast du vielleicht schon die Lösung gefunden? Oder jemand anders?[/quote] Leider nicht. Schade, auch, das Shopware nicht antwortet oder hilft :wink:

Hi, könnt ihr noch mal genau schreiben was jetzt genau bei euch nicht funktioniert? Gibt es Probleme mit der Funktion? Oder funktioniert das ableiten in das eigene Template nicht? So ganz wird das nicht klar. Das Ursprungsproblem wurde ja gelöst wie es scheint. Zumindest für den Threadersteller. Daher hat hier von uns auch keiner reingeschaut :wink: Vielleicht wäre da ein neuer Thread besser gewesen. Gruß Patrick

Vielen dank für Ihre Antwort, Patrick! Ich habe das im box_article.tpl so geändert (und es funktioniert): {block name='frontend\_listing\_box\_article\_actions\_buy\_now'} {\* Buy now button \*} {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.instock \< 1 && !($sArticle.notification == 1 && {config name="deactivatebasketonnotification"} == 1)} [{s name='ListingBoxLinkBuy'}{/s}]({url controller='checkout' action='addArticle' sAdd=$sArticle.ordernumber} "{s name='ListingBoxLinkBuy'}{/s}") {/if} {/block} Also !$sArticle.instock < 1 && eingefügt und laststock entfernt. Ich habe es jedoch in templates/_emotion/frontend/listing/box_article.tpl geändert. Ich vermute, es war besser in templates/MEIN_TEMPLATE/frontend/listing/box_article.tpl. Aber wie mache Ich das genau?: {extends file='parent:frontend/listing/box\_article.tpl'} {block name='frontend\_listing\_box\_article\_actions\_buy\_now'} {\* Buy now button \*} {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.instock \< 1 && !($sArticle.notification == 1 && {config name="deactivatebasketonnotification"} == 1)} [{s name='ListingBoxLinkBuy'}{/s}]({url controller='checkout' action='addArticle' sAdd=$sArticle.ordernumber} "{s name='ListingBoxLinkBuy'}{/s}") {/if} {/block} Das habe Ich versucht, aber ohne Erfolg, Soll dieses Block der default Block nicht ersetzen? Aber Ich weiss nicht, wie es zu machen. Kann jemand hilfen? Muss der “upper level” Block {block name=‘frontend_listing_box_article_actions’} eigentlich auch nicht genannt werden?

Es geht darum, den „Jetzt Bestellen“ Button im Listing anzuzeigen, obwohl die Option Abverkauf aktiv ist. Der Button wird ausgeblendet, sobald der Haken für Abverkauf im Backend gesetzt wird, auch wenn der Bestand > 0 ist.

Hallo fredz, hast du dir das Tutorial im Wiki angeschaut? Dort wird genau erklärt, wie dass Template abgeleitet werden muss. http://wiki.shopware.de/Schnelleinstieg … l_876.html Du könntest diese Anpassung in _emotion_local einbinden. Dann steht die Änderung in allen Templates zur Verfügung und ist updatesicher. Den Templatecache hattest du schon geleert? Eventuell hängt da noch etwas. Vielleicht auch im lokalen Browsercache Gruß Patrick PS: Vielleicht einfach nur für mich aus Neugierde…warum will man einen Artikel noch bestellbar halten wenn doch Abverkauf aktiviert ist?

[quote=„Patrick Schücker“]PS: Vielleicht einfach nur für mich aus Neugierde…warum will man einen Artikel noch bestellbar halten wenn doch Abverkauf aktiviert ist?[/quote] Naja, einfach: Ich möchte, das Artikel nur im Warenkorb gelegt werden können wenn Lager vorhanden ist, und Ich möchte, das exakt angegeben würde wieviel Artikel auf Lager (und bestellbar) sind. Ausserdem soll der button Jetzt bestellen immer anwesend sein, wenn Artikel auf Lager sind, auch in die Liste. (Standard verschwindet Jetzt bestellen wenn Abverkauf gewählt ist). Eigentlich machen wir kein Abverkauf, aber Abverkauf scheint die einzige Möglichkeit zu sein, um ein genaue Angabe der Artikelanzahl zu haben.

Hier ist der Inhalt meiner templates/MEIN_TEMPLATE/frontend/listing/box_article.tpl. !$sArticle.laststock == 1hab ich rausgenommen, damit der Jetzt bestellen Button auch bei Abverkaufartikeln angezeigt wird. Um den Button nur anzuzeigen, wenn auch wirklich Ware im Lager ist muss noch $sArticle.instock \> 0 dazu. Ich hoffe das löst dein Problem. VG {extends file='parent:frontend/listing/box\_article.tpl'} {block name='frontend\_listing\_box\_article\_actions\_buy\_now'} {\* Buy now button \*} {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && $sArticle.instock \> 0 && !($sArticle.notification == 1 && {config name="deactivatebasketonnotification"} == 1)} [{s name='ListingBoxLinkBuy'}{/s}]({url controller='checkout' action='addArticle' sAdd=$sArticle.ordernumber} "{s name='ListingBoxLinkBuy'}{/s}") {/if} {/block}

[quote=„Patrick Schücker“]PS: Vielleicht einfach nur für mich aus Neugierde…warum will man einen Artikel noch bestellbar halten wenn doch Abverkauf aktiviert ist?[/quote] Zwar ist der Beitrag schon ein paar Monate alt, aber die Frage irritiert mich gerade doch. Gibt es einen anderen Weg als den Abverkauf, um den Verkauf von Artikeln, die nicht auf Lager sind, zu unterbinden? Darum geht es ja hier. Es geht ja nicht wirklich um einen Abverkauf mit einem Artikel, der danach aus dem Sortiment verschwindet, sondern darum, dass Artikel bis sie wieder verfügbar sind, nicht bestellt werden können (Folge wären Teillieferungen) Ungewünschter Nebeneffekt des Abverkauf ist aber eben das Verschwinden des Bestellbuttons im Listing, sodass Kunden denken werden, dass der Artikel nicht auf Lager ist.

[quote=„Ade“] Ungewünschter Nebeneffekt des Abverkauf ist aber eben das Verschwinden des Bestellbuttons im Listing, sodass Kunden denken werden, dass der Artikel nicht auf Lager ist.[/quote] Das kann man in den Templates ziemlich leicht ändern/rausnehmen, aber der Kunde weiß dann nicht, dass man nur eine begrenzte Anzahl der Artikel kaufen kann. Es gibt ein Plugin im Store, welches die verfügbare Anzahl der Artikel im Listing anzeigt.

Danke waldicom für die Antwort. Ich hatte die Lösung in der Tat auch gesehen. Die Frage bezog sich auf den Beitrag von Patrick Schücker. Es klang so, als würden wir die Option „Abverkauf“ an der Stelle „falsch“ nutzen (was wir im Grunde ja auch machen) und als würde es eventuell einen anderen Weg geben, um eine Bestellung bei leerem Lager zu verhindern. Bzw. ich verstehe auch nachwievor nicht, warum die Bestelloption im Listing deaktiviert wird bei Abverkauf. Dass der Artikel eventuell nur noch 1x auf Lager ist, spricht doch nicht dagegen. Ich dachte ursprünglich es ist eine Caching Frage. Dass im Listing also die Information über den aktuellen Lagerbestand gar nicht verfügbar ist - aber das scheint nicht das Problem.

Hallo, ich verstehe diese Verhalten grundlegends nicht. Abverkauf bedeutet doch, dass dieser Artikel „End of Life“ ist und für den Shopbetreiber ausläuft. Was hat der Kunde damit zu tun? Es erfolgt keine Ausgabe im Fronted für den Kunden und die Verfügbarkeitsmenge wird entsprechend der „normalen“ Artikeln berechnet. Es ist schön dieses Feature Abverkauf zu haben, aber ich verstehe nicht, warum es bei positivem Lagerbestand in die actions eingreift? Erik!