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í?