Módulo OSCommerceWS

= Introducción = OSCommerce es un módulo que le permite el acceso a una tienda on line basada en OSCommerce desde Dolibarr.

El módulo OSCommerceWS permite sincronizar una parte de la información de una instalación OSCommerce 2 con una instalación Dolibarr via Web services.

De este modo, es posible:
 * publicar en OSCommerce los productos introducidos en Dolibarr
 * importar los pedidos (y sus detalles) en Dolibarr desde OSCommerce
 * importar los clientes de OSCommerce en Dolibarr

Este módulo funciona a través de la utilización de una librería que facilita el uso de los web services: NuSOAP

= Instalación =

La carpeta ws_server/ debe ser copiada en el servidor de OSCommerce, en la carpeta catalog/. Debe configurarse, modificando el fichero ws_server/includes/configuration.php indicando la configuración de OSCommerce.

= Configuración =

= Interfaz = Podemos acceder a la interfaz a través del menú OSCommerce en el menú superior de la interfaz por defecto de Dolibarr. Este menú nos da una primera página recapitulativa de los datos disponibles en OSCommerce.

El menú izquierdo permite acceder a más características, incluyendo las funcionalidades de sincronización.

La lista de funcionalidades siguientes utilizan la convención export=Dolibarr->OSCommerce y import=OSCommerce->Dolibarr

Exportar un producto
Al hacer clic en el link AddProd (que debe ser traducido al español como Añadir producto, vamos a la exportación de productos. Sólo tenemos que seleccionar un producto y una cantidad, a continuación, pulsar el botón OSCsell( que debe ser traducido al español por Vender en OSCommerce) para que la consulta de creación sea enviada.

Atención, la lista de los productos está limitada por las limitaciones de las listas de Dolibarr. Por tanto, puede ser que más allá de, por ejemplo, 50 productos, sea imposible ver el resto de los productos. Para cambiar este límite, podemos modificar la configuración de Dolibarr, o cambiarlo directamente en htdocs/oscommerce_ws/produits/OSCVente.php, buscar $html->select_produits y modificar $conf->produit->limit_size

Importar un producto
La importación de un producto se realiza a través del menú "Productos". La página de importación muestra una lista de productos disponibles en OSCommerce. El vínculo de la derecha muestra "Importar" o "Editar", en función de si los productos figuran o no en la tabla llx_osc_product.

Si un producto existe localmente y lo eliminamos (localmente), encontramos un bonito error de sincronización, donde aparece siempre el producto a "Editar" en lugar de la opción importar. Un producto importado de esta manera se importa desde cualquier categoría.

Un mensaje al terminarla importación nos indicará si el producto ha sido importado.

Importar un cliente
La importación de un cliente se realiza mediante el menú de la izquierda Clientes. Tendremos una lista de clientes y de forma idéntica a la lista de los productos, podemos elegir importar un cliente en Dolibarr desde OSCommerce a través del enlace Importar.

Un mensaje informativo confirmará el éxito de la operación, indicando al mismo tiempo cuál es el identificador interno asignado a este cliente en Dolibarr.

Importar un pedido
La importación de un pedido se realiza mediante el menú de la izquierda Pedidos.

La importación de un pedido requiere la previa existencia en Dolibarr del cliente y de los productos pedidos. Si este no es el caso, un mensaje indicará la falta de productos o clientes, y bloqueará la operación de importación.

Sincronizar una categoría
La sincronización de las categorías están, a día de hoy, siempre a mano. El uso del menú de la izquierda categorías nos conduce a una página de lista de categorías existentes en Dolibarr. Es necesario indicar, para cada categoría de Dolibarr, a que categoría OSCommerce corresponde. De momento no es muy intuitivo, ya que es necesario conocer el número de categorías en OSCommerce para poder aplicar la correspondencia.

= Problemas =

PHP5
La librería NuSOAP original (ha sido modificada en el código de Dolibarr para la versión 2.2) entra en conflicto con la extensión SOAP PHP5, ya que el nombre del cliente SOAP, SoapClient,es idéntico en ambos casos. Las otras clases no causan conflictos.

Esto da lugar a un error del tipo "Cannot redeclare class SoapClient".

Error I/O
Es posible que algunas consultas del cliente (Dolibarr) devuelva un error fatal indicando un problema de entrada/salida (un error de HTTP 1.1 500 del lado del servidor). Este mensaje de error no es muy explícito en el sentido de que a menudo es un problema en un método SOAP únicamente, y no de un script, como daría a pensar el mensaje.

Para corregir, uno de los dos métodos siguientes es el bueno (aún sin filtrar, lo siento):
 * Reordenar las llamadas, del lado del servidor, a $ soap_server->register(método).
 * Indicar los parámetors $in y $out en las mismas llamadas a registrar.

De una u otra manera, esta es la parte que crea el problema.

Mi producto no aparece en OSCommerce
OSCommerce requiere una entrada de descripción del producto para el producto se muestre. Esto significa que el producto tiene un nombre (y eventualmente una descripción) que le son própias. Todo esto es muy bonito, el único problema (según la versión de Dolibarr que se use) es que es posible que la consulta de inclusión de la descripción del producto en el lado OSCommerce no funcione. Se basa en la consulta situada en ws_server/ws_articles.php, en la función create_article. Debemos comentar las 3 líneas que comienzan con 'products_head' en la segunda tabla.

Un producto bien insertado en OSCommerce reenvia inevitablemente un mensaje del tipo el producto JDAA2 Areosol 60/2 se encuentra a la venta en línea, consultar. Si este mensaje no aparece, es probable que el producto no haya sido insertado.