"Odkaz na objekt nie je nastavený na inštanciu objektu" chyba pri pokuse o aktualizáciu Produktu s ShipStation to API

0

Otázka

Mám problémy s aktualizáciou produktu v Shipstation.

Som používali tieto 2 odkazy, ak chcete vidieť, ako by som mal formátovať odpoveď:

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

Verím, že som takto je to správne, ale vždy som sa dostať 500 chybové hlásenie "odkaz na Objekt nie je nastavený na inštanciu objektu".

Bol som pomocou GET požiadavku na získanie výrobku atribúty. Potom som sa aktualizovať atribúty, ktoré treba zmeniť, a uložiť ju v data (čo je pole objektov). Potom som pomocou DAŤ požiadavku na zaslanie údajov.

Toto je príslušný kód:

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);
  }
}

To je to, čo raw (údaje odosielam na ShipStation) vyzerá takto: Null hodnoty sú jednoducho to, čo dostávam od DOSTAŤ na požiadanie. Radšej by som tieto atribúty zostať prázdne.

{"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}

Takže má niekto nejaké tipy, alebo má niekto používa ShipStation to API pred a hotovo DAŤ žiadosť? Čo mám chýba?

1

Najlepšiu odpoveď

0

V skriptu, ako sa o tieto úpravy?

Od:

var requestOptions = { 

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

  body: raw,
  redirect: 'follow'
};

K:

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

Odkaz:

2021-11-24 00:30:32

Nemôžem uveriť, že to bolo také jednoduché. Ďakujem moc! btw zaťaženie vo vašej odpovedi je chybne
oscark

@oscark Ďakujem za odpoveď. Som rád, že problém bol vyriešený. O misspell, ďakujem za kontrole. Ja by som chcel menit. Ďakujem, príliš.
Tanaike

V iných jazykoch

Táto stránka je v iných jazykoch

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