"Referencia a objeto no establecida como instancia de un objeto" error al intentar actualizar un Producto con ShipStation del API

0

Pregunta

Estoy teniendo problemas para actualizar un producto en Shipstation.

Estoy estado usando estos 2 enlaces para ver la forma en que debería formato de la respuesta:

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

Creo que estoy siguiendo correctamente, pero siempre me sale un error 500 mensaje diciendo: "referencia a Objeto no establecida como instancia de un objeto".

He estado usando la solicitud para obtener el producto de los atributos. Entonces puedo actualizar los atributos que necesitan ser cambiadas, y la almacenamos en data (que es un conjunto de objetos). Entonces yo uso la solicitud para enviar los datos.

Este es el código correspondiente:

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

Esto es lo que raw (los datos que yo estoy enviando a ShipStation) se ve así: Los valores null son simplemente lo que recibo de la petición GET. Prefiero los atributos de la estancia vacía.

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

Así que, ¿alguien tiene alguna pista, o alguien ha utilizado ShipStation el API de antes y hacer una solicitud PUT? Lo que me estoy perdiendo?

1

Mejor respuesta

0

En el script, ¿y la siguiente modificación?

De:

var requestOptions = { 

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

  body: raw,
  redirect: 'follow'
};

A:

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

Referencia:

2021-11-24 00:30:32

No puede creer que fue una simple corrección. Muchas gracias! btw carga en su respuesta está mal escrito
oscark

@oscark Gracias por responder. Me alegro de que tu problema se ha resuelto. Sobre el mal, gracias por su comprobación. Me gustaría modificarlo. Gracias, también.
Tanaike

En otros idiomas

Esta página está en otros idiomas

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