gpt4 book ai didi

api - Kentico 7 如何使用 API 访问新产品类型字段

转载 作者:行者123 更新时间:2023-12-04 22:20:17 29 4
gpt4 key购买 nike

我在站点管理器/文档类型中的 Kentico 中创建了一个新的产品文档类型。我添加了新字段,例如尺寸和颜色。在电子商务选项卡中,我选择了“文档类型表示产品类型”。这使用自定义字段在数据库中为我的新文档类型创建了一个新表。

我可以在 cms desk/content 的产品部分添加此类新内容项。但在我的代码中,我不确定如何最好地使用 API 来访问我为此文档类型创建的自定义字段。当它只是一个产品时,我会使用以下内容:

CMS.Ecommerce.SKUInfoProvider.GetInfoById(PredefinedObjectType.SKU, id)

我仍然可以使用此方法获取我的新产品类型的 sku 信息,但我看不到如何访问我为我的新产品类型创建的自定义字段。

此外,我不确定 Kentico 如何将带有我针对此产品类型的自定义字段的新表绑定(bind)到 COM_SKU 表

最佳答案

Kentico 将 CMS 与 EMS(电子商务管理系统)联系起来的方式并不是很明显。

它试图让它们相对独立。当您在树中创建产品实例时,Kentico 会做两件事:

  • 将电子商务相关数据存储在新行 COM_SKU 表中(可在代码中作为 SKUInfo 对象访问)

  • 创建文档类型为 Product(或从产品继承的文档类型)的新 CMS_Tree 行(以及匹配的 CMS_Document 行)

数据库只保存一条信息来链接两个表 - CMS_Tree.SKUNodeID,对于不是 SKU 产品的文档,它是 null

这些表中的任何一个都允许您通过 Kentico Site Manager CMS 添加自定义字段。您可以在产品的文档类型中创建自定义字段,或作为 SKU 的自定义字段(在 SiteManager->Development->System Tables->COM_SKU 中)。

应根据您的信息是否与 EMS 相关来决定将其存储在何处。

查看您的问题,您已经在对象的文档部分定义了自定义字段,因此可以使用以下方式访问它们:

TreeNode productTreeNode = TreeHelper.SelectSingleNode("/Home/TreeNode/Path/To/Product");
object customValue = productTreeNode.GetValue("[your_custom_field_name]");

但是,如果您需要访问您在电子商务部分(SKUInfo 对象)中定义的自定义字段,则稍微困难一些。如果您有权访问 skuID:

SKUInfo skuObject = SKUInfoProvider.getSKUInfo(skuID);
skuObject.GetValue("[your_custom_field_name]");

如果您有权访问产品的 TreeNode,它应该可以转换为 SKUTreeNode,并且 SKUInfo 对象(以及作为其 skuID)从那里访问:

SKUTreeNode skuNode = CurrentDocument as SKUTreeNode;
if( skuNode != null ) {
skuNode.SKU.SKUID;
}

另请注意:

可以有多个树节点分配一个 SKU 产品。您还可以在树中创建产品,而无需创建匹配的 SKU 对象。 (在 CMS 中创建实例时应该有一个复选框)

关于api - Kentico 7 如何使用 API 访问新产品类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267179/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com