Agora que chegamos na terceira parte de nosso tutorial de criação de plugins, nós precisamos registrar as rotas para nosso plugin. As rotas (routes) do ASP.NET são responsáveis por mapear as requisições que chegam do browser para um determinado action do controller. Você pode encontrar maiores informações sobre rotas clicando aqui. Para registrar as rotas, siga os passos abaixo:

  1. Algumas interfaces (vimos as interfaces disponíveis na primeira parte de nosso tutorial) de plugin e a interface “IMiscPlugin” possuem o método “GetConfigurationRoute”. Esse método deve retornar uma rota para a action de seu controller que será usado para a configuração do plugin. Esse método informa ao nopCommerce qual a rota é usada para efetuar a configuração de seu plugin. Se seu plugin não possuir uma página de configuração, então o método “GetConfigurationRoute” deve retornar null. Por exemplo, veja o código abaixo:

    public void GetConfigurationRoute(out string actionName,
                out string controllerName,
                out RouteValueDictionary routeValues)
            {
                actionName = "Configure";
                controllerName = "PaymentAuthorizeNet";
                routeValues = new RouteValueDictionary()
                {
                    { "Namespaces", "Nop.Plugin.Payments.AuthorizeNet.Controllers" }, 
                    { "area", null }
                };
            }
  2. Essa etapa é opcional, e deve ser feita apenas se você precisar adicionar alguma rota customizada. Caso necessário, crie uma classe chamada RouteProvider.cs. Ela quem é responsável para informar as rotas de seu plugin ao nopCommerce. Por exemplo, a classe RouteProvider abaixo, adiciona uma nova rota, que pode ser acessada ao digitar a seguinte URL no browser http://www.yourStore.com/Plugins/PaymentPayPalStandard/PDTHandler (essa URL é utilizada pelo plugin do PayPal que acompanha o nopCommerce):

            public partial class RouteProvider : IRouteProvider
            {
                public void RegisterRoutes(RouteCollection routes)
                {
                    routes.MapRoute("Plugin.Payments.PayPalStandard.PDTHandler",
                        "Plugins/PaymentPayPalStandard/PDTHandler",
                        new { controller = "PaymentPayPalStandard", action = "PDTHandler" },
                        new[] { "Nop.Plugin.Payments.PayPalStandard.Controllers" }
                   );
                }
                public int Priority
                {
                    get
                    {
                        return 0;
                    }
                }
            }
    

Após instalar seu plugin, e criar um método para fazer sua configuração, você irá encontrar um link para a página de configuração de seu plugin acessando a página de gerenciamento de plugins, que pode ser acessado pelo menu Admin > Configuration > Plugins.