20 Dec 2011

Instalar Zoook en Ubuntu - Parte IV: Zoook - Parametrización y conexión OpenERP

Escrito por  Roberto Segura

This article is also available in english.

Parte final de esta serie de artículos dedicados a Zoook. En esta parte y, una vez terminada la instalación de Zoook, procedemos a su parametrización y a su conexión con base de datos y con OpenERP.

Por último crearemos artículos de prueba y comprobaremos que se exportan correctamente.

NOTA: Consulte la parte III de esta serie de artículos que ha sido actualizada debido a que los repositorios de Launchpad de Zoook han sido eliminados.

1.- Instalar dependencias OpenERP

Desde OpenERP hay que instalar los siguientes módulos:

- account_payment_extension (addons-extra) +info
- base_vat
- delivery +info
- django (addons-extra) +info
- nan_product_pack (addons-extra). Opcional. Requerido para usar productos agrupados. +info
- poweremailhttps://github.com/openlabs/poweremail ) +info
- product
- product_manufacturer +info
- product_attributes (addons-extra). Opcional. Requerido para usar atributos en los productos. +info
- product_m2mcategories (addons-extra) +info
- product_images_olbs (addons-extra) +info
- sale_payment (addons-extra) +info
- sale_promotions https://code.launchpad.net/~zikzak/oosalespromotions/sale_promotions o addons-extra del proyecto OpenERP
- zoook ( https://github.com/zikzakmedia/openerp-esale )

2.- Conexión base de datos Zoook

Lo primero será crear una base de datos PostgresSQL para Zoook. En un entorno de desarrollo se puede asignar al usuario openerp (normalmente ya usado para openerp) para no tener que crear otro. En producción es mejor asegurarse de que cada usuario puede acceder exclusivamente a su base de datos.

{code lang:bash title:"Crear base de datos:"}sudo -u postgres psql
postgres=# CREATE DATABASE dj_zoook OWNER openerp;
postgres=# \l{/code}

El último comando muestra las bases de datos existentes para verificar que se ha creado correctamente. Debería mostrar algo como:

3.- Parametrización Zoook

3.1.- /home/roberto/django-projects/zoook-app/config.py

Editar el archivo y ajustar los parámetros de conexión con OpenERP. Hay que configurar todas las secciones pero destacaremos las siguientes por estar implicadas directamente con la conexión con OpenERP o la detección de errores:

LANGUAGES : Crear los lenguajes que se desaa utilizar en la tienda online. Los mismos que en OpenERP.

{code lang:python title:"Para el presente artículo queda:"}#Edit your languages
LANGUAGE_CODE = 'es'
LANGUAGES = (
    ('es', ugettext('Spanish')),
    ('en', ugettext('English')),
)
DEFAULT_LANGUAGE = 1
LOCALE_URI = True{/code}

OERP_SALE : Indica qué tienda de OpenERP estará vinculada con Zoook.

{code lang:python title:"Para el presente artículo queda:"}OERP_SALE = 1 #Sale Shop. All price, orders, ... use this Sale Shop ID.{/code}

LOGS : Rutas para almacenar los logs de Zoook

{code lang:python title:"Para el presente artículo queda:"}LOGFILE = '/home/roberto/django-projects/zoook-app/log/sync.log' #path sync log
LOGSALE = '/home/roberto/django-projects/zoook-app/log/sale.log' #path sale log{/code}

DATABASES : Datos de conexión con la base de datos propia de Zoook.

{code lang:python title:"Para el presente artículo queda:"}DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'dj_zoook',     # Or path to database file if using sqlite3.
        'USER': 'openerp',      # Not used with sqlite3.
        'PASSWORD': 'openerp',  # Not used with sqlite3.
        'HOST': 'localhost',    # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '5432',         # Set to empty string for default. Not used with sqlite3.
    }
}{/code}

OERP_CONF : Datos de conexión Webservice XML-RPC OpenERP.

{code lang:python title:"Para el presente artículo queda:"}OERP_CONF = {
    'username':'admin',
    'password':'openerp',
    'dbname':'openerp',
    'protocol':'xmlrpc', #xmlrpc
    'uri':'http://localhost', #xmlrpc
    'port':8069, #xmlrpc
#    'protocol':'pyro', #pyro
#    'uri':'localhost', #pyro
#    'port':8071, #pyro
}{/code}

3.2.- /home/roberto/django-projects/zoook-app/sync/config_path.py

Este archivo contiene la ruta a Zoook para que el proceso de sincronización por SSH pueda encontrar las dependencias necesarias.

{code lang:python title:"Para el presente artículo queda:"}djpath = '/home/roberto/django-projects/zoook-app'{/code}

3.3.- /home/roberto/django-projects/zoook-app/settings.py

Editar el archivo para asignar una clave secreta única a Zoook. Para generarla podemos usar el generador de claves seguras safepasswd.com

{code lang:python title:"Para el presente artículo queda:"}# Make this unique, and don't share it with anybody.
SECRET_KEY = 'AQUÍ_LA_CLAVE_SECRETA_ÚNICA'{/code}

