FSx-Connector Catálogo
Este componente contiene los parámetros que controlan la sincronización del Catálogo entre FactuSOL y la Tienda Web.
Con este componente podrá crear en WooCommerce los Productos que ya tiene en FactuSOL. También se crearán en WooCommerce Categorías en correspondencia con las Secciones y Familias que tiene en FactuSOL.
El vínculo entre los Productos de WooCommerce y de FactuSOL se establece escribiendo el "Código del Artículo" de FactuSOL en el campo "SKU" del Producto en WooCommerce. Esto lo hace automáticamente FSx-Connector cuando crea un Producto nuevo, pero puede hacerse manualmente (con el mismo efecto) para los Productos que ya existen en WooCommerce antes de usar FSx-Connector (ver más).
Una vez que haya creado un Producto en WooCommerce sólo podrá actualizar el Precio y el Stock desde FactuSOL. Por tanto podrá hacer cambios al Producto en WooCommerce, tales como modificar las descripciones o añadir más imágenes, sin que sean sobre-escritos al Actualizar el Catálogo.
Configuración Carga del Catálogo
Familias en la raíz del Catálogo
Cargar las Familias de FactuSOL en la raíz del Catálogo.
- Valor: selector Si, No.
- Por defecto: 'No'.
¿Cómo funciona "Familias en la raíz del Catálogo"?
|
Cargar Artículos
Cargar los Artículos de FactuSOL que no existen en WooCommerce.
- Valor: selector Si, No.
- Por defecto: 'Si'.
¿Qué pasa si hay Productos en la papelera de WooCommerce? FSx-Connector reconocerá si hay Productos en la papelera de WooCommerce, y le avisará: Si FSx-Connector encuentra un Producto en la papelera de WooCommerce NO lo creará de nuevo, ya que, como está en la papelera, puede que se restaure en algún momento. |
Asignar Productos a todas las Categorías
Asigna el Producto a su Categoría (Familia) y también a la Categoría-Padre (Sección).
- Valor: selector Si, No.
- Por defecto: 'No'.
¿Cómo funciona "Asignar Productos a todas las Categorías"?
|
NOTA: Este parámetro no tiene efecto si "Familias en la raíz del Catálogo" es 'Si'.
Copiar la "Descripción del Artículo en la Web" de FactuSOL a
La "Descripción Corta" aparece en las Listas de Productos.
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'.
Vea más adelante: 'Sintaxis especial de "Descripción web del artículo" en FactuSOL' |
Tenga en cuenta que si la etiqueta "<--**-->" aparece en el campo de FactuSOL
"Descripción web del artículo" entonces el valor de
Copiar la "Descripción del Artículo en la Web" de FactuSOL a no será tenido en cuenta,
ya que entonces FSx-Connector puede encontrar valores diferentes para las Descripciones Corta y Larga. |
Estado para los nuevos Productos
Los nuevos Productos se crearán con este Estado.
- Valor: desplegable con los valores: 'Publicado', 'Pendiente de revisión', 'Borrador'.
- Por defecto: 'Borrador'.
Los Estados se definen en WordPress.
Visibilidad del Catálogo para los nuevos Productos
Los nuevos Productos se crearán con esta Visibilidad del Catálogo.
- Valor: desplegable con los valores: 'Catálogo/búsqueda', 'Catálogo', 'Búsqueda', 'Oculto'.
- Por defecto: 'Catálogo/búsqueda'.
Los valores para la Visibilidad del Catálogo se definen en WooCommerce.
Actualizar precios
Actualizar el Precio de todos los Productos. Observe que esta opción es independiente del valor de "Cargar Artículos". Es decir, podrá actualizar el Precio de los Productos aunque "Cargar Artículos" sea igual a 'No'.
- Valor: selector Si, No.
- Por defecto: 'No'.
Actualizar stock
Actualizar el Stock de todos los Productos. Observe que esta opción es independiente del valor de "Cargar Artículos". Es decir, podrá actualizar el Stock de los Productos aunque "Cargar Artículos" sea igual a 'No'.
- Valor: selector Si, No.
- Por defecto: 'No'.
Ocultar los Productos no encontrados
Ocultar los Productos de la Tienda que no tienen correspondencia en FactuSOL. La "Visibilidad del Catálogo" del Producto se cambiará a 'Oculto'.
- Valor: selector Si, No.
- Por defecto: 'No'.
¿Cómo funciona "Ocultar 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 (los marcados para permitir el uso en la web). Cuando "Ocultar 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 oculta del Catálogo, y no serán visibles para los Clientes. |
Cuándo hacer "Ocultar los Productos no encontrados" = 'Si' Cuando se discontinúa la comercialización de un Producto, y en FactuSOL se marca para no permitir el uso en la web. En este caso no debería borrarse el Producto de la Tienda, ya que puede haber Pedidos de ese Producto; bastará con desactivarlo ("Visibilidad del Catálogo" = 'Oculto'). |
Cuándo hacer "Ocultar los Productos no encontrados" = 'No' Por ejemplo, cuando quiere tener en la Tienda WooCommerce Productos de otros Fabricantes, pero no desea darlos de alta en FactuSOL, ya que no tiene stock de los mismos. |
Caja de Tareas
Una vez fijados los parámetros de FSx-Connector, puede iniciar el proceso de actualización del Catálogo pulsando "Comenzar". Este proceso carga las Secciones, Familias y Artículos desde la Base de Datos de FactoSOLWeb a Categorías, Sub-Categorías y Productos de WooCommerce.
Ajustando convenientemente los parámetros de este componente, 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 actualización del Catálogo, se vacíe el LOG (consulte el apartado correspondiente al componente FSx-LOG).
El Proceso de Actualización del Catálogo
El proceso de actualización del Catálogo puede requerir mucho tiempo si el Catálogo es extenso. Esto puede agotar el tiempo de ejecución concedido por el Servidor y provocar un error (timeout).
Para evitar el timeout, FSx-Connector divide la tarea total en partes, cada una de ellas dentro del tiempo máximo que permite el Servidor, e irá informando por pantalla del progreso de la actualización.
Control de Tiempos
Si su Catálogo es extenso (muchas Categorías y / o Productos), el proceso de Carga o Actualización 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) permitido por el Servidor. Cuando esto sucede, el programa se detiene inmediatamente, y no se completa la Actualización del Catálogo.
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, pero puede ser diferente en cada proveedor de hosting. No se puede cambiar esta opción con ini_set() cuando PHP 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.
Si a Actualización del Catálogo agotó el tiempo y no terminó, FSx-Connector hará continuar el proceso automáticamente desde el punto donde se quedó.
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 consumo de memoria (variable memory_limit, que se define en el fichero de configuración php.ini).
|
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. Consulte a su proveedor de hosting para más detalles sobre la configuración de su instalación. |
Caja 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. En todas las Familias aparece entre paréntesis el número de Artículos que contienen. También se muestra los Artículos pertenecientes a la Familia de FactuSOL que ya están en WooCommerce, y los Artículos de la Familia que no se han cargado aún en WooCommerce.
Para facilitar la visualización, al situar el ratón sobre una fila, ésta se oscurece.
El botón [Actualizar] Tiene el mismo efecto que el botón [Comenzar] de la Caja de Tareas, pero restringido a una Familia. Es decir, podrá cargar Artículos nuevos, actualizar Precios o actualizar Stock (según la configuración que tenga) de los Productos que corresponden a la Familia seleccionada. |
Antes de usar FSx-Connector existen Productos en WooCommerce
Si antes de empezar a usar FSx-Connector existen Productos en WooCommerce y desea conservar dichos Productos, debe realizar las tareas previas:
- Preparar Productos en WooCommerce
Debe rellenar el campo "SKU" del Producto en WooCommerce con el "Código del Artículo" que le corresponde en FactuSOL. De esta forma evitará que se creen Productos duplicados en WooCommerce. - Preparar Secciones y Familias en FactuSOL
El nombre de las Secciones y Familias de FactuSOL debe coincidir con el nombre de las Categorías y (sub-)Categorías que les correspondan en WooCommerce. Con ello evitará que aparezcan Categorías duplicadas en WooCommerce cuando se creen Productos nuevos. - Preparar Pedidos en FSx-Connector
Es posible que tenga cierta cantidad de Pedidos en WooCommerce que ya pasó manualmente a FactuSOL. Para que no se descarguen de nuevo, debería marcarlos como descargados desde la Caja Herramientas de FSx-Pedidos. - Preparar Clientes en FSx-Connector
Si ya pasó algunos Pedidos manualmente a FactuSOL, habrá creado también los correspondientes Clientes. Para que estos Clientes no se descarguen de nuevo, debería actualizar el Diccionario de Clientes en la Caja Diccionario de Clientes de FSx-Diccionario. Recuerde que para las Cuentas de Invitado en WooCommerce debe utilizar la Dirección de Correo Electrónico en el campo "ID en WooCommerce" (ver FSx-Pedidos).
A continuación podrá utilizar FSx-Connector normalmente (ver FSx-Esquema General).
Sintaxis especial de "Descripción web del artículo" en FactuSOL
Puede encontrar la definición de las etiquetas permitidas en Preparar FactuSOL.
Veamos la sintaxis especial de "Descripción web del artículo" en FactuSOL con un ejemplo.
Tareas previas
Debería definir los atributos siguientes en la forma que se indica:
Datos que tomará FSx-Connector para crear un Producto en WooCommerce
-
Descripción Corta del Producto
-
Descripción Larga del Producto
-
Datos adicionales
El valor de la Marca se grabará en el Atributo del Producto con el mismo nombre.
El valor del Peso se grabará en el Campo del Producto con el mismo nombre. Note que, como el valor tiene decimales, se ha usado el punto como separador de la parte decimal.
-
El EAN
El valor del EAN se exporta desde FactuSOL, y se grabará en el Atributo del Producto con el nombre definido en la opción "Campo para el EAN" (ver aquí).
-
El resto de datos exportados desde FactuSOL
Los valores se grabarán en los Campos del Producto que correspondan.
Productos Variables
Los Productos Variables son un tipo de producto en WooCommerce que le permite ofrecer un conjunto de Variaciones en un Producto, con control sobre los precios, stock, imagen y más para cada Variación. Este tipo de Producto puede ser utilizado para un ítem tal como una camisa, donde se puede ofrecer tallas grande, medio y pequeño y en diferentes colores.
Los Productos Variables tienen Atributos, que son características concretas que dan lugar a variantes o Variaciones del 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 Variaciones en WooCommerce.
En FactuSOL es posible 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 WooCommerce tiene más de dos Atributos, no será posible representarlo exactamente en FactuSOL. Tampoco será posible representar el Catálogo de WooCommerce 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 desde la Tienda online (pestaña "Internet" -> "Descarga de Pedidos"), de 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.
Teniendo en cuenta las limitaciones anteriores, la forma de trabajar con "Productos Variables" es:
- Crear los Productos Variables (y sus Atributos) en WooCommerce. Cada Variación ha de tener un valor único en el campo "SKU". El campo "SKU" 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). Este campo se utilizará como Código de Artículo en FactuSOL y por tanto debe responder a la especificación de FactuSOL.
Ejemplo: Producto "Exprimidor" disponible en tres colores: rojo (SKU 'exp001'), verde (SKU 'exp002'), azul (SKU 'exp003'). Es un Producto Variable con tres Variaciones. - Crear en FactuSOL tantos Productos como Variaciones se hayan creado en WooCommerce. Se utilizará el valor del campo "SKU" de la Combinación en WooCommerce 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').
Cómo usar FSx-Exporter
Es posible utilizar FSx-Exporter para simplificar y automatizar la creación de Productos en FactuSOL:
- Una vez creado el Producto Variable con sus Variaciones en WooCommerce, utilizar FSx-Exporter para generar los ficheros ART.xls, STO.xls y LTA.xls. En el campo "Filtro de Productos" debe introducir el ID del Producto Variable recientemente creado (en ambos: "Desde ID:" y "Hasta ID:").
- Importar las hojas de cálculo obtenidas en FactuSOL. Antes de hacerlo puede añadir a las hojas más datos adicionales que no introdujo en WooCommerce. Ahora ya tiene en FactuSOL los Productos que se corresponden con las Variaciones de WooCommerce.
- Una vez creado el Producto Variable con sus Variaciones en WooCommerce, utilizar FSx-Exporter para generar los ficheros ART.xls, STO.xls y LTA.xls. En el campo "Filtro de Productos" debe introducir el ID del Producto Variable recientemente creado (en ambos: "Desde ID:" y "Hasta ID:").
- FSx-Connector detectará que los códigos de Artículo 'exp001', 'exp002' y 'exp003' existen en WooCommerce (en Variaciones 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.
- El Precio y el Stock de las Variaciones se actualiza a partir del precio y el stock de los Artículos correspondientes en FactuSOL, como para el resto de Artículos.
Además, para evitar problemas de identificación, el campo "SKU" del Producto principal (el "padre" de las Variaciones) deberá dejarse en blanco cuando se crea el Producto. - Los Pedidos se descargan de igual manera que para el resto de Artículos. Al nombre del Producto "padre" se añade los Atributos de la Variación con sus valores. Ejemplo: "Exprimidor. Color: azul".
Su mensaje: