wiki:api_tienda

API tienda

El API de la tienda responde en la url "/srv/apitienda/api". Las llamadas a este api se realizan mediante "POST" enviando un parámetro "data" consistente en un bloque json. El bloque json tiene dos atributos obligatorios:

  • apikey
  • action

El atributo "apikey" es personal y no debe ser distribuido, ya que es nuestra "contraseña" para acceder al servicio. El atributo "action" es el comando que indica al API la acción que deseamos realizar sobre la tienda.

El API de la tienda responde siempre con una cadena json con los siguientes atributos:

  • params Los parámetros que ha recibido el API
  • errno Un valor número que indica el error (si es distinto de 0) que se ha producido
  • errstr Una cadena con el error que se ha producido (si errno es distinto de 0)

Creación de comprador

action: "createcomprador"

Mediante este comando creamos un comprador nuevo. Si ya existe este no se crea de nuevo. Además de los atributos "key" y "action" necesita los atributos "nombre", "apellidos" y "mail" Además de la respuesta standard, este comando devuelve en el json de respuesta un ID de comprador bajo el atributo "comprador_id"

Ejemplo de llamada:

{
  "apikey"    : "xxxxxxxxxxxxxxxxxx",
  "action"    : "createcomprador",
  "nombre"    : "Xabier",
  "apellidos" : "Vázquez",
  "mail"      : "ejemplo@xa.bi"
}

Respuesta:

{
   "params" : {
      "action" : "createcomprador",
      "apellidos" : "Vázquez",
      "mail" : "ejemplo@xa.bi",
      "apikey" : "xxxxxxxxxxxxxxxxxx",
      "nombre" : "Xabier"
   },
   "errstr" : "",
   "comprador_id" : "1029",
   "errno" : 0
}

Creación de pedido

action: "createpedido"

Mediante este comando creamos un pedido asociándolo a un comprador previamente creado.

Además de los atributos "key" y "action" necesita los atributos:

  • comprador_id es el id del comprador que realiza el pedido.
  • direccion es una "hash" con los datos de facturación del pedido. Contiene los siguientes atributos:
    • nombre Nombre de la persona a la que se va a facturar. Si se trata de una empresa es la persona a la que iría la "atención"
    • apellidos Apellidos de la persona a la que se va a facturar. Si se trata de una empresa es la persona a la que iría la "atención"
    • entidad (si se trata de una empresa aquí se pondría el nombre de la empresa)
    • direccion1 dirección de facturación
    • ciudad
    • provincia
    • cp
    • pais
  • productos es un "array" que contiene los productos del pedido. Cada producto tiene una hash con "producto_id" y "cantidad"
  • facturacion_nif es el nif al que se va a emitir la factura
  • metodo_pago es el método de pago del pedido
  • cc cuenta corriente a la que se va a domiciliar el pago
  • cc_titular titular de la cuenta corriente para la domiciliación del pago
  • facturar_a_entidad (0|1) Se la factura va a nombre de la entidad (empresa) o no
  • observaciones se puede poner algún tipo de comentario.

Además de la respuesta standard, este comando devuelve en el json de respuesta un ID de pedido bajo el atributo "pedido_id"

Ejemplo de llamada:

{
  "apikey" : "xxxxxxxxxxxx",
  "action" : "createpedido",
  "comprador_id" : 1234,
  "direccion" : {
    "nombre" : "Xabier",
    "apellidos" : "Vázquez",
    "entidad" : "ecliente",
    "direccion1" : "calle 25",
    "ciudad" : "ciudad",
    "provincia" : "Madrid",
    "cp" : "28670",
    "pais" : "España"
  },
  "productos" : [
    { "producto_id" : 1, "cantidad" : 1 },
    { "producto_id" : 2, "cantidad" : 1 }
  ],
  "facturacion_nif"    : "H123456789",
  "metodo_pago"        : "DOMICILIACION",
  "cc_titular"         : "Alfonso Lopez",
  "cc"                 : "12341234121234567890",
  "facturar_a_entidad" : 1,
  "observaciones"      : "Creado via API"
}

Respuesta:

{
   "params" : {
      "facturacion_nif" : "H123456789",
      "observaciones" : "Creado via API",
      "metodo_pago" : "DOMICILIACION",
      "cc" : "12341234121234567890",
      "facturar_a_entidad" : 1,
      "action" : "createpedido",
      "cc_titular" : "Alfonso Lopez",
      "comprador_id" : "1234",
      "productos" : [
         {
            "producto_id" : 1,
            "cantidad" : 1
         },
         {
            "producto_id" : 2,
            "cantidad" : 1
         }
      ],
      "direccion" : {
         "provincia" : "Madrid",
         "cp" : "28670",
         "pais" : "España",
         "ciudad" : "ciudad",
         "apellidos" : "Vázquez",
         "clave" : "direccion_base",
         "direccion1" : "calle 25",
         "entidad" : "ecliente",
         "nombre" : "Xabier"
      },
      "apikey" : "xxxxxxxxxx"
   },
   "errstr" : "",
   "direccion_id" : "1959",
   "pedido_id" : "1639",
   "errno" : 0
}

Obtención de pedidos de un comprador

action: "getcompradorinfo"

Mediante este comando obtenemos los datos de un comprador, (sus pedidos y sus suscripciones) Además de los atributos "key" y "action" necesita el atributo "comprador_id" Además de la respuesta standard, este comando devuelve en el json de respuesta los pedidos, las suscripciones y los datos del comprador

Ejemplo de llamada:

{
  "apikey"       : "xxxxxxxxxxxxxxxx",
  "action"       : 'getcompradorinfo',
  "comprador_id" : 1234
}

Respuesta:

{
   "params" : {
      "action" : "getcompradorinfo",
      "comprador_id" : "1234",
      "apikey" : "xxxxxxxxxxxxxxxxxxx"
   },
   "errstr" : "",
   "pedidos" : [
      {
         "fecha_creacion" : "2013-01-21 09:05:31.985559",
         "productos_pedido" : [
            {
               "precio" : "50.00",
               "producto_id" : "95",
               "cantidad" : "1",
               "nombre" : "Suscripción anual",
               "impuestos_incluidos_en_precio" : "1",
               "impuestos" : "18.00"
            },
            {
               "precio" : "10.00",
               "producto_id" : "94",
               "cantidad" : "1",
               "nombre" : "Suscripción mensual",
               "impuestos_incluidos_en_precio" : "1",
               "impuestos" : "18.00"
            }
         ],
         "pagos" : [
            {
               "fecha_creacion" : "2013-01-21 09:05:32.767042",
               "codigo_pago_tienda" : "a28",
               "cantidad" : "60.00",
               "pago_id" : "2592",
               "estado" : "PENDIENTE"
            }
         ],
         "pedido_id" : "1639",
         "estado" : "INICIADO",
         "codigo_pedido_tienda" : "p26"
      }
   ],
   "suscripciones" : [],
   "comprador_info" : {
      "apellidos" : "Vázquez",
      "mail" : "ejemplo@direccion.com",
      "nombre" : "Xabier"
   },
   "errno" : 0
}
Last modified 11 years ago Last modified on Jan 21, 2013, 10:33:38 AM