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?