FSx-Connector Catálogo


Este Módulo contiene los parámetros que controlan la sincronización del Catálogo entre FactuSOL y la Tienda Web.


Si lo desea puede establecer una equivalencia estricta entre el Catálogo en FactuSOL y en la Tienda Web, o bien organizar de forma diferente su Catálogo en la Tienda Web. El único requerimiento es que todos los Productos de la Tienda Web deben tener un equivalente entre los Artículos de FactuSOL. Así evitará trabajo innecesario a la hora de controlar el stock y emitir facturas.


Configuración Carga del Catálogo

fsxconf_cargacatalogo

Cargar Secciones

Cargar las Secciones de FactuSOL.

  • Valor: selector Si, No.
  • Por defecto: 'Si'.

Cargar Familias

Cargar las Familias de FactuSOL. Observe que, para evitar inconsistencias y errores, si hace "Cargar Secciones" igual a 'No', entonces, automáticamente "Cargar Familias" será también 'No'.

  • Valor: selector Si, No.
  • Por defecto: 'Si'.

Grupos de Acceso

Grupos de Clientes a los que desea dar acceso a las nuevas Categorías.

  • Valor: desplegable con los valores: 'Sólo Grupos por Defecto', 'Todos los Grupos'.
  • Por defecto: 'Sólo Grupos por Defecto'.

Ahora tiene tres Grupos por Defecto:

  1. Visitor - Todas las personas sin una cuenta de Cliente o no autenticado.

  2. Guest - Cliente que hizo un pedido con Cuenta de invitado

  3. Customer - Todas las personas que crearon una cuenta en este sitio.

Estos Grupos son fijos, y no se pueden borrar.


Cargar Artículos

Cargar los Artículos de FactuSOL.

  • Valor: selector Si, No.
  • Por defecto: 'Si'.

lamp ¿Cómo debe ser el nombre del Artículo?

El nombre del Artículo puede contener cualquier carácter, salvo los caracteres que PrestaShop considera no válidos, que son: < > ; = # { }. Si el nombre del Artículo contiene alguno de los caracteres anteriores, PrestaShop genera un error (que podrá consultar en el componente FSx-LOG) y FSx-Connector no cargará el Artículo en el Catálogo de PrestaShop.

Copiar la "Descripción del Artículo en la Web" de FactuSOL a

La "Descripción Corta" aparece en las Listas de Productos y en la parte superior de la Página del Producto.
La "Descripción Larga" (o simplemente Descripción) aparece en el cuerpo de la Página del Producto.

  • Valor: desplegable con los valores: 'la Descripción Corta del Producto', 'la Descripción Larga del Producto', 'Ambas'.
  • Por defecto: 'Ambas'.

En FactuSOL, en la pestaña Internet de la Ficha de un Artículo, podrá indicar varios campos que se utilizarán en la Tienda Web:

fsxcat_box_tareas
  • Permitir el uso de este artículo en la web: Indique si este artículo será incluido en la base de datos que FactuSOL puede subir a Internet a petición del usuario.

  • Control de stock del artículo: Este campo no se utiliza actualmente en la Tienda Web, ya que PrestaShop tiene su propia configuración para el Control de Stock.

  • Descripción web del artículo: Indique la descripción detallada que se mostrará en la web. Observe que puede introducir la descripción como HTML.

  • Mensaje emergente web: Este campo no se utiliza actualmente por FSx-Connector ni en la Tienda Web.


lamp ¿Cuál es el tamaño máximo de la "Descripción Corta" de un producto en PrestaShop?

El tamaño por defecto es de 400 caracteres, pero puede ampliarse dando el valor deseado en

"Preferencias -> Productos -> Productos (general) :: Tamaño máximo para la descripción corta".

Si esta opción no está disponible en su instalación de PrestaShop, deberá asignar directamente el valor a la varible de configuración 'PS_PRODUCT_SHORT_DESC_LIMIT' en la tabla 'configuration'; si esta variable no existe, puede crearse sin riesgo.

¿Activar nuevos Artículos?

Los nuevos Artículos se crean con status 'Activo' (Mostrado = 'Sí').

  • Valor: selector Si, No.
  • Por defecto: 'Si'.

Actualizar precios

