Close

General Discussion

Support
4 years ago
#7753 Quote
Avatar
  • Moderator
  • 996
PM
Topic for general discussion regarding Nop Previous/Next Product plugin
zootie
3 years ago
#9466 Quote
Avatar
  • 2
PM
Support to keep in context products in multiple categories?

Not sure if it is a bug or if it qualifies for general discussion or feature suggestion.

When a product is in multiple categories, its breadcrumb defaults to the first one regardless of how you arrive to the product page, and the Previous/Next plugin iterates through this same first category (rather than through the subset you were viewing).

It's discussed a bit over on http://www.nopcommerce.com/boards/t/8174/incorrect-breadcrumb-for-products-in-multiple-categories.aspx. This discussion is a bit dated, unsure if there is newer/better info (or if Previous/Next has improvements on this).

This is counterintuitive, specially for Previous/Next plugin. If you arrive to a product through a category (like "On Sale", or through a manufacturer), you'd expect to be able to iterate only products in this category (not to land back in another list of products).

Implementation might not be trivial. Using a session variable (as suggested in the nopC board) can be fragile (ie, if you are visiting multiple pages on the same session in multiple windows/tabs). I'm guessing it would require adding parameters to the links when browsing the site using cats or manufacturers (so the product page can build the correct breadcrumb and Previous/Next can iterate the correct subset).
zootie
3 years ago
#9467 Quote
Avatar
  • 2
PM
More info on breadcrumbs (assuming that Previous/Next would be affected by this logic)

"Category Mappings help!!! Bug?" and "Products belonging to multiple categories, which category to display when view product", which leads to "Breadcrumb issue when product is in more than one category" (closed) workitem.

I would think that parameters shouldn't affect SEO. You see plenty of stores that add context information to their products URLs.

For example, if you look for a WD4000FYYZ hard disk on NewEgg (or any other item on a sale page), you get a URL with plenty of parameters (including a source parameter). But if you search in Google for NewEgg and WD4000FYYZ, you get a clean URL with only 1 parameter (to the product). Presumably the link rel="canonical" header takes care of this.
Deni
3 years ago
#9480 Quote
Avatar
  • Moderator
  • 389
PM
Hi, 

We are really thinking now of the best implementation of this functionality and we will soon come up with the solution. Thanks for your suggestions!
Best Regards,
Mladen Staykov
Nop-Templates.com
mbreton
2 years ago
#11836 Quote
Avatar
  • 2
PM
When I try to see the product page, I have this: 

Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.
The details for the log entry.Full message:  System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.NullReferenceException: Object reference not set to an instance of an object. at SevenSpikes.Nop.Plugins.PrevNextProduct.Controllers.PrevNextProductController.tOUobdmHB(Product ) at SevenSpikes.Nop.Plugins.PrevNextProduct.Controllers.PrevNextProductController.PrevNextWidget() at lambda_method(Closure , ControllerBase , Object[] ) 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.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass4.<Wrap>b__3() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func) at System.Web.HttpServerUtil
hristian.dimov
2 years ago
#11839 Quote
Avatar
  • Moderator
  • 379
PM
mbreton wrote:
When I try to see the product page, I have this: 


Hi,

Could you please submit a ticket in our ticketing system specifying your product version.

You can find out your product version by going to Administration -> System -> System Information, click the Show button next to Loaded assemblies and search for SevenSpikes.Nop.Plugins.PrevNextProduct, Version=3.*.***.*****, Culture=neutral, PublicKeyToken=null

You can try also to update the plugin to the latest version following this article: https://www.nop-templates.com/how-to-update-a-nopcommerce-plugin

Hope this helps!
Regards,
Hristian Dimov
Nop-Templates.com