在Sitecore uCommerce中实现SEO友好URL

在Sitecore uCommerce中实现SEO友好URL,sitecore,sitecore-ucommerce,Sitecore,Sitecore Ucommerce,我正在实施一个默认的Sitecore uCommerce SEO友好URL机制,我遇到了一些问题 我查看了uCommerce的ItemResolver处理器,但仍然不理解uCommerce如何设置Sitecore上下文项。它似乎为Sitecore.Context.Item使用uCommerce项的Guid。不知何故,情况并非如此,但我看不到真正的Sitecore项被设置为上下文项。uCommerce项目上没有布局细节。还是我错了 private ID findsitecoreidorforpro

我正在实施一个默认的Sitecore uCommerce SEO友好URL机制,我遇到了一些问题

我查看了uCommerce的ItemResolver处理器,但仍然不理解uCommerce如何设置Sitecore上下文项。它似乎为Sitecore.Context.Item使用uCommerce项的Guid。不知何故,情况并非如此,但我看不到真正的Sitecore项被设置为上下文项。uCommerce项目上没有布局细节。还是我错了

private ID findsitecoreidorforproduct(int-productId)
{
IRepository repository=ObjectFactory.Instance.Resolve();
Product=repository.Get(productId);
如果(产品!=null)
{
返回新ID(product.Guid);
}
返回ID.Null;
}
那么它就

ID ID=this.findsitecoreidorforproduct(productId);
if(iD==iD.Null)
{
返回;
}
Context.Item=Context.Database.GetItem(iD);
我希望它是一个特定的Sitecore项目,带有显示产品详细信息的呈现。URL的类型为

http://sitename.com/productdetailpage/productname/c-25/p-125

如果你能向我解释一下uCommerce是如何进入真正的Sitecore项目并将其设置为Context.Item的,我想这对我来说已经足够了。

你走对了

它们将上下文项移动到其他项。我不喜欢他们处理url的方式,我需要其他ProductResolver

Ucommerce在自己的数据库中有产品,他们创建了一个数据提供商,将产品引入Sitecore

Ucommerce产品位于/Sitecore/Ucommerce/products下的Sitecore

商店、类别和子类别位于/sitecore/uCommerce/Store下

请查看此链接,了解ucommerce如何处理url:

我也有和你一样的问题,我创建了一个自定义的ItemResolver

我在httpRequestBegin管道上以这种方式定义了处理器


我在Sitecore中创建了一个名为ProductPage的新模板,我创建了一个名为ProductPage类型的新项目

我的要求是要有url,比如:/Shoes/Running/NIKEAIRZOOMPEGASUS33

浏览到/category/subcategory/productid时,将触发我的productResolver

我检查类别、子类别和产品是否存在

如果它们存在,我设置当前类别和当前产品

SiteContext.Current.CatalogContext.CurrentProduct=当前产品; //您需要检查产品是否属于当前类别

我将上下文项设置为产品项

var pathList=args.LocalPath.Split(new[]{'/},StringSplitOptions.removemptyentries.ToList();
var currentProduct=GetCurrentProduct(路径列表);
//在上面的函数中,我获取当前产品,检查类别和子类别是否正确
如果(currentProduct!=null)
{
SiteContext.Current.CatalogContext.CurrentProduct=CurrentProduct;
Sitecore.Context.Item=productItem;
}

实际上,uCommerce将uCommerce项设置为上下文项。甚至可以在其上设置布局细节(我将其放在模板标准值上)。然后你应该发布模板和uCommerce项目;并在Web数据库中创建实际的Sitecore项。所以最后我甚至开始喜欢它了。谢谢你的贡献,我会接受你的回答。