Actualizar precios de todos los Productos. Observe que si hace "Actualizar precios" igual a 'Si', entonces, para que sea tenido en cuenta por el componente FSx-Catálogo, deberá hacer también "Cargar Artículos" igual a 'Si'.

  • Valor: selector Si, No.
  • Por defecto: 'No'.

Actualizar stock

Actualizar stock de todos los Productos. Observe que si hace "Actualizar stock" igual a 'Si', entonces, para que sea tenido en cuenta por el componente FSx-Catálogo, deberá hacer también "Cargar Artículos" igual a 'Si'.

  • Valor: selector Si, No.
  • Por defecto: 'No'.
lamp ¿Qué ocurre si "Administración Avanzada de Stock" está activado?

Esta opción es incompatible con "Administración Avanzada de Stock" activo.

fsxcat_stock
FactuSOL está concebido para utilizar en la web una sola Tienda y el stock correspondiente a un único Almacén definido en FactuSOL. Si necesita utilizar la "Administración Avanzada de Stock" en PrestaShop, podrá utilizar FSx-Connector, pero no podrá actualizar el stock de los Productos con este Módulo.

Categoría por defecto

Si no existe la Categoría del Artículo, asociarle esta Categoría (Si no selecciona ninguna, se cargarán en la raíz del Catálogo).

  • Valor: desplegable con las Categorías de la Tienda.
  • Por defecto: vacío.

Desactivar los Productos no encontrados

Desactivar los Productos de la Tienda que no tienen correspondencia en FactuSOL.

  • Valor: selector Si, No.
  • Por defecto: 'No'.
lamp ¿Cómo funciona "Desactivar los Productos no encontrados"?

Cuando se realiza "Actualizar la Base de Datos de FactuSOLWeb" (componente FSx-Configuración), se cargarán en la Base de Datos de FactuSOLWeb los datos que se obtuvieron de FactuSOL. Cuando "Desactivar los Productos no encontrados" es 'Si', FSx-Connector consulta los Productos que existen en la Tienda, y si no encuentra una correspondencia en la Base de Datos de FactuSOLWeb, los desactiva (Mostrado = 'No').

tip Cuándo hacer "Desactivar los Productos no encontrados" = 'Si'

Cuando se discontinúa la comercialización de un Producto, y en FactuSOL se marca para no subir a Internet. En este caso no debe borrarse el Producto de la Tienda, ya que puede haber Pedidos y afecta a las Estadísticas; basta con desactivarlo (Mostrado = 'No').

tip Cuándo hacer "Desactivar los Productos no encontrados" = 'No'

Cuando quiere tener en la Tienda PrestaShop Productos de otros Fabricantes, pero no desea darlos de alta en FactuSOL, ya que no tiene stock de los mismos.

Si se alcanza el Tiempo Máximo de Ejecución

Si se alcanza el Tiempo Máximo de Ejecución del script (timeout), realizar la acción indicada. El script es el programa que se ejecuta, en este caso es el Programa de Carga del Catálogo.

  • Valor: selector

    • 'esperar respuesta de usuario'
      El proceso se detiene antes de alcanzar el timeout. El usuario puede hacer que continúe donde se quedó pulsando nuevamente "Comenzar" en la Caja de Tareas.

    • 'continuar automáticamente'
      El proceso se detiene antes de alcanzar el timeout. Después de unos segundos, el proceso continuará autométicamente donde se quedó.

  • Por defecto: 'esperar respuesta de usuario'.

Control de Tiempos

Si su Catálogo es extenso (muchas Categorías o Productos), el proceso de Carga del Catálogo puede ser una tarea que necesite mucho tiempo de ejecución, y por tanto se corre el riesgo de alcanzar el Tiempo Máximo de Ejecución del script (timeout). Cuando esto sucede, el programa se detiene inmediatamente, y como el proceso de Carga del Catálogo realiza actualizaciones de la Base de Datos de PrestaShop, existe la posibilidad de que algún elemento (Categoría o Producto) no llegue a registrarse completamente en la Base de Datos. Esto puede provocar inconsistencias en los datos y ciertas inestabilidades.

tip El Timeout

