Page 1 of 1

Acceso a Base de datos desde aplicacion externa

Posted: Fri Apr 05, 2019 3:31 am
by claudioC
Estimados
Soy nuevo en OC y estoy desarrollando una interfase entre mi aplicacion de escritorio u OC. El objetivo es actualizar el maestro de productos y precios.
En principio ya puedo acceder a la BD y cambiar, por ejemplo, una descripción. Soy programador y via php pude conectarme a la BD.
Necesitaria conocer tablas y contenidos de las mismas involucrados en actualizacion de producto y precio para hacerlo desde la aplicación.
La pregunta es si existe documentación de que tiene cada tabla, donde la puedo encontrar. También si existe alguna API para acceder y si tiene transacciones predefinidas.
Necesitaría alguna idea del rumbo y factibilidad de lo que necesito.
Agradezco de antemano su tiempo y atención.
Claudio.

Re: Acceso a Base de datos desde aplicacion externa

Posted: Sun Apr 07, 2019 6:02 am
by dharmawebstudio
Hola Claudio.

Me parece que una forma sencilla, seria darle un vistazo a los modelos.
  • catalog/model/ catalog/product.php
  • catalog/model/ catalog/manufacturer.php
  • catalog/model/ catalog/category.php
Allí encontraras los diferentes métodos que necesitas. ¿Quizas referenciando la clase, y extendiendo el modelo desde una clase en tu aplicación (PHP orientado a objetos), podrías elaborar algo sin tener que duplicar los métodos ?

¿Me comentas un poco como te ha ido.?

Un saludo.

Re: Acceso a Base de datos desde aplicacion externa

Posted: Mon Apr 08, 2019 6:08 am
by claudioC
Gracias Daniel por tu pronta respuesta.
Ya me pongo a ver las clases. Siempre es mucho mejor acceder a un nivel de abstracción mayor que la BD 'directa'.
Por otro lado empecé a leer sobre la interfase REST y ver si 'ataco' desde ahí los datos.
En resumen, estudio acceder a los datos por alguna de estas dos vías:
1- PHP heredando clases definidas.
2- Utilizando la api REST.
En particular creo se ajusta mejor la 2da opción ya que no voy a acceder desde la web sino desde un sistema de escritorio. ( Aunque hoy accedo a la BD desde el escritorio directamente vía un conector http/php )
Cualquier sugerencia o comentario será más que bien venido.
Claudio

Re: Acceso a Base de datos desde aplicacion externa

Posted: Mon Apr 08, 2019 4:48 pm
by dharmawebstudio
Hola @claudioC.

Si, parece ser el caso que una API REST puede ser tu mejor opción. Las nuevas versiones de OC cuentan con una API y puedes hacer uso de ella para algunas cosas.

Supongo ya has leído esto:

http://docs.opencart.com/en-gb/system/users/api/

Contiene métodos nativos para ejecutar actividades de clientes como hacer compras, iniciar sesión, etc, pero aún así es limitado.
Siempre puedes extender las funcionalidades de estas librerías para que permitan hacer más cosas.

También tienes extensiones en el marketplace que te pueden aligerar el trabajo por lo que veo:

https://opencart-api.com/

Esta extension, provee de métodos para administrar el backoffice - admin de las tiendas:

https://www.opencart.com/index.php?rout ... rt-api.com

===

Cuando hayas avanzado vuelve por los foros para comentar tu experiencia que seguro será util para la comunidad.
Un saludo.

Re: Acceso a Base de datos desde aplicacion externa

Posted: Fri Apr 12, 2019 4:36 am
by claudioC
Estimados.
Elegí el camino REST para acceder a los datos desde mi aplicacion de escritorio.

1) Definí usauario en sistema->usuario->API
API Name: MyApli
APIkey: (se genera)
En la solapa "Añadir direcciones IP" agrego la ip de mi PC
Salvo y verifico que la información este bien grabada.

2) Creo un script PHP y accedo desde un browser y obtengo el mensaje:
resultado: Warning: Incorrect API Key

3) En Sistema->configuración editar (tienda) -> opcion -> usuario API seteo el usuario definido en 1.
resultado: Warning: Incorrect API Key

4) Elimine el usuario creado, para usar el usuario default (agregue IP a la ficha del usuario default y lo establecí como usuario de la API )
resultado: Warning: Incorrect API Key
En resumen: no logro ingresar y obtener el token.

Gracias por su tiempo
Aguardo comentarios o pistas.

Re: Acceso a Base de datos desde aplicacion externa

Posted: Fri Apr 12, 2019 7:18 pm
by claudioC
Solo para el registro:
Los pasos anteriores eran correctos. Logre obtener el primer token.
El problema es que en la URL decia:
$url = "http://www.b.....
y debia decir...
$url = "https://www.b....

Se debe conectar con HTTP Seguro.
Voy al siguiente paso.

Re: Acceso a Base de datos desde aplicacion externa

Posted: Mon May 20, 2019 10:28 pm
by dharmawebstudio
Que tal @Claudio.

No he vuelto a responderte, por que me parece ya habías encontrado el camino.
Nos cuentas un poco como te ha ido? Algunos tips importantes para alguien que este trabajando algo similar.
Esto que mencionas de que no es posible conectar vía API sin https, entonces si estas trabajando desde local sin un certificado, es imposible hacer pruebas ?

Gracias.