【问题标题】:ADNStoreFront Multistore AddtoCartForm function crashing pageADNStoreFront Multistore AddtoCartForm 功能崩溃页面
【发布时间】:2021-05-15 08:33:22
【问题描述】:

我正在尝试修改 Aspdotnetstorefront Multistore 的现有 XML 包。它是一个内部 XML 包,用于显示特定产品的变体。我首先要做的是按原样复制粘贴整个代码,然后将其放入新的自定义 XML 包中。问题是它在原始包中工作正常,但在复制包中不能正常工作。当我尝试运行它时,“AddtoCartForm”函数使页面崩溃并显示以下错误,同时以红色显示包含函数调用的行:

此方法需要 HtmlHelper。确保在调用 RunXmlPackage 方法时指定一个

函数格式为:

<xsl:value-of select="aspdnsf:AddtoCartForm(ProductID, VariantID, 1, 1, $SelectedSize, $SelectedColor)" disable-output-escaping="yes"/>

为了确定,我删除了该函数的行,然后其他一切正常。我不知道这里有什么问题。除非通过调用包的 url 的结构,否则一切都是相同的:

内部包是:\product\123456

自定义包为:\topic\packagename?ProductID=123456

我检查了 SP 生成的 XML、运行时和请求的数据,这两种情况基本相同。 ProductID 和 VariantID 值那里。 SelectedColor 和 SelectedSize 在 XML 中是 not(甚至在内部包中也没有),因此它可能只是提供 null 值,而且可能没有必要。

还有更多。如果我像这样从 url 中抑制 productid 值:

\topic\packagename

它不会使页面崩溃(但也不会渲染,因为不会有任何值要处理)。

无论如何,我看不出为什么它不能只在查询字符串中传递变量(这基本上就是它在原始包中所做的,即使是不同的格式)和它到达那里的 var 值(productid)。然而,似乎确实是 url 格式不令包装满意,但对我来说并没有太大意义。我已经结束了几天,但我所做的一切似乎都没有产生任何积极的结果。 :-(

我在网上查找了一些文档,但没有走运,也没有找到任何东西。在极端情况下,我会尝试获得 Vortx 支持(他们通常会回答我提供一些有价值的线索),但这次似乎对于这个特定问题没有任何帮助,除非我支付淫秽的小时费,不幸的是这是不可能的...大声笑!

有什么想法吗?

更新:我们不使用 Multistore 常规搜索工具。由于我们产品(回收的汽车零件)的性质,我们有一个自定义搜索工具,当我们没有确切的零件时,它将尝试找到可能符合用户需求的“相似”项目。我不知道您是否知道,但几个机械汽车零件可以在不同型号和制造商之间互换(如交流发电机、交流压缩机、电池、悬架、冷却系统等),所以当我们的一位客户需要修理零件时他的车他不会告诉我们零件代码;相反,他会告诉我们零件的车型、年份和通用名称,以便我们尝试为他找到零件。这确实意味着某个卡罗拉零件将完全适合本田雅阁等等。有时我们有一些可能适合他的车的零件,但我们不确定。发生这种情况时,我们将向客户展示这些零件,他将决定是否可以抓住机会。为了让客户感到舒适,我们希望在同一页面中显示所有这些部件,但由于它们通常是不同产品的变体,我们不能为此目的使用常规产品页面(因为产品页面只会显示 ONE 产品的变体时间)。出于这个原因,我将编写一个包 - 产品页面的修改版本 - 可以做到这一点,但我正在努力使用 AddtoCartForm 功能。事实上,我只是通过直接访问 /shoppingcart/addtocart 脚本将商品添加到购物车中找到了一种解决方法,现在我的问题是在将商品添加到购物车后强制它返回到特定的网址...... em>

【问题讨论】:

    标签: html-helper aspdotnetstorefront


    【解决方案1】:

    该错误与能够正确填写 html 助手的主题令牌有关。

    我确实质疑为什么要针对某个主题进行测试。为了测试新产品的 xmlpackage,我通常会在测试环境中只为一个产品更改 xmlpackage。

    如果无法更改产品 xmlpackage,那么我建议改用 XmlPackageController/engine。这在“自行调用 XML 包”标题下的 https://help.aspdotnetstorefront.com/1000/xml_packages.htm 页上进行了记录。如果使用 XmlPackageController,请确保在 xmlpackage 中将 allowengine 属性设置为 true,否则也会引发错误。

    【讨论】:

    • 我刚刚检查了您的链接,是的,而是使用引擎(自行调用 XML 包)将其作为一个主题进行测试。非常感谢朋友,我用这个在桌子上敲了一个多星期! :-)
    • 在我理解的同一产品页面上使用变体和显示变体相同的问题。只是我没有使用太多,可能会从 vesion 10.0.24 的 product.VariantsInList.xml.config 或 product.VariantsInGrid.xml.config 的 xmlpackage 开始。这仍然不能解释为什么使用主题来显示产品.
    • 好吧,这些年来在 SF 中自定义页面,我想我已经习惯了把所有事情都作为主题来做。大多数时候,我所做的 xml 包是用于站点部分的。这是我第一次必须制作一个自定义页面来展示产品,因为我习惯将其作为一个主题结束。无论如何,在您的帮助下,它很好地解决了。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    相关资源
    最近更新 更多