El Tiempo Máximo de Ejecución del script (timeout) lo controla la variable: max_execution_time, que se define en el fichero de configuración php.ini del intérprete de comandos PHP. Esto ayuda a prevenir que scripts mal escritos bloqueen el servidor. El valor por defecto es 30 segundos.

No se puede cambiar esta opción con ini_set() cuando se ejecuta en safe mode. La única manera es desactivar safe mode o cambiando el límite en php.ini (para ello es posible que deba contactar con su proveedor de hosting).

Para evitar estos inconvenientes, el Componente FSx-Catálogo incorpora un sistema de Control del Tiempo de ejecución. Este Sistema contabiliza el tiempo consumido en operaciones elementales y el total acumulado, de forma que detiene el programa de forma segura antes de alcanzar el Tiempo Máximo de Ejecución del script. Al final del proceso de Carga del Catálogo se mostrará un resumen de las tareas realizadas, el tiempo empleado y, si no terminó completamente el proceso, el punto en el que se quedó:

timer

Si el proceso agotó el tiempo y no terminó, dependiendo del valor que haya asignado a 'Si se alcanza el Tiempo Máximo de Ejecución', el proceso seguirá automáticamente donde se quedó (tras algunos segundos), o el usuario deberá hacer que continúe pulsando nuevamente "Comenzar" en la "Caja de Tareas"

tip Si el proceso de Carga del Catálogo termina abruptamente con Error 500

FSx-Connector conoce el Tiempo Máximo de Ejecución consultando la variable max_execution_time, que obtiene del intérprete de comandos PHP. No obstante, en algunos servidores existen otras limitaciones al Tiempo Máximo de Ejecución que no pueden ser conocidas por el intérprete de comandos PHP.

Un ejemplo del caso anterior es cuando el intérprete PHP se está ejecutando como CGI, y hay un límite de tiempo para los hilos de ejecución que es inferior a max_execution_time.

Otra situación similar es cuando el límite de tiempo se establece a nivel de servidor Apache, y es inferior a max_execution_time. En este caso, como en el anterior, el intérprete PHP no puede conocer el verdadero Tiempo Máximo de Ejecución (que es inferior al valor de max_execution_time), y el proceso de Carga del Catálogo puede terminar abruptamente con un Error 500 del servidor.

También deberá analizarse el consumo de recursos del servidor durante el proceso de Carga del Catálogo, particularmente el consumos de memoria (variable memory_limit, que se define en el fichero de configuración php.ini).



tip No siempre es correcto el tiempo de ejecución máximo que obtiene PHP

El intérprete PHP tiene limitado el tiempo de ejecución máximo permitido a un script, especialmente si está en un hosting compartido. El límite de tiempo por defecto es de 30 segundos y se define en la opción max_execution_time del fichero de configuración php.ini (consulte a su proveedor de hosting para más detalles sobre la configuración de su instalación). PHP dispone de la función 'ini_get' para conocer el tiempo de ejecución máximo permitido:

$maxTime = ini_get ('max_execution_time');

PHP tiene además una función llamada 'set_time_limit' que se puede utilizar para ajustar dinámicamente el tiempo de ejecución máximo permitido a un script. Permite especificar el tiempo en segundos y fija el tiempo de ejecución del script a ese número de segundos.

Normalmente 'set_time_limit' se llama al principio de un scipt para extender el tiempo de ejecución del script a esa cantidad de segundos. Así

set_time_limit(480);

hace que el tiempo de ejecución máximo permitido al script sea de 480 segundos.

Sin embargo cuando el script se ejecuta desde un navegador (es decir dentro de un entorno externo al intérprete PHP, como es el servidor Apache), y necesita mantener PHP enviando salida de datos al navegador, entonces la opción 'max_execution_time' de php.ini y la función 'set_time_limit' de PHP no son los únicos que controlan el tiempo que el script PHP puede ejecutar y la salida de los datos al navegador. La configuración del servidor también puede imponer restricciones de tiempo al script, más severas incluso que las de PHP.

Si está ejecutando PHP usando mod_php de Apache entonces usted puede utilizar set_time_limit(480) para ajustar el límite de tiempo de ejecución en el script PHP. Esto funcionará como se espera en la mayoría de situaciones.

