"La référence d'objet n'est pas définie à une instance d'un objet" erreur lors de la tentative de mise à jour d'un Produit avec ShipStation de l'API

0

La question

Je vais avoir des difficultés pour mettre à jour un produit en Shipstation.

Je suis été à l'aide de ces 2 liens pour voir comment je dois le format de la réponse:

https://www.shipstation.com/docs/api/products/update/ https://www.any-api.com/shipstation_com/shipstation_com/docs/Products/_products_productId_/PUT

Je crois que je suis en suivant correctement, mais je reçois toujours un message d'erreur 500 en disant: "la référence d'Objet n'est pas définie à une instance d'un objet".

J'ai été en utilisant la requête GET pour obtenir des attributs du produit. Puis-je mettre à jour les attributs qui doivent être modifiés, et de le stocker dans data (qui est un tableau d'objets). Puis-je utiliser la requête PUT pour envoyer les données.

C'est le code correspondant:

function updateProducts(authString, data) {

  var baseProductUrl = `https://ssapi.shipstation.com/products/`;

  for(var d = 0; d < data.products.length; d++) { //for each product I'd like to update...

    var raw = data.products[d];
    raw = JSON.stringify(raw);

    var requestOptions = { 

      method: 'PUT',
      headers: {
        "Authorization": `Basic ${authString}`,
        "Content-Type": `application/json`,       
      },

      body: raw,
      redirect: 'follow'
    };

    var productUrl = `${baseProductUrl}${data.products[d].productId}`;
    UrlFetchApp.fetch(productUrl, requestOptions);
  }
}

C'est ce que raw (les données que je suis de l'envoyer à ShipStation) ressemble à: Les valeurs null sont tout simplement ce que je reçois de la requête GET. Je préfère ces attributs rester vide.

{"aliases":null,
"productId":123456789, //placeholder
"sku":"sku", //placeholder
"name":"UV Bulb - 1GPM - 10\"",
"price":19.99,
"defaultCost":null,
"length":2,
"width":2,
"height":13,
"weightOz":7,
"internalNotes":null,
"fulfillmentSku":null,
"active":true,
"productCategory":null,
"productType":null,
"warehouseLocation":null,
"defaultCarrierCode":null,
"defaultServiceCode":null,
"defaultPackageCode":null,
"defaultIntlCarrierCode":null,
"defaultIntlServiceCode":null,
"defaultIntlPackageCode":null,
"defaultConfirmation":null,
"defaultIntlConfirmation":null,
"customsDescription":"UV Bulb - 1GPM - 10\"", //attribute I'd like to update
"customsValue":9.99, //attribute I'd like to update
"customsTariffNo":null,
"customsCountryCode":"US",
"noCustoms":null,
"tags":null}

Si quelqu'un a des indices, ou quelqu'un a utilisé ShipStation API de l'avant et de faire une demande? Ce qui me manque?

1

La meilleure réponse

0

Dans votre script, comment au sujet de la modification suivante?

De:

var requestOptions = { 

  method: 'PUT',
  headers: {
    "Authorization": `Basic ${authString}`,
    "Content-Type": `application/json`,       
  },

  body: raw,
  redirect: 'follow'
};

Pour:

var requestOptions = { 
  method: 'PUT',
  headers: {
    "Authorization": `Basic ${authString}`,
  },
  payload: raw,
  contentType: "application/json",
};

Référence:

2021-11-24 00:30:32

Ne peux pas croire que c'était une solution simple. Merci beaucoup! btw charge utile dans votre réponse est mal orthographié
oscark

@oscark Merci pour la réponse. Je suis heureux que votre problème a été résolu. À propos de les écorcher, merci pour le vérifier. Je voudrais le modifier. Merci à vous.
Tanaike

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................