使用stencil-utils
,我可以检索给定产品ID的产品信息。但是,我找不到任何关于如何将信息作为JSON响应检索而不是HTML模板的文档。
现在,我正在使用以下代码:
utils.api.product.getById(
847,
{},
(err, resp) => {
console.log(resp);
}
)
我希望我可以在params对象中传递一个参数,该参数将以JSON的形式返回响应,因此我只能提取有关产品的信息。
答案 0 :(得分:5)
使用{ params: { debug: "context" } }
可以很好地处理使用stencil start
创建的本地环境,但是一旦捆绑了&将您的主题上传到实际网站,它将停止工作。生产时禁用调试工具debug: "context"
和debug: "bar"
。
在接触到最初将我与此问题联系起来的大商业支持后,似乎这是他们提出的工作流程:
你必须使用虚拟把手模板,包含你需要的变量,并使用bigcommerce提供的自定义把手帮助器,{{json}}
- 似乎只运行JSON.stringify()
- 帮助器被定义here
utils.api.product.getById(
847, { template: 'path/to/template' }, (err, resp) => {
// Will print the name of the product.
console.log(resp.product.title);
});
我已成功path/to/template
为custom/template-name
并将把手模板放在templates/components/custom
文件夹中。我没有测试过从其他来源传递模板。
答案 1 :(得分:1)
因此看起来您可以通过向选项添加param
对象来传递其他参数。使用debug: "context"
,您可以检索整个页面上下文,然后您可以访问response.product
来获取产品信息。
utils.api.product.getById(
847,
{ params: { debug: "context" } },
(err, resp) => {
// Will print the name of the product.
console.log(resp.product.title);
}
)