Laudus API para empresas en remoto

Tenemos el agrado de anunciar el estreno de la primera versión de la API de Laudus para nuestros clientes de servicio remoto. El término API seguramente es desconocido para la mayoría, pero intentaremos explicarlo de la manera más sencilla posible.

Una API (Application Programming Interface) es una colección  de funciones relativas a una aplicación (Laudus en nuestro caso) que se exponen de manera pública para que otras aplicaciones las puedan utilizar. De esta manera, desarrollos de terceros pueden acceder a cierta funcionalidad de Laudus de manera automática.
La API puede ser para que accedan otras aplicaciones instaladas en el mismo computador, o para que se pueda acceder a través de internet (son dos tipos de API diferentes, pero el efecto es el mismo, aprovechar ciertas funcionalidades de un software).

Con un ejemplo se comprende mejor: con la API nueva de Laudus, que se puede acceder a través de internet, una tienda online de un cliente puede acceder a sus datos del ERP, consultando stocks, precios, o agregando los pedidos que le llegan por la página web al ERP directamente, sin intervención humana. Y la tienda online y Laudus pueden estar en servidores diferentes, la API es quien consigue que se comuniquen.

API Laudus

La API le sirve a nuestros clientes para conectar sus sistemas externos (e-commerce por ejemplo) con Laudus. Los detalles de la API sólo los utilizan los programadores, no es para cualquier usuario. Pero la ventaja de una API pública es que sus programadores no necesitan de nuestros servicios para conectar los sistemas, simplemente consultan la documentación y hacen uso de la funcionalidad expuesta (consultar stocks, precios, productos, hacer pedidos, …)

La API de Laudus está escrita tomando el estándar de Swagger, lo que permite que sea más fácil de implementar y robusta (grandes empresas como Amazon o IBM cada vez lo implementan más).

Técnicamente, nuestra API está basada en servicios REST, se pueden utilizar inputs JSON o XML, y la documentación se puede consultar en: erp.laudus.cl/LaudusAPI/
Desde la misma documentación puede incluso hacer pruebas, pero deberá tener conocimientos técnicos, insistimos en que la API es sólo para programadores, y suponemos que tienen experiencia en REST y el uso de este tipo de tecnologías.

Por esta misma razón es un producto para el que no damos soporte, ya que no está dentro de nuestro soporte enseñar programación en las diferentes tecnologías, y para ello hemos adoptado el estándar de Swagger, que como se muestra a continuación genera ejemplos desde los que se puede comenzar a trabajar.

Adoptar este estándar conlleva más trabajo para desarrollar la API, pero tiene innumerables ventajas para nuestros clientes. Entre ellas, mayor sencillez de uso, menores tiempos de desarrollo, y por ejemplo se puede utilizar el editor de Swagger, que permite generar automáticamente código para utilizar la API de Laudus en casi 40 lenguajes de programación. Para acceder al editor de Swagger, ingrese en editor.swagger.io e importe la siguiente URL: https://erp.laudus.cl/secureApi.yaml

Laudus API Editor

