node-bigcommerce icon indicating copy to clipboard operation
node-bigcommerce copied to clipboard

Trying to get product metafields give 404

Open satyasaadhak opened this issue 5 years ago • 1 comments

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?

satyasaadhak avatar Feb 11 '20 12:02 satyasaadhak

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

syJSdev avatar May 19 '20 00:05 syJSdev