Sin embargo, cuando PHP se ejecuta a través de mod_fcgid o mod_fastcgi o con un gestor de procesos fastcgi como PHP-FPM, entonces el entorno de ejecución impondrá sus propias restricciones de tiempo al script. En estos casos es posible que, incluso después de ajustar set_time_limit a 480, el script termine después de un período de tiempo específico, pero inferior al establecido por max_execution_time o la función 'set_time_limit'. Esta será la restricción de tiempo forzada por el entorno de ejecución.

Por ejemplo, mod_fastcgi tiene una opción llamada "-idle-timeout" que controla el tiempo de inactividad del script. Así que si el script no produce ninguna salida al controlador fastcgi en esa cantidad de segundos, entonces fastcgi forzará la terminación del script. La arquitectura es algo como esto:

Apache <-> mod_fastcgi <-> procesos PHP

Lo mismo sucede con mod_fcgid. También tiene una restricción de tiempo incorporado. PHP-FPM tiene la opción llamada "request_terminate_timeout" que hará terminar el proceso después de la cantidad de segundos especificada.

lamp Consulte a su proveedor de hosting para más detalles sobre la configuración de su instalación.





lamp ¿Es lo mismo el Control de Tiempos que el Componente FSx-LOG?

Es cierto que tienen algunas funciones comunes, pero la razón de ser de cada uno es diferente:
  • El Componente FSx-LOG

    • Registra mensajes de todos los Componentes de FSx-Connector.

    • Los mensajes tienen distinto nivel: Información, Aviso, Error.

    • Se centra en informar de las tareas realizadas y del resultado de las mismas.

  • El Control de Tiempos

    • Registra mensajes exclusivamente de la tarea "Carga del Catálogo" del Componente FSx-Catálogo.

    • Los mensajes tienen todos el mismo nivel, no se controlan errores, sólo tareas realizadas.

    • Se centra en detallar los pasos elementales de la tarea, e informar del tiempo empleado, por paso y acumulado.

Para lograr persistencia de los mensajes del Control de Tiempos, especialmente cuando la Carga del Catálogo se realiza en vaias etapas, los mensajes del Control de Tiempos se copian en el Componente FSx-LOG:

timer_log

lamp Para ver todos los mensajes del Control de Tiempos en el Componente FSx-LOG, símplemente utilice el filtro del Componente FSx-LOG:

timer_log_filter

La información del Control de Tiempos le ayudará a optimizar el redimiento de su instalación de PrestaShop.


Caja de Tareas

Una vez fijados los parámetros de FSx- Connector, puede iniciar el proceso de Carga del Catálogo pulsando "Comenzar". Este proceso carga las Secciones, Familias y Categorías de la Base de Datos de FactoSOLWeb a Categorías, Sub-Categorías y Productos de PrestaShop.

Ajustando convenientemente los parámetros de este Módulo, puede también realizar los procesos periódicos de actualización de stock y actualización de precios de Productos. Se recomienda que, previamente a la importación, se vacíe el LOG (consulte el apartado correspondiente al componente FSx-LOG).

fsxcat_box_tareas

Comprobar Diccionario de Categorías

Esta opción se utiliza para comprobar la correspondencia entre Secciones / Familias y Categorías antes de cargar o actualizar el Catálogo.

  • Valor: desplegable con los valores:

    • 'No comprobar'

    • 'Comprobar e informar'
      Comprueba el Diccionario de Categorías e informa (en el LOG) si encuentra una Sección / Familia sin correspondencia en PrestaShop, o si encuentra una Categoría sin correspondencia en FactuSOL. Esta opción no realiza ninguna reparación.

    • 'Reparar'
      Comprueba el Diccionario de Categorías y elimina las entradas "huérfanas" (sin correspondencia) del Diccionario.

  • Por defecto: 'No comprobar'.

lamp NOTA: se recomienda poner el valor por defecto 'No comprobar', y realizar la comprobación del Diccionario de Categorías mediante el Componente FSx-Diccionario.


Caja del Catálogo FactuSOL

En la caja Catálogo FactuSOL puede comprobar la estructura del Catálogo que va a cargar a su Tienda Web, tal como se exportó desde FactuSOL. Las Familias y Secciones que ya se han cargado aparecen con un icono verde; las que no se han cargado aparecen con un icono rojo. En todas las Familias aparece entre paréntesis el número de Artículos que contienen.

