# Add new Action in Controllers

**URL:** <https://forum.shopware.com/t/add-new-action-in-controllers/36870>\
**Category:** Programmierung\
**Created:** [20. Mai 2016 um 07:03 UTC](https://forum.shopware.com/t/add-new-action-in-controllers/36870 "2016-05-20T07:03:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![abdul.ahad2k14](https://avatars.discourse-cdn.com/v4/letter/a/4491bb/32.png) [@abdul.ahad2k14](https://forum.shopware.com/u/abdul.ahad2k14)\
**Post date:** [20. Mai 2016 um 07:03 UTC](https://forum.shopware.com/t/add-new-action-in-controllers/36870/1 "2016-05-20T07:03:40Z")

</div>

Hi guys,

Little suggestion needed. I want to extend Listing class and add new action, not modify any existing ones. How to do that? e.g. I want to add **showProductListAction** to **listing.php.**

BR

Ahad

---

<div class="post-metadata">

**Author:** ![steinsoftware](https://avatars.discourse-cdn.com/v4/letter/s/b487fb/32.png) [@steinsoftware](https://forum.shopware.com/u/steinsoftware)\
**Post date:** [20. Mai 2016 um 07:37 UTC](https://forum.shopware.com/t/add-new-action-in-controllers/36870/2 "2016-05-20T07:37:01Z")

</div>

By decoration the listing service and adding the desired functionality. Example can be found in the developer documentation from Shopware.

If you need a function to really just call occassionally&nbsp; you put it in your own controller.

---

<div class="post-metadata">

**Author:** ![abdul.ahad2k14](https://avatars.discourse-cdn.com/v4/letter/a/4491bb/32.png) [@abdul.ahad2k14](https://forum.shopware.com/u/abdul.ahad2k14)\
**Post date:** [20. Mai 2016 um 08:05 UTC](https://forum.shopware.com/t/add-new-action-in-controllers/36870/3 "2016-05-20T08:05:00Z")

</div>

@steinsoftware‍

Example will be helpful.

---

<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:** [21. Mai 2016 um 15:06 UTC](https://forum.shopware.com/t/add-new-action-in-controllers/36870/4 "2016-05-21T15:06:15Z")

</div>

@abdul.ahad2k14‍

```
$this->subscribeEvent(
    'Enlight_Controller_Action_Frontend_Listing_showProductList',
    'onControllerActionFrontendListingShowProductList'
);

public function onControllerActionFrontendListingShowProductList(Enlight_Event_EventArgs $args)
{
    /** @var $controller Enlight_Controller_Action */
    $controller = $args->getSubject();
    $view = $controller->View();
    $request = $controller->Request();
    
    // Do Actions

    return true;
}

```

The listener must return true to avoid to redirection to the 404 page.

---

<div class="post-metadata">

**Author:** ![abdul.ahad2k14](https://avatars.discourse-cdn.com/v4/letter/a/4491bb/32.png) [@abdul.ahad2k14](https://forum.shopware.com/u/abdul.ahad2k14)\
**Post date:** [27. Mai 2016 um 07:15 UTC](https://forum.shopware.com/t/add-new-action-in-controllers/36870/5 "2016-05-27T07:15:07Z")

</div>

@Shyim‍

Just Curious, how did you figure this out? I mean is it mentioned anywhere in Shopware documentation? Because I tried every document page but nowhere I found such solution.

---

<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. Mai 2016 um 08:27 UTC](https://forum.shopware.com/t/add-new-action-in-controllers/36870/6 "2016-05-27T08:27:55Z")

</div>

You are right it is not mentioned in the docs.

Searching in SourceCode is most the best solution =)
