Snipcart 数据项-url 在本地主机上不工作

Snipcart data-item-url not working on localhost

我目前正在本地 (Wampserver) 上测试产品付款,但在确认付款时我总是遇到 'domain-crawling-failed' 无法解决的错误。

https://i.stack.imgur.com/HVxjd.png

https://i.stack.imgur.com/iU0zJ.png

我已经将 'localhost' 设置为 snipcart 上的默认域,并且还放置了子域:

https://i.stack.imgur.com/AhouQ.png

我带有购买按钮的产品在页面中:“http://localhost/Site/boutique”。这是代码:

<ul id="Product-List">
    <li class="product-item shown">
        <img src="assets/word.png">
        <div class="product-description">
            <h1>Word Guide Complet</h1>
        </div>
        <div class="product-pay">
            <h2>39,99 €</h2>
            <button class="buy-button snipcart-add-item"
            data-item-id="word"
            data-item-price="39.99"
            data-item-url="http://localhost/Site/boutique"
            data-item-description="Le guide complet de Word"
            data-item-image="assets/word.png"
            data-item-name="Word Guide Complet">
                Ajouter au panier
            </button>
        </div>
       
    </li>
    <li class="product-item shown">
        <img src="assets/excel.png">
        <div class="product-description">
            <h1>Excel Guide Complet</h1>
        </div>
        <div class="product-pay">
            <h2>39,99 €</h2>
            <button class="buy-button snipcart-add-item"
            data-item-id="excel"
            data-item-price="39.99"
            data-item-url="http://localhost/Site/boutique"
            data-item-description="Le guide complet de Excel"
            data-item-image="assets/excel.png"
            data-item-name="Excel Guide Complet">
                Ajouter au panier
            </button>
        </div>
        
    </li>
    <li class="product-item shown">
        <img src="assets/powerpoint.png">
        <div class="product-description">
            <h1>Powerpoint Guide Complet</h1>
        </div>
        <div class="product-pay">
            <h2>39,99 €</h2>
            <button class="buy-button snipcart-add-item"
            data-item-id="powerpoint"
            data-item-price="39.99"
            data-item-url="http://localhost/Site/boutique"
            data-item-description="Le guide complet de Powerpoint"
            data-item-image="assets/powerpoint.png"
            data-item-name="Powerpoint Guide Complet">
                Ajouter au panier
            </button>
        </div>
        
    </li>
</ul>

Snipcart 需要验证产品价格,为此它将尝试访问 data-item-url 并尝试在那里验证产品价格。

但是,Snipcart 无法访问您的 localhost。您必须将验证器数据放在 Snipcart 可以访问的地方。您可以通过多种方式做到这一点:

解决方案 1

例如,您可以在 codesandbox.io(或任何其他在线编辑器)上创建项目。在该项目中,创建一个 json 文件并将所有产品 idsprices 放入其中。现在您可以将 data-item-url 的值设置为指向 json。由于 codesandbox.io 项目在云端,Snipcart 将能够访问它并验证产品价格。此解决方案的缺点是,每当您拥有新产品或更改现有产品的价格时,您都需要手动修改此 json

注意:请记住将 codesandox.io 域添加到 Snipcart 仪表板中的 Snipcart's 域和子域。

codesandbox 项目中 json 文件的示例:

https://codesandbox.io/s/agitated-sid-6jqpl?file=/src/assets/all-products.json

解决方案 2

您可以使用 ngrok npm 包将数据传送到您的 localhost。这样 Snipcart 甚至可以在您的 localhost 中验证产品。此解决方案的缺点是您需要创建 ngrok 帐户才能使用该程序包。

ngrok 套餐:

https://www.npmjs.com/package/ngrok

解决方案 3

如果你问我,这是最好的解决方案。在您的服务器上创建一个端点,它将 return 数据库中的所有产品放入 json 文档中。当您这样做时,您可以将 data-item-url 设置为指向您服务器上的那个 endpoint。每当 Snipcart 需要验证某些内容时,它会调用您的服务器,并且您的服务器将始终 return 最新数据。您现在需要做的就是将您的服务器托管在云中的某个地方,这样 Snipcart 就可以访问该端点。

注意:请记住将您的服务器域添加到 Snipcart 仪表板中的 Snipcart's 域和子域。