3.4.- Crear tablas Zoook.

{code lang:bash title:"Generar estructura de la base de datos:"}cd ~/django-projects/zoook-app
python manage.py syncdb{/code}

El script preguntará si deseamos crear un superusuario. Decir que sí e introducir los datos de acceso del usuario que se usará para la administración de Zoook.

3.5.-/home/roberto/django-projects/zoook-app/configuration.py

Ejecutar el asistente de configuración para introducir parámetros adicionales requeridos por Django.

{code lang:bash title:"Ejecutar configuration.py:"}cd ~/django-projects/zoook-app
./configuration.py{/code}

Devolverá algo como:

 3.6.- Ajustar permisos de archivos.

{code lang:bash title:"Cambiar permisos directorio sync:"}cd ~/django-projects/zoook-app/
sudo chown -R roberto:www-data *
sudo chmod 775 -R sync{/code}

3.7.- Prueba de Zoook.

{code lang:bash title:"Cargamos el servidor:"}cd ~/django-projects/zoook-app/
python manage.py runserver{/code}

que mostrará algo como:

Al abrir en el navegador la dirección de nuestro servidor ( http://127.0.0.1:8000 ) cargará por primera vez Zoook:

Podemos acceder a la administración con los datos del superusuario creado anteriormente:

4.- Conexión Zoook - OpenERP

Se necesita acceso SSH al servidor que contiene Zoook. En este caso y para el entorno de desarrollo instalaremos OpenSSH Server:

{code lang:bash title:"Cargamos el servidor:"}sudo apt-get install openssh-server{/code}

Lo siguiente es configurar poweremail para crear una plantilla que se usará para los pedidos de venta. En este artículo no se entrará en detalles del proceso.Se puede obtener información en:

http://www.sharoonthomas.com/2009/09/poweremail-for-open-erp.html

A continuación abrir OpenERP y configurar la tienda para la conexión con Zoook.

Ventas => Configuración => Ventas => Tienda

Elegir la tienda que se va a usar con Zoook, editarla y marcar "Tienda Zoook" en la parte superior derecha. Aparecerán entonces las opciones de configuración de Zoook.

Al hacer el test de conexión debería dar un mensaje de que la conexión es correcta.

5.- Exportar productos de prueba

Sólo quedaría agregar categorías y productos de prueba. Lo único destacable en este punto es que para que un producto se exporte a la web hay que marcar en el mantenimiento "¿Exportar tienda on-line?". Una vez marcado aparecerá una nueva pestaña con nombre "e-Sale" desde donde podremos parametrizar las opciones del producto en la tienda online.

Al finalizar la creación de productos hay que volver a la configuración de la tienda para exportar productos, categorías, imágenes, etc. Al refrescar/cargar la web de Zoook se podrán ver los datos introducidos:

Con esto finaliza la serie de artículos destinada a documentar cómo poner en marcha Zoook.

5 comments

  • Comment Link Manuel Mata Viernes, 30 Diciembre 2011 01:01 posted by Manuel Mata

    Hola, estoy encantado con este tutorial, y agradezco su esfuerzo, me quedé atrancado en la creación de tablas en el paso 3.4, me da el siguiente error:
    Error: No module named messages
    ¿alguna sugerencia? gracias por todo y feliz año nuevo.

  • Comment Link Manuel Mata Viernes, 30 Diciembre 2011 16:41 posted by Manuel Mata

    Ya conseguí pasar del punto anterior, y llegué hasta el final, únicamente cuando quiero cargar por primera vez la tienda en http://127.0.0.1:8000 me da el siguiente error
    AttributeError at /
    'str' object has no attribute 'site_title'
    ¿qué podría ser?
    gracias

  • Comment Link Roberto Segura Viernes, 30 Diciembre 2011 23:09 posted by Roberto Segura

    Hola Manuel,

    el error parece tener que ver con la configuración del punto 3.5 (ejecución de ./configuration.py ). Asegúrate de haber ejecutado el asistente y de haberlo rellenado convenientemente.

    Un saludo.

  • Comment Link Manuel Mata Martes, 31 Enero 2012 20:02 posted by Manuel Mata

    hola, por fin conseguí instalarlo y va genial, lo que pasa es que solo puedo trabajar desde la misma máquina con la dirección http://127.1.1.0:8000, como podría acceder y verlo desde otra máquina, qué tendría que cambiar? gracias

  • Comment Link Juan Josepimentel Miércoles, 08 Febrero 2012 20:02 posted by Juan Josepimentel

    Realice todos los pasos tal cual lo indicas en el articulo pero no logro ver los productos, por mas que los exporto, siempre me aparece la pagina de presentacion de zook.

Leave a comment

Los campos marcados con (*) son obligatorios.

Domatix Technologies, S.L.U. - C/Espinosa 8 - 46008 - Valencia - Telf.: 963 230 962
Delegación Murcia - C/Juan de Juanes 4 - 30740 - San Pedro del Pinatar - Murcia