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
- poweremail ( https://github.com/openlabs/poweremail ) +info
- product
- product_
- product_attributes (addons-extra). Opcional. Requerido para usar atributos en los productos. +info
- product_
- product_images_olbs (addons-extra) +info
- sale_payment (addons-extra) +info
- sale_promotions https:/
- 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.