fsxcat_box_catalogo

Productos con Combinaciones en PrestaShop


lamp Esta funcionalidad es opcional, y no forma parte del núcleo de FSx-Connector.


En una Tienda PrestaShop los Productos pueden tener Atributos, que son características concretas que dan lugar a variantes de un Producto (talla, color, material, formato, etc.). Cada Atributo, tendrá una serie de valores. Por ejemplo, para el Atributo Color, los valores pueden ser: verde, azul, etc. Un Producto puede tener varios Atributos, y las variantes con distintos valores de atributos se denominan Combinaciones en PrestaShop.

En FactuSOL se pueden definir únicamente dos características: Talla y Color, aunque se les puede poner nombres diferentes. Estas dos características se aplicarán a todos los Productos. Por tanto, si un Producto en PrestaShop tiene más de dos atributos, no será posible representarlo exactamente en FactuSOL. Tampoco será posible representar el Catálogo de PrestaShop si se manejan más de dos atributos, aunque un Producto tenga dos atributos como máximo.

Además FactuSOL no contempla en la exportación a la web (pestaña "Internet" -> "Subida Genérica de Datos"), ni en la importación de la Tienda online (pestaña "Internet" -> "Descarga de Pedidos"), los datos relativos a Talla y Color. Por ello no se puede establecer una correspondencia exacta entre productos, ni tampoco controlar el stock por Talla y Color en las ventas online.

En general, la integración de FactuSOL con una Tienda PrestaShop en sectores en que todo el Catálogo está formado exclusivamente por Productos que tienen Atributos no es viable en la práctica. Sin embargo, cuando sólo una pequeña parte del Catálogo tienen atributos, FSx-Connector puede modificarse para relacionar de forma unívoca el Catálogo en PrestaShop y el de FactuSOL, con un trabajo manual adicional en PrestaShop.

Con esta Extensión de FSx-Connector, la forma de trabajar con "Productos con Combinaciones" es:

  1. Crear los Productos con Combinaciones (Atributos) en PrestaShop. Cada Combinación ha de tener un valor único en el campo "Referencia". El campo "Referencia" debe tener una longitud máxima de 13 caracteres, que podrán ser letras (no acentuadas, no "ñ", no "ç"), números y guiones (medio o bajo).

    Ejemplo: Producto "Exprimidor" disponible en tres colores: rojo (Referencia 'exp001'), verde (Referencia 'exp002'), azul (Referencia 'exp003'). Es un Producto con tres combinaciones.

  2. Crear en FactuSOL tantos Productos como Combinaciones se hayan creado en PrestaShop. Se utilizará el valor del campo "Referencia" de la Combinación en PrestaShop como Código de Artículo en FactuSOL. No se usarán en FactuSOL la funcionalidad de tallas y colores.

    Ejemplo: crear en FactuSOL los Productos (tres): "Exprimidor rojo" (Código de Artículo: 'exp001'), "Exprimidor verde" (Código de Artículo: 'exp002'), "Exprimidor azul" (Código de Artículo: 'exp003').

  3. FSx-Connector (modificado) detectará que los códigos de Artículo 'exp001', 'exp002' y 'exp003' existen en PrestaShop (en Combinaciones de Productos) y no creará nuevos Productos. Para que esto sea posible, en FactuSOL debe estar permitido el uso en Internet de los Artículos anteriores.

  4. El precio y el stock de las Combinaciones se actualiza a partir del precio y el stock de los Artículos correspondientes en FactuSOL, como para el resto de Artículos.

    Los Precios se cargan en las Combinaciones de los Productos en el campo "Impacto en el Precio". Por tanto, para que PrestaShop calcule correctamente el Precio de las Combinaciones, el Precio del Producto principal (el "padre" de las combinaciones) deberá ponerse como cero cuando se crea el Producto.

    Además, para evitar problemas de identificación, el campo "Referencia" del Producto principal (el "padre" de las combinaciones) deberá dejarse en blanco cuando se crea el Producto.

  5. Los Pedidos se descargan de igual manera que para el resto de Artículos.




Su mensaje:

Cerrar [X]

Gracias por su colaboración.

Cerrar [X]

COMPARTIR