Jump to content

Compartir base de datos prestashop con aplicación externa


sylarlocke

Recommended Posts

Buenas,

Llevo con un dilema una semana porque un cliente quiere reestructurar la aplicación externa de control de productos que vende en la tienda física con lo que vende en la tienda online, aunque algunos productos solo se venden en la aplicación física y otros solo en la tienda online, una de las cosas principales que quiere tener sincronizada es el stock de productos.

He estado planteando usar webservices y he estado viendo por encima las opciones, pero creo que me va a resultar usar la misma base de datos de prestashop y gestionar a través de la aplicación externa el control de la misma, añadir tablas y campos necesarios y reestructurar un poco el código de prestashop(será un mínimo de cambios).

Como la aplicación la voy a empezar prácticamente desde 0, voy a reutilizar la mayoría de las tablas de la aplicación antigua y las voy a añadir en la base de datos de prestashop para no tener dos base de datos.

¿Qué me recomendáis?

Gracias.

 

 

Link to comment
Share on other sites

Sigo con el proyecto y sigo dejando abierto la opción que preguntaba en el post.

He estado viendo una API para prestashop llamada "PSWebServiceLibrary" que te permite conectar a través de webservice con la base de datos de prestashop.

Pero por más vueltas que le he dado me sigue resultando más sencillo utilizar la misma base de datos y trabajar directamente sobre las tablas, se que esto no es el camino más recomendado, pero viendo la situación creo que es lo mas viable.

Sigo escuchando opiniones, gracias.

Link to comment
Share on other sites

Hola

 

Creo que no estas abordando el tema como deberías, 

 

1- PSWebServiceLibrary es simplemente una librería para usar el webservice así que no tiene mayor incidencia en tu decisión, ya que estas planteando usar o no los webservices

 

2-  El tener una sola base de de datos solo te va a simplificar el acceso a las mismas y tal vez mas fácil de respaldar pero nada mas

 

3- En mi opinión cometes un error al basar tu decisión basada solo en Prestashop  tienes que tener en cuenta varios puntos, si tu cliente mañana quiere otra tienda online bajo otro nombre y decide usar magento or woocomerce (y esto pasa no son inventos mios) para esa tienda que vas hacer integrar todo en la misma basa de datos ya quiere verte cuando tengas que actualizar alguna de esas base de datos

 

Yo creo que deberías manejar la aplicación principal del sistema independiente, luego si quieres o no utilizar base de datos o webservice debes basarte mas en la frecuencia en que el cliente actualiza Prestashop y el volumen de accessos que tienes que requiran saltar algunos pasos y tratar de ser lo mas generico de esa manera puedes crear una libreria en tu app que luego se pueda conectar a otros servicios

 

 

 

 

Link to comment
Share on other sites

hace 2 horas, sylarlocke dijo:

Sigo con el proyecto y sigo dejando abierto la opción que preguntaba en el post.

He estado viendo una API para prestashop llamada "PSWebServiceLibrary" que te permite conectar a través de webservice con la base de datos de prestashop.

Pero por más vueltas que le he dado me sigue resultando más sencillo utilizar la misma base de datos y trabajar directamente sobre las tablas, se que esto no es el camino más recomendado, pero viendo la situación creo que es lo mas viable.

Sigo escuchando opiniones, gracias.

 

aqui tienes algo que te puede ayudar

https://www.prestashop.com/forums/topic/518939-codigo-fuente-vbnet-para-añadir-productos-al-prestashop/

pero despues de mi experiencia, mucho mejor usar webservice 

O programar un conector con el programa.

o programar un exportador importador csv que suba desde el programa el stock cada X horas, y que el modulo lo lea cada X+2 minutos

Link to comment
Share on other sites

On 29/7/2018 at 6:25 PM, jgamio said:

Hola

 

Creo que no estas abordando el tema como deberías, 

 

1- PSWebServiceLibrary es simplemente una librería para usar el webservice así que no tiene mayor incidencia en tu decisión, ya que estas planteando usar o no los webservices

 

2-  El tener una sola base de de datos solo te va a simplificar el acceso a las mismas y tal vez mas fácil de respaldar pero nada mas

 

3- En mi opinión cometes un error al basar tu decisión basada solo en Prestashop  tienes que tener en cuenta varios puntos, si tu cliente mañana quiere otra tienda online bajo otro nombre y decide usar magento or woocomerce (y esto pasa no son inventos mios) para esa tienda que vas hacer integrar todo en la misma basa de datos ya quiere verte cuando tengas que actualizar alguna de esas base de datos

 

Yo creo que deberías manejar la aplicación principal del sistema independiente, luego si quieres o no utilizar base de datos o webservice debes basarte mas en la frecuencia en que el cliente actualiza Prestashop y el volumen de accessos que tienes que requiran saltar algunos pasos y tratar de ser lo mas generico de esa manera puedes crear una libreria en tu app que luego se pueda conectar a otros servicios

 

 

 

 

Hola jgamio, gracias por prestar su ayuda.

Estuve dándole muchas vueltas, y por eso no sabía como abordarlo.

He estado leyendo y te entiendo perfectamente lo que dices, a nivel escalable o exportable la base de datos no estaría optimizada para realizar esa operación.

Lo de la librería de webservices es porque me resulta más cómodo era una de las opciones.