Para comenzar a utilizar la API le indicamos los primeros pasos:

  1. Su empresa debe estar en el remoto de Laudus, no se puede utilizar la API si tiene Laudus instalado en su empresa. Es lógico, puesto que todo el acceso a la API son servidores que deben estar donde están sus datos.
  2. Debe habilitar el acceso a la API, que por defecto está deshabilitado. Se hace en \Herramientas\Opciones:
    Habilitar API
  3. Debe crear un usuario para que lo utilice la API como login. El login se hace con el RUT de la empresa, y un nombre de usuario y contraseña definidos en la misma (en \Herramientas\Seguridad\Usuarios). Y el usuario se crea en Laudus, no se crea desde la API.
    No es necesario crear un usuario específico para la API, podría hacer un login con el nombre de usuario y contraseña de cualquier usuario, pero es buena práctica dedicar un usuario solo para la API. Y así le puede dar a dicho usuario los permisos que usted estime necesarios. Por ejemplo, puede dejarle ver la información de los productos, pero no actualizar la misma. De esta forma, usted controla lo que puede hacer el usuario de la API (es decir, el sistema externo que se conectará a su ERP).
  4. Tenga en cuenta que para logearse hay que indicar el RUT de la empresa, y un usuario (nombre de usuario y contraseña). Si usted está utilizando alguna base de datos de prueba de su empresa con el mismo RUT, tendrá dos empresas con el mismo RUT, y la API puede tener problemas para identificar cuál es la correcta. Si va a utilizar la API, no tenga más de una copia de la misma empresa con el mismo RUT.
  5. Cada vez que se va a utilizar la API, hay que comenzar con un login con el usuario y contraseña. Este login devuelve un «token» de sesión, que después se tiene que incluir en la cabecera de cada llamada a la API, para tener seguridad de que nadie puede consultar información sin permiso.
    Recomendamos utilizar POST para hacer el login. El método GET se incluye solo para compatibilidad hacia atrás, porque es menos seguro.
  6. Si utiliza la documentación en: erp.laudus.cl/LaudusAPI/
    primero haga un login, que devolverá un token. Copie este token, y haga click en el botón «Authorize» de arriba a la derecha y pegue el token en la casilla «Value». A partir de entonces podrá utilizar todos los métodos de la documentación de manera interactiva contra sus datos reales.
    Allí puede ver los comandos curl que se han utilizado para realizar cada petición, para así utilizarlos de ayuda para su código.
  7. Los tokens caducan a los 60 minutos.
  8. Los encabezados que debe enviar en el request son:
    «token»: un token válido
    «Accept»: valores «application-json», ó «application-xml», depende en qué formato se quieran recuperar los datos de vuelta de la API.
    «Content.Type»: solo se espcifica en los POST, y siempre es «application-json», porque los datos del request siempre se envían en formato JSON
    Por ejemplo:
    token: 9B37E07D879GE0B90
    Accept: application-json
    Content-Type: application-json

Este servicio está disponible desde ahora mismo (2016), sólo para los clientes de remoto (por razones obvias) y no tiene costo para un uso razonable.

