Hi, I think that crawler is searching for "Url" string in HTML code and afterwards trying to extract it.
Rename data-getFilteredProductsUrl= to data-getFilteredProductsAddr= in two files NopFilters.cshtml and Filters.min.js
. ( I also found , that crawler's IP address belongs to Blue Coat Systems , so definitely not Google )
I have added to custom robots.txt
Disallow: /catalog7spikes/getfilteredproducts
. But problems still persists, because other crawlers than Google do not respect it.
How to manually add the route to the robots.txt file ?
When webspiders are parsing page with Ajax Filter, they are causing this error in log file.
This happens quite frequently .I think this is because of code part in rendered HTML : data-getFilteredProductsUrl="/Catalog7Spikes/GetFilteredProducts"
.Can someone explain me how I can block such things ?
--- System.ArgumentException: The parameters dictionary contains a null entry for parameter 'categoryId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult GetFilteredProducts(Int32, Int32, Int32, SevenSpikes.Nop.Plugins.AjaxFilters.Models.PriceRangeFilterSlider.PriceRangeFilterModel7Spikes, SevenSpikes.Nop.Plugins.AjaxFilters.Models.SpecificationFilter.SpecificationFilterModel7Spikes, SevenSpikes.Nop.Plugins.AjaxFilters.Models.AttributeFilter.AttributeFilterModel7Spikes, SevenSpikes.Nop.Plugins.AjaxFilters.Models.ManufacturerFilter.ManufacturerFilterModel7Spikes, SevenSpikes.Nop.Plugins.AjaxFilters.Models.VendorFilter.VendorFilterModel7Spikes, Nop.Web.Models.Catalog.CatalogPagingFilteringModel, SevenSpikes.Nop.Plugins.AjaxFilters.Models.OnSaleFilter.OnSaleFilterModel7Spikes, System.String, Boolean)' in 'SevenSpikes.Nop.Plugins.AjaxFilters.Controllers.Catalog7SpikesController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters at System.Web.Mvc.ActionDescriptor.ExtractParameterFromDictionary(ParameterInfo parameterInfo, IDictionary`2 parameters, MethodInfo methodInfo) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndD
Hello everyone,
We have added an attribute set called Availability (Availability , Not Available ) The problem is , that with Nop Ajax Filter we use v3.5 ( not pro version) , even when this attribute is set as Default Product Sort Option is not forcing on the load of page to sort products by this attribute. Only when click is made on checkbox on left sidebar , page resorting products properly .
My question is : does PRO version solves this ?