使用Stencil Utils

时间:2016-01-29 17:24:33

标签: javascript bigcommerce

使用stencil-utils,我可以检索给定产品ID的产品信息。但是,我找不到任何关于如何将信息作为JSON响应检索而不是HTML模板的文档。

现在,我正在使用以下代码:

utils.api.product.getById(
    847,
    {},
    (err, resp) => {
        console.log(resp);
    }
)

我希望我可以在params对象中传递一个参数,该参数将以JSON的形式返回响应,因此我只能提取有关产品的信息。

2 个答案:

答案 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/templatecustom/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);
    }
)