/ API / Notas de Pedido / UnaSincronización de una Nota de Pedido

Ruta de acceso: http://www.bee2bee/syncro/order

Este servicio contempla el envío de sólo una Nota de Pedido. Luego de procesar, el resultado pudo haber sido:

  • agregar la Nota como nueva,
  • modificar una existente previamente (marca como eliminada la anterior y crea una nueva)
  • marcar como eliminada una existente

Ejemplo

Veamos un ejemplo de objeto XML de envío:

<syncro_order>
    <appkey>19efd346ddca</appkey> 
    <ref>31870-171</ref> 
    <to-supplier>7632</to-supplier> 
    <deliver-to>PA</deliver-to> 
    <product-code>13237</product-code> 
    <description>BALANCIN 312</description> 
    <due-date type="date">2008-03-17</due-date> 
    <quantity type="decimal">325.0</quantity> 
    <unit>U</unit>
    <confirmed type="boolean">true</confirmed> 
    <to_eliminate type="boolean">true</to_eliminate> 
</syncro_order> 

Los tags utilizados son:

  • ‘appkey’: es una Application Key (APPKEY) provista por Bee2Bee
  • ‘ref’: es el identificador primario de la Nota de Pedido. Debe ser único para cada Nota de Pedido. Es por esta referencia que se realiza las búsquedas para determinar si se agrega/modifica un registro.
  • ‘to-supplier’: código de proveedor.
  • ‘deliver-to’: código de sucursal.
  • ‘product-code’: es el código de producto (y es un string).
  • ‘description’: es la descripción del producto.
  • ‘due-date’: fecha de entrega (formato ‘YYYY-MM-DD’).
  • ‘quantity’: cantidad solicitada.
  • ‘unit’: unidades de la cantidad solicitada como lo especifica la tabla acá.
  • ‘to_eliminate’: es opcional. Si es ‘true’, se busca la Nota en Bee2Bee y se marca como eliminada.

Se puede probar el servicio con el siguiente comando curl, con el archivo que contiene el objeto XML llamado ‘nombre_archivo’:

curl -u lucas@mephisto.com:knikcata -H ‘Accept: application/xml’ -H ‘Content-Type: application/xml’ -d @nombre_archivo http://www.bee2bee.com.ar/syncro/orders </code>

El objeto de respuesta XML es

<hash> 
	<status>UPDATED</status> 
	<msg>>4231</msg> 
</hash> 

donde el tag 'msg' tiene el identificador único asignado por Bee2Bee, y 'status' puede ser:

  • 'UPDATED' si se modificó un registro (se eliminó el registro anterior y se creo uno nuevo)
  • 'CREATED' si se creo un nuevo registro
  • 'DELETED' si se borró el registro (utilizando la opción <to_eliminate>). En este caso 'status' devuelve 'nil'.
  • 'FAILED' si hubo algún error en la validación de los datos enviados. En este caso 'status' devuelve 'Validation of received message failed'
  • 'NO UPDATE' si no se realizó ningún cambio

Posibles fallos

<hash> 
  <status>FAILED</status> 
  <msg>>Validation of received message failed</msg> 
  <errors type"array"> 
	<error> 
	 <to-supplier>Missing 'to_supplier' tag</to-supplier> 
	</error> 
  </errors> 
</hash> 

o por ejemplo

<hash> 
	<status>FAILED</status> 
	<msg>>Validation of received message failed</msg> 
	<errors type"array"> 
	<error> 
		<search-supplier>Could not find the supplier code 6078</search-supplier> 
	</error> 
	</errors> 
</hash>