"Odkaz na objekt není nastaven na instanci objektu" chyba při pokusu o aktualizaci Produktu s ShipStation je API

0

Otázka

Mám problémy s aktualizaci produktu v Shipstation.

Já jsem používal tyto 2 odkazy, aby viděli, jak jsem měla formát odpovědi:

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

Věřím, že jsem po to správně, ale vždycky jsem si 500 chybová zpráva "odkaz na Objekt není nastaven na instanci objektu".

Byl jsem pomocí požadavku GET dostat produkt atributy. Pak jsem aktualizovat atributy, které je třeba změnit, a ukládat je v data (což je pole objektů). Pak jsem se použít DAL žádost odeslat data.

Tohle je pří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, co raw (data posílám na ShipStation) vypadá takto: Null hodnoty jsou prostě to, co jsem obdržel od požadavku GET. Já bych raději ty atributy zůstat prázdné.

{"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á někdo nějaké rady, nebo má někdo používá ShipStation je API před a DÁT žádost? Co jsem chybí?

1

Nejlepší odpověď

0

Ve skriptu, jak se o následující změny?

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ůžu uvěřit, že to bylo tak jednoduché opravit. Děkuji moc! btw náklad v vaše odpověď je špatně napsané
oscark

@oscark Děkuji za odpověď. Jsem rád, že váš problém byl vyřešen. O chybně, díky za kontrolu to. Chtěl bych to změnit. Děkuji, taky.
Tanaike

V jiných jazycích

Tato stránka je v jiných jazycích

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