Pero tengo que contar con dos variables importante que el cliente requiere.
La principal el stock tiene que estar vinculado, es decir que si en la tienda física vende un teléfono este tiene que descontarse del stock de prestashop y viceversa, si lo vende por prestashop tiene que descontarse de la tienda.

Aquí viene el gran problema, porque la vinculación tiene que ser en el tiempo exacto, imáginate que tengo una tarea cron que cada minuto hace una actualización, el cliente tiene un stock de 1 producto, lo vende por la tienda física, y en ese mismo momento otro cliente lo compra por la tienda online, no le ha dado tiempo al cron actualizarse por lo que la compra se realiza y no hay stock(esto no puede pasar).

Despúes de darle muchas vueltas he pensado lo que me has comentado y estoy pensando en otra solución, a ver que opinas compañero:

En vez de hacer dos bases de datos distintas, he pensado utilizar la base de datos de prestashop y dos tablas de productos, una de la tienda física y otra de prestashop, cuando se actualice el stock de un producto se realice en ambas tablas, teniendo estas el mismo id de producto, aunque esto puede ser más tedioso, a la hora de exportar el contenido para un futuro no habría problema porque estarían independiente en cierto sentido.

On 29/7/2018 at 6:53 PM, gusman126 said:

 

aqui tienes algo que te puede ayudar

https://www.prestashop.com/forums/topic/518939-codigo-fuente-vbnet-para-añadir-productos-al-prestashop/

pero despues de mi experiencia, mucho mejor usar webservice 

O programar un conector con el programa.

o programar un exportador importador csv que suba desde el programa el stock cada X horas, y que el modulo lo lea cada X+2 minutos


Hola gusman126 gracias por su ayuda,  he estado viendo su otro post y parece interesante, más o menos esa era la idea que tenía en mente, yo en cambio voy a usar Php, lo de importar y exportar csv lo he pensado también pero tiene su hándicap como he comentado al anterior compañero, mi idea era de tener la tabla de productos( y las tablas vinculadas) como el mismo control de stock para la aplicación de la tienda.

 

La verdad es que es una díficil situación, el cliente tiene prisa y aunque me gustaría hacer las cosas bien, en este momento tengo que elegir lo más viable en esta situación.

Gracias por vuestra ayuda, espero vuestras opiniones.

Link to comment
Share on other sites

hace 1 hora, sylarlocke dijo:

 

La verdad es que es una díficil situación, el cliente tiene prisa y aunque me gustaría hacer las cosas bien, en este momento tengo que elegir lo más viable en esta situación.

Gracias por vuestra ayuda, espero vuestras opiniones.

 

En que sistema esta desarrollado el programa de gestion??

lo que quieres hacer, vas a tener que modificar ese programa, añadir un codigo que envie una orden webservice tipo Curl para que actualice el stock del producto con la referencia XXXX

Ademas debes añadir algo al prestashop para que cuando se realice un pedido por online, reste el stock del programa de la tienda fisica o puede ocurrir al reves.

Depende mucho del programa y con que este programado el programa de gestion o TPV.

Ademas puede ocurrir lo siguiente.

Un dia deja de funcionar internet en la tienda fisica del cliente y deja de enviar los datos de stock a la base de datos online, ya no esta sincronizado.

Lo normal es que con un cron de 5 minutos sea muy dificil que coincida que vendas un producto en fisico y que te pidan el mismo en la tienda online, puede ocurrir si tienes 1 unidad por cada producto, o pocos productos, por lo demas lo mejor , un cron de 5 minutos

 

 

Link to comment
Share on other sites

Algunas recomendaciones

 

Piensa primero en el proceso, como lo vas a manejar independientemente de herramientas que utilices y si es fácil o no, eso es el paso 2

tienes mil maneras de resolverlo

 

Te doy un dato 

* Si tu inventario es tan importante entonces te recomiendo que en vez de sincronizar modifiques el Prestashop para que lea los datos del stock desde la base de datos del ERP y cuando vendas generas un hook que actualice asi te olvidas de sincronizaciones, webservices, crons,

 

 

 

 

 

 

 

Link to comment
Share on other sites

Hola, perdonad por la tardanza, he estado estos días fuera y no he pedido contestar antes.

Os cuento un poco.

El ERP (TPV o la aplicación) que existe en la tienda física encargada de gestionar está hecha en ASP, y no sé cuanto años lleva así.

El ERP hay que actualizarlo y empezar de cero, voy a usar PHP con el framework Codeigniter y Mysql, ya he exportado las tablas del ERP actual ASP, para traerlas a la nueva y hacer los cambios oportunos.

El ERP, se encarga de gestionar clientes(distintos de prestashop), productos (compartidos con lo que existen en prestashop y por ende el stock tiene que ser el mismo algunos y otros no), luego existen facturas para cade cliente...

Os pongo un esquema de el planteamiento inicial (ASP que es el ERP actual va a pasar ser ERP PHP) y de las opciones que tengo en mente, no he usado hasta ahora webservice pero he estado ojeando la librería que comentaba que alguien hizo y que está en github e intentar abordarlo por ahí o directamente en la base de datos.

Gracias.
 

esquema.thumb.jpg.db4cb7f2d5b182e21b3026d96b682dad.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...