getconversio / node-bigcommerce

A node module for authentication and use with the BigCommerce API
MIT License
93 stars 53 forks source link

Trying to get product metafields give 404 #79

Open satyasaadhak opened 4 years ago

satyasaadhak commented 4 years ago

I am trying to use the /catalog/products/{product_id}/metafields endpoint to fetch metafields for the product. This product whose id I used exists, it has a metafields and the store api credentials are valid. But I keep getting this response.
Metafield Request Response

Why is this so and how to get around this problem? I have also tried /products/{product_id}/metafields as the get request endpoint.

The code I am trying.

const bigCommerce = new BigCommerce({
  storeHash: 'xxxxxxxx',
  clientId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  accessToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
  responseType: 'json',
});

module.exports = {
  fetchProductMetafields: productId => {

    return bigCommerce.get(`/catalog/products/${productId}/metafields`)
    .then(metafields => {
      return metafields;
    });
  }
}

Am I doing something wrong?

syJSdev commented 4 years ago

I am trying to use the /catalog/products/{product_id}/metafields endpoint to fetch metafields for the product. This product whose id I used exists, it has a metafields and the store api credentials are valid. But I keep getting this response. Metafield Request Response

Why is this so and how to get around this problem? I have also tried /products/{product_id}/metafields as the get request endpoint.

The code I am trying.

const bigCommerce = new BigCommerce({
  storeHash: 'xxxxxxxx',
  clientId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  accessToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
  responseType: 'json',
});

module.exports = {
  fetchProductMetafields: productId => {

    return bigCommerce.get(`/catalog/products/${productId}/metafields`)
    .then(metafields => {
      return metafields;
    });
  }
}

Am I doing something wrong?

Hi @satyasaadhak I think you should add the apiVersion attribute when you create the bigCommerce.

const bigCommerce = new BigCommerce({
  storeHash: 'xxxxxxxx',
  clientId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  accessToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
  responseType: 'json',
  apiVersion: "v3", // default is v2. but v2 doesn't support /catalog
});

See readme for more detail.

image