47 comentarios

  1. Pingback: Plugin para WooCommerce - El Blog de Laudus ERP

  2. Pingback: Módulo para PrestaShop - El Blog de Laudus ERP

  3. Estimados buenas, consulta:

    Al momento de probar el login me arroja sin problemas un token, pero luego al hacer una petición (la cual la hago inmediatamente después de recibir el token), por ejemplo pedir la lista de los productos, me arroja el error «Token inválido o expirado», N° 1002.
    Alguna idea de lo que pudiera estar pasando, o yo estar haciendo mal?

    Gracias desde ya,
    Saludos.

      • Lamentablemente la respuesta es bastante insuficiente ya que la página sólo presenta las diferentes herramientas de vinculación que permite el software, sin embargo no hay ningún apoyo ni asesoría de la forma a implementar. Si la idea es resolver por un plugin, por favor indiquen una fecha estimada de descarga.
        gracias!

        • Estimado José Luis, resolvemos dudas continuamente de usuarios de la API en el correo api a laudus.cl
          Pero no prestamos asesoría clásica (sentarnos con el cliente, revisar el código, proponer soluciones, etc) porque precisamente ese es el trabajo de los asesores informáticos, y depende mucho de los conocimientos de cada cual. La API está en el estándar de swagger, para que sea más fácil de implementar, y se tienen ejemplos en casi 40 lenguajes de programación.

          • En conclusión, ustedes no resuelven el problema, simplemente lo derivan a personas externas que las empresas debiesen tener para implementar sus sistemas. Lamentablemente ese tipo de solución para empresas pequeñas no son viables y se deben tomar otras alternativas, por lo general de ámbitos comerciales.

          • Estimado José Luis, efectivamente así es, es precisamente de lo que se trata una API. Una API siempre la utilizan programadores. Una API siempre exige un programador, o empresa que haga desarrollos, para que la utilice en un programa que ellos desarrollan. Las APIs no están pensadas para que las empresas normales o las personas naturales la utilicen tal cual.

            Es como los lenguajes de programación. Se necesita un programador para que le haga un programa, con la API sucede lo mismo. No es que nosotros nos desentendemos de sus problemas, es que una API está pensada para que ustedes contraten a una empresa para que utilice esta API para realizarles el desarrollo que ustedes precisan.

            Hay muchas empresas que pueden hacérselo, y con precios para Pymes, las Pymes también encargan desarrollos a medida. Nosotros estamos enfocados 100% en las Pymes, ustedes son nuestros clientes y queremos que les vaya lo mejor posible, y por eso intentamos hacer instrumentos como la API que le permite enlazar cualquier software externo con Laudus para que sus sistemas conversen. Pero tod esta conversación la debe hacer un profesional de la programación.

    • Estimado Claudio, así es. De esta manera no sólo controlan ustedes el acceso a la API con un usuario y clave suyos (en vez de tener nosotros que darles una clave API), si no que además pueden controlar qué cuestiones puede acceder y modificar la API.

  4. Estimados,
    Logro conectarme a la API con el método users/login, pero me obliga a tener abierta una sesión con ese mismo usuario vía Escritorio Remoto para que la API me deje iniciar sesión y me entregue el token. Caso contrario, ese método retorna {Usuario y/o contraseña incorrecta}.

    Esta dependencia entre login por escritorio remoto y login por API es normal?
    Atentos,
    Saludos

    • Estimado Francisco, son eventos separados, no deberían tener nada que ver, y ninguno de los clientes que está utilizando la API lo ha experimentado.

      Lo mejor es que haga un login (sin necesidad del usuario conectado al ERP), y si da error nos envíe a la dirección api-arroba-laudus.cl el resultado con el error de conexión. Gracias.

    • Hola Francisco en Herramientas -> Opciones -> Extranets tienes habilitada la opción Habilitar API de web Services.

      Yo la tengo asi y no me da error cuando el usuario no esta logeado por remoto. Igual tengo un usuario que es de uso exclusivo del api.

    • Estimado Alejandro, da igual la plataforma en la que esté su sitio de comercio electrónico, ya que la API nuestra es una API REST que se puede llamar desde cualquier plataforma. Deberá insertar el código de llamada a la API en los lugares donde le permita WooCommerce en función del data que quiera obtener o traspasar (puede, por ejemplo, obtener un stock, o pasar un pedido de su e-commerce a su ERP de manera automática).

  5. Estimados tengo las siguientes duda con su api. Cuanto es el tiempo de vigencia del token para saber cuando debo renovarlo y no tener que esperar recibir el error de que esta vencido. Otra cosa hay algun problema con el api ya estoy tratando de crear una consulta consulta a un producto y tarda casi 30 segundos en realizar estos 5 llamados:
    1)get token
    2)get_productid
    3) contruir el detalle de ese producto:
    3.1) get_stock
    3.2) get_price
    3.3)get_product_detail

    • Estimado José, actualmente la duración del token es de 30 minutos. En cuanto a la demora, la primera llamada siempre es más larga porque se establecen algunos parámetros, pero no deberían ser 30 segundos. En cualquier caso, una llamada consecutiva para obtener un stock no debería demorar más de unas décimas. Una consulta de todos los stocks de todos los productos depende del volumen de datos, pero no debería exceder los 30 segundos aprox.

    • Estimado Matías, si ves en la descripción del error es por una combinación de usuario-contraseña incorrectos. Recuerde que tiene que logearse con un usuario-contraseña de cada empresa, no su usuario de acceso remoto. Recuerde que un usuario remoto puede crear múltiples empresas, y cada empresa tienen sus usuarios y contraseñas. Y con la API puede hacer operaciones con cada una de las empresas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.