# Service Extensions

**URL:** <https://forum.shopware.com/t/service-extensions/31403>\
**Category:** Programmierung\
**Created:** [16. Oktober 2015 um 09:38 UTC](https://forum.shopware.com/t/service-extensions/31403 "2015-10-16T09:38:19Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [16. Oktober 2015 um 09:38 UTC](https://forum.shopware.com/t/service-extensions/31403/1 "2015-10-16T09:38:19Z")

</div>

Guten Morgen, ich möchte gerne die Preise manipulieren. Dazu will ich mich hier einklinken: [https://github.com/shopware/shopware/bl … e.php#L257](https://github.com/shopware/shopware/blob/b1dd7ea5ad38b2ba9d3fe3254c53be1208362ccb/engine/Shopware/Bundle/StoreFrontBundle/Service/Core/PriceCalculationService.php#L257) Ich kann mit jetzt auf den Product List Service hängen, und das komplette Produkt Object mnipulieren: ` Enlight\_Bootstrap\_AfterInitResource\_shopware\_storefront.list\_product\_service /\*\* \* @inheritdoc \*/ public function getList(array $numbers, Struct\ProductContextInterface $context) { $products = $this-\>service-\>getList($numbers, $context); /\*\*@var $product Struct\ListProduct\*/ foreach ($products as $product) { //Hier meine Manipulation } return $products; } ` Einfacher wäre es doch sicher, wenn ich direkt die Function “calculatePrice” manipulieren könnte. Das geht sicher auch irgendwie. Hat mir hierzu jemand eine Idee oder einen Denkanstoss? Danke

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [19. Oktober 2015 um 10:05 UTC](https://forum.shopware.com/t/service-extensions/31403/2 "2015-10-19T10:05:51Z")

</div>

Niemand eine Idee?

---

<div class="post-metadata">

**Author:** ![Oliver\_Skroblin](https://avatars.discourse-cdn.com/v4/letter/o/6bbea6/32.png) [@Oliver\_Skroblin](https://forum.shopware.com/u/Oliver_Skroblin)\
**Post date:** [19. Oktober 2015 um 10:56 UTC](https://forum.shopware.com/t/service-extensions/31403/3 "2015-10-19T10:56:05Z")

</div>

Hi, schau doch bitte in unsere Entwickler Dokumentation, dort ist alles genau beschrieben: [programmierung-f103/categoryfacet-im-frontend-nutzen-t29910.html](http://forum.shopware.com/programmierung-f103/categoryfacet-im-frontend-nutzen-t29910.html) Gruß Oliver

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [21. Oktober 2015 um 11:22 UTC](https://forum.shopware.com/t/service-extensions/31403/4 "2015-10-21T11:22:52Z")

</div>

Hallo Oliver, danke für deine Antwort. Dein Link verstehe ich nicht. Da geht es ja um die SearchBundle und die Filter etc. Ich habe die Doku jetzt schon ein paar mal gelesen und auch die Testplugins durchgeschaut. Ich erkläre jetzt noch mal mein Probem. ich will hier kein fertigen Code, sondern nur Denkanstöße. 1. Wo liegt der Unterscheid zwischen HauptService und UnterSrevices? Dazu habe ich nichts gefunden: ` <service id="shopware_storefront.list_product_service" class="Shopware\Bundle\StoreFrontBundle\Service\Core\ListProductService">
            <argument type="service" id="shopware_storefront.list_product_gateway"></argument>
            <argument type="service" id="shopware_storefront.graduated_prices_service"></argument>
            <argument type="service" id="shopware_storefront.cheapest_price_service"></argument>
            <argument type="service" id="shopware_storefront.price_calculation_service"></argument>
            <argument type="service" id="shopware_storefront.media_service"></argument>
            <argument type="service" id="shopware_storefront.marketing_service"></argument>
            <argument type="service" id="shopware_storefront.vote_service"></argument>
            <argument type="service" id="events"></argument>
        </service>` Da meine Änderungen mit dem Price zutun haben, muss ich auf price\_calculation\_service zugreifen. Das funktioniert im meinem Fall bereits. Der Zugriff funktioniert identisch, wie für list\_product\_service. D.h. bzgl. dem Zugriff gibt es keinen Unterschied von einem HauptService zu eine UnterService? 2. list\_product\_service gibt es nur eine public Function. Diese greift wiederum auf einige privat Functions zu. U.A. gibt es eine Funktion welche prüft ob es einen Kundengruppenrabatt gibt. Genau hier will ich eingreifen. Ich will Artikel von Kundenrabatt ausschließen. [https://github.com/shopware/shopware/bl … e.php#L276](https://github.com/shopware/shopware/blob/5.1/engine/Shopware/Bundle/StoreFrontBundle/Service/Core/PriceCalculationService.php#L276) Hier für hätte ich gerne den “Best Practise” Weg. Gibt es eine Möglichkeite genau an diese Stell zu kommen? Ich hoffe jetzt ist es etwas verständlicher.

---

<div class="post-metadata">

**Author:** ![Thomas](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/thomas/32/8167_2.png) [@Thomas](https://forum.shopware.com/u/Thomas)\
**Post date:** [21. Oktober 2015 um 23:39 UTC](https://forum.shopware.com/t/service-extensions/31403/5 "2015-10-21T23:39:03Z")

</div>

Evtl. hilft dir das hier weiter: [http://shopware-blog.com/additionaltext … schreiben/](http://shopware-blog.com/additionaltextservice-aus-dem-storefrontbundle-ueberschreiben/)

---

<div class="post-metadata">

**Author:** ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)\
**Post date:** [22. Oktober 2015 um 08:05 UTC](https://forum.shopware.com/t/service-extensions/31403/6 "2015-10-22T08:05:17Z")

</div>

Morgen Thomas, danke für den Link. An diesen Ansatz (Replace) hatte ich auch schon gedacht. Eig. wollte ich verhintern, dass ich diesen Service komplett ersetzen muss. Aber scheinbar gibt es keinen anderen Weg um an die privat function ran zu kommen.
