Add new Action to a existing Magento route - Magento2
Hello guys how are you?,
Here is my scenario, I want to add a new Action to an existing Magento route, what this mean, for example under the MyAccount section you can find /sales/order/[view, history, etc] right? I want to add a index like a a Order section dashboard.
I try to implement this solution:
https://stackoverflow.com/questions/34908125/magento-2-controller-post-throwing-404-error
without lucky.
Any suggestion?
magento2 controllers
add a comment |
Hello guys how are you?,
Here is my scenario, I want to add a new Action to an existing Magento route, what this mean, for example under the MyAccount section you can find /sales/order/[view, history, etc] right? I want to add a index like a a Order section dashboard.
I try to implement this solution:
https://stackoverflow.com/questions/34908125/magento-2-controller-post-throwing-404-error
without lucky.
Any suggestion?
magento2 controllers
add a comment |
Hello guys how are you?,
Here is my scenario, I want to add a new Action to an existing Magento route, what this mean, for example under the MyAccount section you can find /sales/order/[view, history, etc] right? I want to add a index like a a Order section dashboard.
I try to implement this solution:
https://stackoverflow.com/questions/34908125/magento-2-controller-post-throwing-404-error
without lucky.
Any suggestion?
magento2 controllers
Hello guys how are you?,
Here is my scenario, I want to add a new Action to an existing Magento route, what this mean, for example under the MyAccount section you can find /sales/order/[view, history, etc] right? I want to add a index like a a Order section dashboard.
I try to implement this solution:
https://stackoverflow.com/questions/34908125/magento-2-controller-post-throwing-404-error
without lucky.
Any suggestion?
magento2 controllers
magento2 controllers
edited May 23 '17 at 12:37
Community♦
1
1
asked Jun 10 '16 at 13:49
AleGrinGoAleGrinGo
236211
236211
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
So, you need to create a custom extension with the following file structure (for example adding new action to checkout/cart/):
We need the following files to make it work:
1) registration.php
<?php
MagentoFrameworkComponentComponentRegistrar::register(
MagentoFrameworkComponentComponentRegistrar::MODULE,
'Amasty_Checkout',
__DIR__
);
2) composer.json
{
"name": "amasty/checkout",
"description": "Amasty Test",
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"amasty/base": "*"
},
"type": "magento2-module",
"version": "1.0.0",
"license": [
"Commercial"
],
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
"Amasty\Checkout\": ""
}
}
}
3) module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Amasty_Checkout" schema_version="1.0.0" setup_version="1.0.0">
<sequence>
<module name="Magento_Checkout"/>
</sequence>
</module>
4) routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="checkout">
<module name="Amasty_Checkout" />
</route>
</router>
</config>
5) Test.php (adding /test/ action)
<?php
namespace AmastyCheckoutControllerCart;
class Test extends MagentoCheckoutControllerCartAdd
{
public function execute()
{
die('asdasdasd');
}
}
And this is the result:
thank you so much for the answer. I didn't have time to check the fix yet. I'll let you now how was
– AleGrinGo
Jun 23 '16 at 3:11
@Amasty, I want to add new custom tab for customer account.Could you please guide how I can do this?
– mageDev0688
May 15 '17 at 11:13
@Amasty inroutes.xml
file you have to specify onlyid
attribute ofroute
node, and you are strongly advised to use abefore
orafter
tag's attribute to control the order Magento will check for matches in, to avoid accidental overrides of existing core controllers
– Cristiano Casciotti
Jul 12 '17 at 10:04
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f120389%2fadd-new-action-to-a-existing-magento-route-magento2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
So, you need to create a custom extension with the following file structure (for example adding new action to checkout/cart/):
We need the following files to make it work:
1) registration.php
<?php
MagentoFrameworkComponentComponentRegistrar::register(
MagentoFrameworkComponentComponentRegistrar::MODULE,
'Amasty_Checkout',
__DIR__
);
2) composer.json
{
"name": "amasty/checkout",
"description": "Amasty Test",
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"amasty/base": "*"
},
"type": "magento2-module",
"version": "1.0.0",
"license": [
"Commercial"
],
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
"Amasty\Checkout\": ""
}
}
}
3) module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Amasty_Checkout" schema_version="1.0.0" setup_version="1.0.0">
<sequence>
<module name="Magento_Checkout"/>
</sequence>
</module>
4) routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="checkout">
<module name="Amasty_Checkout" />
</route>
</router>
</config>
5) Test.php (adding /test/ action)
<?php
namespace AmastyCheckoutControllerCart;
class Test extends MagentoCheckoutControllerCartAdd
{
public function execute()
{
die('asdasdasd');
}
}
And this is the result:
thank you so much for the answer. I didn't have time to check the fix yet. I'll let you now how was
– AleGrinGo
Jun 23 '16 at 3:11
@Amasty, I want to add new custom tab for customer account.Could you please guide how I can do this?
– mageDev0688
May 15 '17 at 11:13
@Amasty inroutes.xml
file you have to specify onlyid
attribute ofroute
node, and you are strongly advised to use abefore
orafter
tag's attribute to control the order Magento will check for matches in, to avoid accidental overrides of existing core controllers
– Cristiano Casciotti
Jul 12 '17 at 10:04
add a comment |
So, you need to create a custom extension with the following file structure (for example adding new action to checkout/cart/):
We need the following files to make it work:
1) registration.php
<?php
MagentoFrameworkComponentComponentRegistrar::register(
MagentoFrameworkComponentComponentRegistrar::MODULE,
'Amasty_Checkout',
__DIR__
);
2) composer.json
{
"name": "amasty/checkout",
"description": "Amasty Test",
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"amasty/base": "*"
},
"type": "magento2-module",
"version": "1.0.0",
"license": [
"Commercial"
],
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
"Amasty\Checkout\": ""
}
}
}
3) module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Amasty_Checkout" schema_version="1.0.0" setup_version="1.0.0">
<sequence>
<module name="Magento_Checkout"/>
</sequence>
</module>
4) routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="checkout">
<module name="Amasty_Checkout" />
</route>
</router>
</config>
5) Test.php (adding /test/ action)
<?php
namespace AmastyCheckoutControllerCart;
class Test extends MagentoCheckoutControllerCartAdd
{
public function execute()
{
die('asdasdasd');
}
}
And this is the result:
thank you so much for the answer. I didn't have time to check the fix yet. I'll let you now how was
– AleGrinGo
Jun 23 '16 at 3:11
@Amasty, I want to add new custom tab for customer account.Could you please guide how I can do this?
– mageDev0688
May 15 '17 at 11:13
@Amasty inroutes.xml
file you have to specify onlyid
attribute ofroute
node, and you are strongly advised to use abefore
orafter
tag's attribute to control the order Magento will check for matches in, to avoid accidental overrides of existing core controllers
– Cristiano Casciotti
Jul 12 '17 at 10:04
add a comment |
So, you need to create a custom extension with the following file structure (for example adding new action to checkout/cart/):
We need the following files to make it work:
1) registration.php
<?php
MagentoFrameworkComponentComponentRegistrar::register(
MagentoFrameworkComponentComponentRegistrar::MODULE,
'Amasty_Checkout',
__DIR__
);
2) composer.json
{
"name": "amasty/checkout",
"description": "Amasty Test",
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"amasty/base": "*"
},
"type": "magento2-module",
"version": "1.0.0",
"license": [
"Commercial"
],
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
"Amasty\Checkout\": ""
}
}
}
3) module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Amasty_Checkout" schema_version="1.0.0" setup_version="1.0.0">
<sequence>
<module name="Magento_Checkout"/>
</sequence>
</module>
4) routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="checkout">
<module name="Amasty_Checkout" />
</route>
</router>
</config>
5) Test.php (adding /test/ action)
<?php
namespace AmastyCheckoutControllerCart;
class Test extends MagentoCheckoutControllerCartAdd
{
public function execute()
{
die('asdasdasd');
}
}
And this is the result:
So, you need to create a custom extension with the following file structure (for example adding new action to checkout/cart/):
We need the following files to make it work:
1) registration.php
<?php
MagentoFrameworkComponentComponentRegistrar::register(
MagentoFrameworkComponentComponentRegistrar::MODULE,
'Amasty_Checkout',
__DIR__
);
2) composer.json
{
"name": "amasty/checkout",
"description": "Amasty Test",
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"amasty/base": "*"
},
"type": "magento2-module",
"version": "1.0.0",
"license": [
"Commercial"
],
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
"Amasty\Checkout\": ""
}
}
}
3) module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Amasty_Checkout" schema_version="1.0.0" setup_version="1.0.0">
<sequence>
<module name="Magento_Checkout"/>
</sequence>
</module>
4) routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="checkout">
<module name="Amasty_Checkout" />
</route>
</router>
</config>
5) Test.php (adding /test/ action)
<?php
namespace AmastyCheckoutControllerCart;
class Test extends MagentoCheckoutControllerCartAdd
{
public function execute()
{
die('asdasdasd');
}
}
And this is the result:
edited 8 mins ago
AleGrinGo
236211
236211
answered Jun 17 '16 at 9:02
AmastyAmasty
6,16211354
6,16211354
thank you so much for the answer. I didn't have time to check the fix yet. I'll let you now how was
– AleGrinGo
Jun 23 '16 at 3:11
@Amasty, I want to add new custom tab for customer account.Could you please guide how I can do this?
– mageDev0688
May 15 '17 at 11:13
@Amasty inroutes.xml
file you have to specify onlyid
attribute ofroute
node, and you are strongly advised to use abefore
orafter
tag's attribute to control the order Magento will check for matches in, to avoid accidental overrides of existing core controllers
– Cristiano Casciotti
Jul 12 '17 at 10:04
add a comment |
thank you so much for the answer. I didn't have time to check the fix yet. I'll let you now how was
– AleGrinGo
Jun 23 '16 at 3:11
@Amasty, I want to add new custom tab for customer account.Could you please guide how I can do this?
– mageDev0688
May 15 '17 at 11:13
@Amasty inroutes.xml
file you have to specify onlyid
attribute ofroute
node, and you are strongly advised to use abefore
orafter
tag's attribute to control the order Magento will check for matches in, to avoid accidental overrides of existing core controllers
– Cristiano Casciotti
Jul 12 '17 at 10:04
thank you so much for the answer. I didn't have time to check the fix yet. I'll let you now how was
– AleGrinGo
Jun 23 '16 at 3:11
thank you so much for the answer. I didn't have time to check the fix yet. I'll let you now how was
– AleGrinGo
Jun 23 '16 at 3:11
@Amasty, I want to add new custom tab for customer account.Could you please guide how I can do this?
– mageDev0688
May 15 '17 at 11:13
@Amasty, I want to add new custom tab for customer account.Could you please guide how I can do this?
– mageDev0688
May 15 '17 at 11:13
@Amasty in
routes.xml
file you have to specify only id
attribute of route
node, and you are strongly advised to use a before
or after
tag's attribute to control the order Magento will check for matches in, to avoid accidental overrides of existing core controllers– Cristiano Casciotti
Jul 12 '17 at 10:04
@Amasty in
routes.xml
file you have to specify only id
attribute of route
node, and you are strongly advised to use a before
or after
tag's attribute to control the order Magento will check for matches in, to avoid accidental overrides of existing core controllers– Cristiano Casciotti
Jul 12 '17 at 10:04
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f120389%2fadd-new-action-to-a-existing-magento-route-magento2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown