在BigCommerce

时间:2016-09-09 21:10:23

标签: bigcommerce

是否可以在BigCommerce中为自定义页面动态获取和插入产品价格?

我正在创建一个详细介绍BigCommerce中特定产品的自定义页面,我希望能够从系统中获取每个产品的产品价格,而不是在页面上手动设置它。

这样,如果产品的价格发生变化,价格当然会在自定义页面上动态变化。

我知道BigCommerce使用%%GLOBAL_ProductPrice%%来调用产品页面和整个网站的其他代码中的价格,但无法弄清楚如何在自定义页面上使用此功能列出的产品。

1 个答案:

答案 0 :(得分:0)

我非常喜欢@ tim-diztinct的答案,如果可以的话我会建议你这样做。

但除此之外,替代/困难的方法是使用JavaScript直接从实时产品页面获取价格。

在BigCommerce中,您可以使用以下两种标准化网址之一快速访问产品页面:
 1. store_url.com/products.php?product=product name here
 2. store_url.com/products.php?productId=productIdHere(我的首选)

那么如果您想从产品页面获取实时价格,您可以对产品页面进行Ajax调用,并解析内容以获取价格......

/**
 * Makes an HTTP GET to an external product page
 * and parses that page for the product's current price.
 * @param pid <int> - The product ID to search for. 
 * @return Promise  - Resolved with product price, reject on fail. 
 */
function getProductPrice(pid) {
  // Ensure pid parameter set:
  if (typeof pid == 'undefined') {
    throw new Error('Missing product ID.');
  } else {
    // Ensure pid is a non decimal number:
    pid = parseInt(pid);
  }
  // Return promise to contain the results...
  return new Promise(function(resolve, reject) {
    // Make an Ajax GET request to the product page:
    $.get("site_url_here.com/products.php?productId=" +pid, function(res) {
      // If request successful:
      if (res) {
        // The content for the product page is loaded in 'res'. 
        // The Price should be contained within a meta element within a div containing the class name 'Value'.
        // Below, we parse the html response for the meta element containing the price...
        resolve($(res).find('.Value > meta'').attr('content'));
      // Else request failed:
      } else {
        reject(false);
      }
    });
  });
}

//** Calling the above function **//
getProductPrice(25).then(function(price) {
  // Do something with the price (insert it into your custom page?)
  alert('The product price is ' +price);
}).catch(function(e) {
  console.log('Error getting product price - ', e);
});

我的最后一条建议是让您有所收获,因为我认为您的自定义页面上会有多个产品,因此您需要获得每种产品的价格。

我的建议是将产品ID包含在与每个产品相关的某个位置(例如ID或隐藏元素)。将所有ID解析为数组,以便forEach值可以调用getProductPrice函数,然后将其注入自定义页面中负责显示价格的元素!

奖励:将价格保存在每隔X个时间间隔到期的cookie中,并从那里读取重复的客户端请求。

/