DOCUMENTO TÉCNICO
Sincronizaciones desde ERP hacia Prestashop
Instrucciones previas para la generación de vistas
Las Sincronizaciones se realizarán por conector. Cada conector puede realizar sincronizaciones por idioma y tienda.
Es necesario que LabelConnect tenga acceso de lectura a los objetos de la base de datos del ERP que queremos recuperar, así como acceso escritura a los objetos en donde se insertarán clientes, direcciones de clientes y pedidos en caso de necesitar insertar datos en el ERP.
Todos los registros deben contener un identificador único.
Para generar las vistas correctamente, deben devolver como mínimo los campos obligatorios, igualmente y debido a las diferentes formas de trabajar con Prestashop es posible que el registro en cuestión requiera como mínimo campos que en un principio no son obligatorios.
Para que las sincronizaciones sean lo más eficaces posible, es necesario devolver un campo que indique la fecha en que se generó o modificó el registro. De no ser así deberán de traspasarse en cada sincronización todos los registros, lo que aumentará considerablemente la velocidad de trabajo.
Orden de sincronización
La sincronización si se realiza manualmente, se debe realizar en el siguiente orden:
1. Divisas
No requiere sincronizaciones previas
2. Zonas
No requiere sincronizaciones previas
3. Países
Requisitos previos a la sincronización:
- Sincronizar Divisas
- Sincronizar Zonas
4. Provincias
Requisitos previos a la sincronización:
- Sincronizar Zonas
- Sincronizar Países
5. Grupo clientes
No requiere sincronizaciones previas
6. Clientes
No requiere sincronizaciones previas
7. Direcciones de clientes
Requisitos previos a la sincronización:
- Sincronizar Países
- Sincronizar Provincias
- Sincronizar Clientes
8. Categorías
No requiere sincronizaciones previas
9. Proveedores
No requiere sincronizaciones previas
10. Fabricantes
No requiere sincronizaciones previas
11. Grupos de reglas de tasas
No requiere sincronizaciones previas
12. Tasas
No requiere sincronizaciones previas
13. Reglas de tasas
Requisitos previos a la sincronización:
- Sincronizar Grupos de reglas de tasas
- Sincronizar Tasas
14. Formas de envió
No requiere sincronizaciones previas
15. Atributos
No requiere sincronizaciones previas
16. Valores de atributos
Requisitos previos a la sincronización:
- Sincronizar Atributos
17. Características
No requiere sincronizaciones previas
18. Valores de características
Requisitos previos a la sincronización:
- Sincronizar Características
19. Productos
Requisitos previos a la sincronización:
- Sincronizar Categorías
20. Precios
Requisitos previos a la sincronización:
- Sincronizar Divisas
- Sincronizar Países
- Sincronizar Grupo de clientes
- Sincronizar Clientes
- Sincronizar Productos
21. Stocks
Requisitos previos a la sincronización:
- Sincronizar Productos
22. Combinaciones
Requisitos previos a la sincronización:
- Sincronizar Productos
Mapeo de campos
Leyenda
Obligatorio è Campo obligatorio
Tipo booleano è Campo de tipo booleano (0=false, 1=true)
Opciones para la mejora de mapeos
Es posible ejecutar una rutina programada en C# para realizar transformaciones de valores.
LabelConnect almacena los mapeos de los identificadores de cada registro en todas las sincronizaciones una vez se han sincronizado (mapeo automático). Es posible que el Prestashop del cliente contenga datos, para poder mapear dichos identificadores de verán hacer manualmente desde el administrador de controladores.
Es posible mapear manualmente registros del ERP con registros de Prestashop ya existentes mediante el administrador de controladores (apartado: Opciones de lectura/”tipo de sincronización”/8. Relación de campos)…
Divisas
- id [int(10)]
- Obligatorio.
- Identificador único
- name [varchar(32)]
- Obligatorio.
- Nombre de la Divisa
- iso_code [varchar(3)]
- Obligatorio.
- ISO internacional de la Divisa
- iso_code_num [varchar(3)]
- Obligatorio.
- Número ISO internacional de la Divisa
- blank [tinyint(1)]
- Obligatorio.
- Tipo booleano
- sign [varchar(8)]
- Obligatorio.
- Símbolo de Divisa
- format [tinyint(1)]
- Obligatorio.
- Formato de Divisa
- decimals [tinyint(1)]
- Obligatorio.
- Tipo booleano.
- Indica si trabaja con decimales
- conversion_rate [decimal(13,6)]
- Obligatorio.
- Conversión con Divisa principal
- deleted [tinyint(1)]
- Tipo booleano.
- Indica si el registro
- active [tinyint(1)]
- Tipo booleano.
- Indica si el registro está activo
Zonas
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- name [varchar(64)]
- Obligatorio.
- Nombre de la zona
- active [tinyint(1)]
- Obligatorio.
- Tipo booleano.
- Indica si el registro está activo
Países
- Id [int(10)]
- Obligatorio.
- Identificador único del registro
- id_zone [int(10)]
- Obligatorio.
- Identificador único de zona
- id_currency [int(10)]
- Obligatorio.
- Identificador único de Divisa
- call_prefix [int(10)]]
- Tamaño máximo = 3
- iso_code [varchar(3)]
- Obligatorio.
- Número ISO internacional de la país
- active [tinyint (1)]
- Obligatorio.
- Tipo booleano.
- Indica si el registro está activo
- contains_states [tinyint (1)]
- Tipo booleano.
- need_identification_number [tinyint (1)]
- Obligatorio.
- need_zip_code [tinyint (1)]
- Tipo booleano.
- Código postal del país
- zip_code_format [varchar(12)]
- Formato de código postal
- Debe ser como "NNNNN" o "LNL NLN" donde N = Número y L = Letra
- display_tax_label [tinyint (1)]
- Tipo booleano.
- name [varchar(64)]
- Obligatorio.
- Tamaño máximo = 64
- Multi idioma
- Nombre de la zona
Provincias
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- id_zone [int(11)]
- Obligatorio.
- Identificador único de zona
- id_country [int(11)]
- Obligatorio.
- Identificador único de país
- iso_code [varchar(7)]
- Obligatorio.
- Número ISO internacional de la provincia
- name [varchar(64)]
- Obligatorio.
- Nombre de la zona
- Active [tinyint(1)]
- Obligatorio.
- Tipo booleano.
- Indica si el registro está activo
Grupos de clientes
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- reduction [decimal(17,2)]
- reducción
- price_display_method [tinyint(4)]
- Obligatorio.
- Método para mostrar precio
- show_prices [tinyint(1)]
- Obligatorio.
- Tipo booleano.
- Indica si mostrará el precio
- date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
- date_upd [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
- name [varchar(32)]
- Obligatorio.
- Multi idioma
- nombre
Clientes
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- id_default_group [int(10)]
- Identificador único del grupo de clientes
- id_lang [int(10)]
- Identificador único de idioma
- id_shop [int(11)]
- Identificador único de la tienda
- passwd [varchar(32)]
- Tamaño máximo = 32
- Tamaño mínimo = 5
- Dependiendo de la configuración de la tienda
- Contraseña
- lastname [varchar(32)]
- Obligatorio.
- Tamaño máximo = 32
- Apellido
- firstname [varchar(32)]
- Obligatorio.
- Tamaño máximo = 32
- Nombre
- email [varchar(128)]
- Obligatorio.
- Tamaño máximo = 128
- Correo electrónico
- birthday (date)
- Formato (AAAA-MM-DD)
- fecha de cumpleaños
- website [varchar(128)]
- Url de la web
- company [varchar(64)]
- Nombre de la empresa
- secure_key [varchar(32)]
- Obligatorio.
- clave secreta
- max_payment_days [int(10)]
- días de pago máximo
- note [text]
- Tamaño máximo = 65000
- Debe ser código html
- deleted [tinyint(1)]
- Tipo booleano.
- Indica si el registro está eliminado
- optin [tinyint(1)]
- Tipo booleano.
- newsletter [tinyint(1)]
- Tipo booleano.
- is_guest [tinyint(1)]
- Tipo booleano.
- Indica si el cliente es anónimo
- show_public_prices [tinyint(1)]
- Tipo booleano.
- Mostrar precio público
- active [tinyint(1)]
- Tipo booleano.
- Registro activo
- newsletter_date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- last_passwd_gen [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
Direcciones de clientes
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- id_manufacturer [int(10)]
- Identificador único del fabricante
- id_supplier [int(10)]
- Identificador único del proveedor
- id_country [int(10)]
- Obligatorio.
- Identificador único de país
- id_customer [int(10)]
- Obligatorio.
- Identificador único de cliente
- alias [varchar(32)]
- Obligatorio.
- alias
- company [varchar(64)]
- nombre empresa
- lastname [varchar(32)]
- Obligatorio.
- apellido
- firstname [varchar(32)]
- Obligatorio.
- nombre
- vat_number [varchar(32)]
- Address1 [varchar(128)]
- Obligatorio.
- dirección 1
- address2 [varchar(128)]
- dirección 2
- postcode [varchar(12)]
- código postal
- city [varchar(64)]
- Obligatorio.
- ciudad
- other [text]
- otro dato
- phone [varchar(32)]
- teléfono
- phone_mobile [varchar(32)]
- teléfono móvil
- dni [varchar(16)]
- DNI
- Deleted [tinyint(1)]
- Tipo booleano.
- Indica si el registro está eliminado
- date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
- date_upd [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de actualización
Categorías
Es necesario vincular un registro del ERP con el primer nivel de categorías de Prestashop, esto es posible mapeando manualmente dicho registro desde el administrador de controladores (apartado: Opciones de lectura/”tipo de sincronización”/8. Relación de campos). El identificador del registro en Prestashop es: 2 = home
- id [int(10)]
- Obligatorio.
- Identificador único
- id_parent [int(10)]
- ID de la familia a la que pertenece
- nleft [int(10)]
- nright [int(10)]
- active [tinyint(1)]
- Tipo booleano.
- Registro activo
- date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
- date_upd [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de actualización
- position [int(10)]
- Posición del registro
- is_root_category [tinyint(1)]
- Tipo booleano.
- Se la categoría principal? (único nivel)
- name [varchar(128)]
- Obligatorio.
- Multi idioma
- Título del registro
- link_rewrite [varchar(128)]
- Obligatorio.
- Multi idioma
- Url de la categoría
- description [text]
- Descripción de la categoría
- Multi idioma
- meta_title [varchar(128)]
- Meta título que aparece en la página de la categoría
- Multi idioma
- meta_description [varchar(255)]
- Meta descripción que aparece en la página de la categoría
- Multi idioma
- meta_keywords [varchar(255)]
- Meta keys que aparecen en la página de la categoría
- Multi idioma
Proveedores
- id [int(10)]
- Obligatorio.
- Identificador único
- name [varchar(64)]
- Obligatorio.
- Título del registro
- link_rewrite [varchar(128)]
- Título del registro
- active [tinyint(1)]
- Tipo booleano.
- Indica si el registro está activo
- date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
- date_upd [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de actualización
- description [text]
- Descripción de la categoría
- Multi idioma
- meta_title [varchar(128)]
- Meta título que aparece en la página de la categoría
- Multi idioma
- meta_description [varchar(255)]
- Meta descripción que aparece en la página de la categoría
- Multi idioma
- meta_keywords [varchar(255)]
- Meta keys que aparecen en la página de la categoría
- Multi idioma
Fabricantes
- id [int(10)]
- Obligatorio.
- Identificador único
- name [varchar(64)]
- Obligatorio.
- Título del registro
- active [tinyint(1)]
- Tipo booleano.
- Indica si el registro está activo
- date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
- date_upd [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de actualización
- description [text]
- Descripción de la categoría
- Multi idioma
- short_description [text]
- Descripción de la
- Multi idioma
- meta_title [varchar(128)]
- Meta título que aparece en la página de la categoría
- Multi idioma
- meta_description [varchar(255)]
- Meta descripción que aparece en la página de la categoría
- Multi idioma
- meta_keywords [varchar(255)]
- Meta keys que aparecen en la página de la categoría
- Multi idioma
Tasas
- id [int(10)]
- Obligatorio.
- Identificador único
- rate [decimal(10,3)]
- Tasa (%)
- active [tinyint(1)]
- Tipo booleano.
- Indica si el registro está activo
- deleted [tinyint(1)]
- Tipo booleano.
- Indica si el registro está eliminado
- name [varchar(32)]
- Obligatorio.
- Multi idioma
- Título del registro
Formas de envío
- id [int(10)]
- Obligatorio.
- Identificador único
- deleted [tinyint(1)]
- Tipo booleano.
- Indica si el registro está eliminado
- is_module [tinyint(1)]
- Tipo booleano.
- Indica si es un módulo
- id_tax_rules_group [int(10)]
- Obligatorio.
- Grupo de tasas
- id_reference [int(10)]
- ID de referencia
- name [varchar(64)]
- Obligatorio.
- Título de la forma de envío
- active [tinyint(1)]
- Tipo booleano.
- Indica si el registro está activo
- url [varchar(255)]
- Url de la forma de envío
- shipping_handling [tinyint(1)]
- Tipo booleano.
- manipulación de envíos
- shipping_external [tinyint(1)]
- Tipo booleano.
- Envío externo
- shipping_method [int(2)]
- Método de envío
- max_width [int(10)]
- Máximo de ancho
- max_height [int(10)]
- Máximo de altura
- max_depth [int(10)]
- máximo de profundidad
- max_weight [int(10)]
- Máximo de peso
- external_module_name [varchar(64)]
- Nombre del módulo externo
- need_range [tinyint(1)]
- Tipo booleano.
- Indica si necesita gama
- position [int(10)]
- Posición del registro
- delay [varchar(128)]
- Obligatorio.
- Retraso del envío
Atributos para productos
Ejemplo: tallas, colores…
- id [int(11)]
- Obligatorio.
- Identificador único del registro
- is_color_group [tinyint(1)]
- Tipo booleano.
- Indica si es un color
- group_type [varchar(255)]
- Obligatorio.
- Identificador único del registro
- position [int(11)]
- Obligatorio.
- Indica la posición de la característica
- name [varchar(128)]
- Obligatorio.
- Multi idioma
- Título de la característica
- public_name [varchar(64)]
- Obligatorio.
- Multi idioma
- Título público de la característica
Valores de atributos para productos
- id [int(11)]
- Obligatorio.
- Identificador único del registro
- id_attribute_group [int(11)]
- Obligatorio.
- Tipo booleano.
- Indica la característica padre
- color [varchar(32)]
- Formato exadecimal (#{0:X2}{1:X2}{2:X2})
- Indica el color (si es un color)
- position [int(11)]
- Obligatorio.
- Indica la posición del valor de la característica
- name [varchar(128)]
- Obligatorio.
- Multi idioma
- Título del valor de la característica
Características para productos
Ejemplo: medidas, peso…
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- position [int(10)]
- Obligatorio.
- Indica la posición del atributo
- name [varchar(128)]
- Obligatorio.
- Multi idioma
- Título del atributo
Valores de características para productos
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- id_feature [int(10)]
- Obligatorio.
- Tipo booleano.
- Indica el atributo padre
- custom [tinyint(3)]
- Tipo booleano.
- Indica si el valor del atributo es personalizado
- value (varchar(255))
- Obligatorio.
- Multi idioma
- Título del valor del atributo
Productos
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- id_supplier [int(10)]
- Identificador único del proveedor
- id_manufacturer [int(10)]
- Identificador único del fabricante
- id_category_default [int(10)]
- Obligatorio.
- Identificador único de la predeterminada
- id_default_image [int(10)]
- Identificador único de la imagen por defecto
- id_default_combination [int(10)]
- Identificador único de la combinación
- id_tax_rules_group [int(11)]
- Identificador único del grupo de tazas
- id_shop_default [int(10)]
- Identificador único de la tienda
- on_sale [tinyint(1)]
- Tipo booleano.
- Indica si es una venta
- EAN13 [varchar(13)]
- Identificador Ean
- minimal_quantity [int(10)]
- Cantidad mínima
- Price [decimal(20,6)]
- Precio
- unity [varchar(255)]
- Unidades
- unit_price_ratio [decimal(20,6)]
- relación precio unitario
- additional_shipping_cost [decimal(20,2)]
- coste adicional de envío
- reference [varchar(32)]
- Referencia del registro
- supplier_reference [varchar(32)]
- referencia proveedor
- location [varchar(64)]
- Localización
- width [decimal(20,6)]
- Anchura del producto
- height [decimal(20,6)]
- Altura del producto
- depth [decimal(20,6)]
- Profundidad del producto
- weight [decimal(20,6)]
- Peso del producto
- quantity_discount [tinyint(1)]
- descuento de cantidad
- active [tinyint(1)]
- Tipo booleano.
- Indica si el registro está activo
- available_for_order [tinyint(1)]
- Tipo booleano.
- Disponible para pedir
- available_date [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha disponibilidad
- show_price [tinyint(1)]
- Tipo booleano.
- Mostrar precio
- visibility [varchar(7)]
- ENUM('both', 'catalog', 'search', 'none')
- Tipo booleano.
- Se visible en la web?
- date_add [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de creación
- date_upd [datetime]
- Formato (AAAA-MM-DD HH: MM: SS)
- Fecha de actualización
- meta_title [varchar(128)]
- Multi idioma
- Meta título que aparece en la página de la categoría
- meta_description [varchar(255)]
- Multi idioma
- Meta descripción que aparece en la página de la categoría
- meta_keywords [varchar(255)]
- Multi idioma
- Meta keys que aparecen en la página de la categoría
- link_rewrite [varchar(128)]
- Obligatorio.
- Multi idioma
- Url del producto
- name [varchar(128)]
- Obligatorio.
- Multi idioma
- Título del producto
- description [text]
- Multi idioma
- Descripción del producto
- description_short [text]
- Multi idioma
- Descripción corta del producto
- state [int]
- Obligatorio
- Siempre a 1
Precios
- id [int(10)]
- Obligatorio.
- Identificador único del registro
- id_shop [int(11)]
- Identificador único de tienda
- id_cart [int(11)]
- Identificador único de tienda
- id_product [int(10)]
- Identificador único del producto
- id_product_attribute [int(10)]
- Identificador único de la combinación
- id_currency [int(10)]
- Identificador único de Divisa
- id_country [int(10)]
- Identificador único de país
- id_group [int(10)]
- Identificador único de grupo de clientes
- Price [decimal(20,6)]
- Obligatorio.
- Precio
- from_quantity [int(8)]
- Obligatorio.
- Cantidad mínima
- reduction [decimal(20,6)]
- Reducción
- reduction_type [varchar(10)]
- Obligatorio.
- Opciones: amount = Divisa, percentage = porcentaje
- Tipo de reducción
- from [datetime]
- Obligatorio.
- Formato (AAAA-MM-DD HH: MM: SS)
- Activo desde la fecha …
- to [datetime]
- Obligatorio.
- Formato (AAAA-MM-DD HH: MM: SS)
- Activo hasta la fecha …
- Reduction_tax [tinyint(1)]
- Tipo Booleano
- Obligatorio.
Stock
- id [int(11)]
- Obligatorio.
- Identificador único del registro
- id_product [int(11)]
- Obligatorio.
- Identificador único del producto
- id_product_attribute [int(11)]
- Identificador único de la combinación
- id_shop [int(11)]
- Identificador único de la tienda
- quantity [int(10)]
- Obligatorio.
- Cantidad
- depends_on_stock [tinyint(1)]
- Tipo booleano.
- depende de stock
- out_of_stock [tinyint(1)]
- Tipo booleano.
- ¿Sin stock?
Sincronizaciones desde Prestashop hacia ERP
La sincronización debe realizarse mediante código C#. Se provee al código creado por el usuario con variables en donde se encontrarán todos los registros de Prestashop y todo lo necesario para insertar directamente en la base de datos del ERP.
Código de apoyo para la generación de código C#
La función inicial es Init y debe existir en el script.
Variables a utilizar:
DATOS DE PRESTASHOP
Listado de clientes de Prestashop (contiene líneas de pedidos en la variable ClientsList[0].associations de tipo order_row)
private List ClientsList;
Listado de pedidos de Prestashop
private List OrdersList;
Listado de transportistas de pedidos de Prestashop
private List OrderCarrierList;
Listado de reglas de carrito de pedidos de Prestashop
private List OrderCartRuleList;
Listado de pedidos históricos de Prestashop
private List OrderHistoryList;
Listado de facturas de Prestashop
private List OrderInvoiceList;
Listado de pagos de pedidos de Prestashop
private List OrderPaymentList;
Listado de estados de pedidos de Prestashop
private List OrderStateList;
DATOS DEL ERP
Cadena de conexión del ERP
private string ConnectionStringErp = [Cadena de conexión]
Listado de clientes de ERP
private List ClientsAllList
Listado de direcciones de clientes de ERP
private List
AddressList
Listado de países de ERP
private List CountriesList
Listado de provincias de ERP
private List StatesList
Listado de Divisas de ERP
private List CurrenciesList
Listado de transportistas de ERP
private List CarriersList
Listado de combinaciones de ERP
private List CombinationsList
Listado de características de ERP
private List ProductOptionValueList
DATOS RELACIONADOS ENTRE ERP Y PRESTASHOP
Listado de relación de identificadores de clientes de ERP y Prestashop
private List ClientsIdsList
Listado de relación de identificadores de características de ERP y Prestashop
private List ProductOptionValueIdsList
Listado de relación de identificadores de productos de ERP y Prestashop
private List ProductsIdsList
ESTRUCTURA DE ENTIDADES
Información de entidades
Ejemplo código C# de inicio
public void Init(){
try
{
//***** Inserte el código a ejecutar
//***** Llame a sus funciones
//***** Ejemplo:
//***** GuardarEnBaseDeDatos();
}
catch (Exception ex)
{
throw new Exception("fallo");
}
}
//***** Ejemplo:
//***** private void GuardarEnBaseDeDatos(){
//***** Inserte el código para realizar el insert en la base de datos de su Erp
//***** using (SqlConnection conn = new SqlConnection(ConnectionStringErp))
//***** {
//***** conn.Open();
//***** }
//***** }