# Eigene Preisberechnung einziehen

**URL:** <https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390>\
**Category:** Programmierung\
**Created:** [27. April 2016 um 14:18 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390 "2016-04-27T14:18:13Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![wolkenkraft](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wolkenkraft](https://forum.shopware.com/u/wolkenkraft)\
**Post date:** [27. April 2016 um 14:18 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/1 "2016-04-27T14:18:13Z")

</div>

Hallo Zusammen,

Ich evaluiere derzeit Shopware 5 als Lösung für einen Kunden, der von seiner bisherigen Lösung auf eine aktuelle Lösung umsteigen möchte.  
Der Kunde nützt eine sehr **umfassende Preisberechnung / Rabattierung** für seine Produkte basierend auf Kundengruppe, Hersteller, Produkt&nbsp;etc. Diese Berechnung ist in der aktuellen Lösung implementiert und soll nun auch in Shopware umgesetzt werden.

Das bedeutet, dass der **Algorithmus der Preisberechnung entsprechend ersetzt werden muss**. Meine Frage dazu: Hat jemand einen Ansatz für mich, wie ich ein Plugin das diese Arbeit übernimmt umsetzen kann? Handelt es sich bei der Preisberechnung um einen Service, der überladen werden kann? Oder muss das Ganze über einen „Post-Calculation-Event“ eingefädelt werden, der dann die „normale“ Preisberechnung überschreibt?

Ich bin für jeden Tipp / Link dankbar,  
liebe Grüße,  
Michael

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [27. April 2016 um 14:41 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/2 "2016-04-27T14:41:11Z")

</div>

Du könntest den PreisCalculationService dekorieren und dadurch den Preis anpassen:

> <https://github.com/shopware/shopware/blob/5.1/engine/Shopware/Bundle/StoreFrontBundle/Service/Core/PriceCalculationService.php>

---

<div class="post-metadata">

**Author:** ![wolkenkraft](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wolkenkraft](https://forum.shopware.com/u/wolkenkraft)\
**Post date:** [27. April 2016 um 14:45 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/3 "2016-04-27T14:45:16Z")

</div>

Danke für Deine Antwort.

Genau an dieser Ecke arbeite ich gerade… Interessanterweise dürften die Preise aber über verschiedene Wege berechnet werden.  
Ich habe testweise direkt im PriceCalculationService in der Methode calculatePrice() den Wert für $price auf 1 gesetzt. Das führt dazu, dass die Preise in den Produktlistings und Produktdetails korrekt mit € 1,00 (+ Tax) gelistet werden. Im Warenkorb und Checkout wird dann jedoch wieder der “alte” Preis berechnet…

Gibt es hier vielleicht einen getrennten Service für die Preisberechnung ab dem Warenkorb?

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [27. April 2016 um 15:06 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/4 "2016-04-27T15:06:48Z")

</div>

Ich denke das es dort an dieser Funktion liegt.

> <https://github.com/shopware/shopware/blob/5.1/engine/Shopware/Core/sBasket.php#L2424>

---

<div class="post-metadata">

**Author:** ![wolkenkraft](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wolkenkraft](https://forum.shopware.com/u/wolkenkraft)\
**Post date:** [27. April 2016 um 15:35 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/5 "2016-04-27T15:35:03Z")

</div>

Die Lösung über einen Decorator funktioniert wunderbar - danke für die Richtungsvorgabe.  
Das die Preise für den Basket hier offenbar getrennt berechnet werden macht die Sache ziemlich unsauber.&nbsp;

Würdest Du mir zustimmen, dass man diese Berechnung dann über den Event&nbsp;Shopware\_Modules\_Basket\_getPriceForUpdateArticle\_FilterPrice umbiegen sollte!?

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [27. April 2016 um 15:49 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/6 "2016-04-27T15:49:41Z")

</div>

Hi,

ja, genau das Event ist es - damit habe ich das auch schon gemacht.

In Zukunft wollen wir das weiter vereinheitlichen, momentan funktioniert der WK da noch etwas anders, als die Listings.

Daniel

---

<div class="post-metadata">

**Author:** ![wolkenkraft](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wolkenkraft](https://forum.shopware.com/u/wolkenkraft)\
**Post date:** [28. April 2016 um 06:33 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/7 "2016-04-28T06:33:17Z")

</div>

Guten Morgen zusammen,

Vielen Dank für Eure Antworten. Das stimmt mich ja sehr zuversichtlich 🙂

Noch eine andere Frage wo Ihr vielleicht eine Idee habt:  
Ein System des Kunden ist ein " **Closed-Shop**". D.h. es ist nötig am System authentifziert (eingeloggt) zu sein&nbsp;um auf den Shop (auch Produktdaten) zuzugreifen.

Kennt Ihr zu diesem Thema (bzw. in diese Richtung)&nbsp;vielleicht auch ein Tutorial? Mein Ansatz wäre hier ein Plugin bei einem PreProcess Event einzuhängen und den Kunden auf die Login-Seite umzuleiten, sollte er nicht eingeloggt sein.

Vielen Dank & liebe Grüße,  
Michael

---

<div class="post-metadata">

**Author:** ![edin](https://avatars.discourse-cdn.com/v4/letter/e/f0a364/32.png) [@edin](https://forum.shopware.com/u/edin)\
**Post date:** [8. Mai 2016 um 20:10 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/8 "2016-05-08T20:10:10Z")

</div>

Ein kurzes Nachhaken bei der Preisberechnung:&nbsp;

ohne dass ich jetzt irgendetwas herumprobiert habe, aber nur zum Verständnis der Thematik würde ich gerne wissen, wie hier das Zusammenspiel zwischen den im Backend eingegeben Preisen, und den durch die Hooks/Events angepassten Preisen ist ? Aus dem Stehgreif würde ich vermuten, dass der Preis aus dem Backend weiterhin der entsprechenden Preis Tabelle in der Datenbank entspricht und entweder ignoriert oder zur eigenen Berechnung im eigenen Plugin hinzugezogen werden kann ? Und der eigen berechnete Preis lediglich in der Bestellung unterkommt ?&nbsp;

Gruß Edin

---

<div class="post-metadata">

**Author:** ![wolkenkraft](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wolkenkraft](https://forum.shopware.com/u/wolkenkraft)\
**Post date:** [9. Mai 2016 um 07:50 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/9 "2016-05-09T07:50:21Z")

</div>

Guten Morgen,

Hier gibt es keinen Zusammenhang mehr. Die Preisberechnung basiert auf einem völlig eigenständigen Modell, unabhängig von den Preisen, die im Backend angegeben werden.

---

<div class="post-metadata">

**Author:** ![MatthiasH](https://avatars.discourse-cdn.com/v4/letter/m/47e85d/32.png) [@MatthiasH](https://forum.shopware.com/u/MatthiasH)\
**Post date:** [9. Mai 2016 um 07:53 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/10 "2016-05-09T07:53:53Z")

</div>

Für die Closed Shop Geschichte kannst du das Business Essentials Modul nehmen, dazu ist es unter anderem da.

Grüße Matthias

&nbsp;

---

<div class="post-metadata">

**Author:** ![wolkenkraft](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wolkenkraft](https://forum.shopware.com/u/wolkenkraft)\
**Post date:** [10. Mai 2016 um 06:41 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/11 "2016-05-10T06:41:07Z")

</div>

Hallo,

Danke für den Tipp… Ist das Modul quelloffen, damit zusätzliche Modifikationen machbar sind? Der Kunde hat bei der Registrierung sehr spezielle Anforderungen.

Grüße,  
Michael

---

<div class="post-metadata">

**Author:** ![MatthiasH](https://avatars.discourse-cdn.com/v4/letter/m/47e85d/32.png) [@MatthiasH](https://forum.shopware.com/u/MatthiasH)\
**Post date:** [10. Mai 2016 um 07:13 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/12 "2016-05-10T07:13:36Z")

</div>

Normal nein, ist ja eines der Premium Plugins. Als Shopware Partner kannst du aber Zugriff auf die Sourcen bekommen, wobei die Logingeschichte ist ja trotzdem anpassbar aus meiner Sicht.&nbsp;

Grüße Matthias

---

<div class="post-metadata">

**Author:** ![wolkenkraft](https://avatars.discourse-cdn.com/v4/letter/w/65b543/32.png) [@wolkenkraft](https://forum.shopware.com/u/wolkenkraft)\
**Post date:** [10. Mai 2016 um 07:30 UTC](https://forum.shopware.com/t/eigene-preisberechnung-einziehen/36390/13 "2016-05-10T07:30:10Z")

</div>

Danke für die Info - werde mir das Plugin jedenfalls mal ansehen…
