Tienda Online / Ecommerce para ERP con SQL Server

sqlserverweb4x4
Estándar

Casi la totalidad de los sistemas de ecommerce actuales están basados en plataformas Open Source, tanto en el Front / Back, como en el motor de base de datos usado para los mismos. Lo mas común son sistemas sobre PHP (ya sea con Frameworks tipo Symfony o parecidos) entre los cuales tenemos Prestashop, Magento, y plugins para CMS como WooCommerce o VirtueMart, que funcionan sobre MySQL.

¿Pero que sucede con las tiendas que ya manejan un ERP sobre SQL Server y quieren vender online?. Al contrario que en el mundo digital, en el ámbito de las aplicaciones de gestión o ERP´s, las soluciones que trabajan con SQL Server son numerosas.  En este caso si el ERP ya tiene un modulo de ecommerce, lo normal es que la empresa opte por esta opción, pero no todas lo tienen , y en este caso existen otras opciones en las que Web4x4 puede ayudarte en tu negocio.

Como expertos en desarrollos de ecommerce hemos desarrollado varias plataformas propias, una sobre ASP clásico, y otra mas actual desarrollada en C# (que lanzaremos dentro de unos meses). En todos los casos nuestros desarrollos de ecommerce se realizan usando SQL Server como motor de base de datos. Para pymes existe una version SQL Server “Express” gratuita y que proporciona las funcionalidades adecuadas para cualquier ecommerce normal, lo que hace que el precio respecto a una opción Open Source sea muy parecido. En nuestro caso al igual que otras consultoras con Prestashop o Magento, lo que cobramos es la configuración e inicialización de la tienda online.

Pero ademas de estas plataformas propias podemos desarrollar sistemas de ecommerce “ad-hoc” para empresas que tengan su ERP sobre SQL Server, usando nuestro conocimiento y experiencia en entornos complejos Microsoft. Podemos generar un ecommerce que se integre de manera transparente con el ERP de tal forma que el negocio se beneficie de la venta online sin tener que cambiar su aplicación de gestión.

¿Te imaginas poder tener las ordenes de pedido de manera automática en tu ERP desde tu tienda online? Eso solo es la punta del iceberg: Clientes, Productos, Facturas, Estadísticas, etc, todo lo que puedas pedir es susceptible de integración, siempre que la base de datos sea legible.

La productividad y la información son 2 puntos clave en los negocios del siglo XXI y la integración de todas las plataformas de venta es algo imprescindible para un negocio moderno.

Si quieres mas información escríbenos a david.moral@web4x4.es o llámanos al 628 81 89 89

 

Como crear un marketplace I

Marketplace
Estándar

El verdadero negocio ya no está en el ecommerce tradicional. Al igual que las pequeñas tiendas de barrio que fueron absorbidas por los grandes supermercados en el mundo real, en el mundo digital empieza a producirse el mismo fenomeno entre las tiendas online y los marketplace.

El ejemplo mas usado de marketplace lo tenemos en Amazon, un “all in one” donde podemos encontrar casi de todo, y que no parece que tenga techo en su cifra de ventas, al menos, de momento. Las ventajas para los usuarios son evidentes, poder comprar todo en el mismo sitio, al igual que en un comercio fisico, ademas, debido al volumen de ventas, estas plataformas pueden ofrecer otros servicios adicionales o el envío, a precios muy competitivos, incluso en ocasiones gratis.

La cuestión es como iniciar un proyecto de este estilo y en esta serie de post intentaré desgranar los puntos básicos en el tema técnico, que, debido a mi trayectoria, he podido ver de primera mano. A nivel profesional he participado en dos proyectos de marketplace, con resultados dispares (Portobellostreet.es y Timetak.com).

Experiencia Previa

Por un lado tenemos Portobellostreet.es, del que soy IT Manager y creador de toda la infraestructura técnica, todo con codigo inhouse, sin usar plataformas preprogramadas, como Magento o Prestashop. En Timetak fui el Project Manager de todo el desarrollo de la plataforma, tambien con código “adhoc”.

Plataformas ecommerce vs codigo “adhoc”.

Juan Macías es blogger, CEO de deMartina.com y consejero de Adigital (Asociación Española para la Economía Digital) y participa como inversor y advisor en varias start-ups. En su blog, escribió hace un tiempo un articulo sobre la situacion actual del ecommerce en España, en el cual, hablaba precisamente de este tema y de la plataforma a usar en este caso.

El quid de la cuestion es si es mejor usar plataformas preprogramadas o realizar desarrollos a medida. Mi opinión (y me ha costado el descarte en algun proceso de selección) es realizarlo siempre a medida. He aquí mis razones para hacerlo de esta forma:

  • Parametrizacion Inicial: Las plataformas como Magento y Prestashop aparecieron con funcionalidades que permiten a cualquier usuario medio crear una tienda online sin conocimientos de programación. Esto solo se consigue con una plataforma extremadamente rigida en cuanto al código que hay que mantener o modificar. En estos momentos, por ejemplo, Magento es una plataforma que ni siquiera un usuario medio es capaz de parametrizar, teniendo que recurrir a un programador, que en muchas ocasiones tiene esos mismos problemas, ya que al ser tan rigido, modificar cualquier aspecto se convierte en una locura.
  • Modificación y adaptación a nuevos escenarios: Al igual que al poner en marcha la beta de nuestro marketplace podemos hacerlo con este tipo de sistemas, cuando nuestro negocio evolucione y sea necesario pivotar, ofrecer otro tipo de servicios online, integraciones con ERP´s, CRM´s, etc, es muy probable que meter estos cambios en un Magento (por poner un ejemplo) sea directamente una hazaña, por las propias restricciones del sistema.
  • Actualizaciones: Estos sistemas reciben actualizaciones de forma constante, lo que hace complicado tocar partes “troncales” del propio sistema, ya que la actualización “sobreescribe” el código que tengamos insertado, o puede dejar inservibles nuestros propios módulos al cambiar la programación de los troncales.
  • Personal técnico: En una entrevista con 2 CEO´s de una empresa que aspira a convertirse en el Amazon español, me comentaban que era muy difícil encontrar verdaderos expertos en Magento y que eso complicaba la gestión de la plataforma, esto es otro handicap a la hora de apostar por estos sistemas.

eCommerce, la que se está liando

Tampoco digo que el código adhoc sea la panacea para un marketplace ( o cualquier negocio online) pero según mi punto de vista, cuando ya dispones (o vas a disponer, dependiendo del nivel de inversión) de un equipo de desarrollo, el código “hecho en casa” se ajustara al 100% a tus necesidades y podrá evolucionar en el tiempo junto a tu negocio, adaptándose a los cambios que se vayan necesitando.

Sobre el tema del personal técnico, usando un lenguaje de programación común (C#, PHP, o Java) no deberías de tener problemas si tienes rotación de personal, siempre que tu proyecto y equipo cumpla una serie de estándares sobre documentación y patrones de programación, del tal forma que el know-how del proyecto no resida solamente en la cabeza de una u otra persona.

Comienzo de proyecto

Es importante en este tipo de proyectos contar con las personas adecuadas para liderar la parte técnica.

Deben ser conocedores del mundo ecommerce, a nivel desarrollo y sistemas, para tener una visión estratégica a largo plazo que haga posible el crecimiento sin problemas. Ha continuación desgranamos puntos importantes para comenzar un proyecto de estas características.

Análisis Funcional

Es quizás la parte mas importante del proyecto. Aquí se deciden las funcionalidades y reglas de negocio que definen todo el sistema: tanto la web (Front), como los paneles de vendedores o proveedores (Back). Este análisis funcional definirá buena parte de la estructura de datos y funciones a desarrollar, y hará ,que la evolución y mantenimiento de todo el sistema sean en el futuro mas sencillos o convertirlos en un infierno. Es conveniente realizar este análisis pensando en una metodologia LEAN, que nos permita diseñar un PMV (Producto Minimo Viable) para probar el modelo de negocio sin tener que desarrollar el 100% de la plataforma. Algo que la mayoria de startups no se pueden permitir,

Elección de lenguaje de programación, servidor web, base de datos

El CTO debe hacer un estudio muy detallado de la previsión de visitas que tendrán las diferentes áreas del marketplace, ya que hay que decidir entre diferentes tipos de servidores y lenguajes, los cuales se valoran por varios criterios: velocidad, escalabilidad, mantenimiento, fiabilidad, coste, etc.

Incluso a nivel de base de datos es necesario tener en cuenta que uso y necesidades de análisis se darán en el futuro, ya que puede interesar desarrollar directamente sobre herramientas NoSQL como MongoDB o Cassandra.

En este artículo de nuestro blog desgranamos un poco los diferentes tipos de servidores web para nuestros proyectos.

Equipo

Este es uno de los handicaps de este tipo de proyectos, ya que es raro que el equipo de desarrollo este constituido antes de empezar el proyecto. Suele empezar alguno de los socios, que además hace las funciones de CTO. En principio es casi una necesidad empezar de esta forma pero al poco tiempo será necesario introducir desarrolladores para terminar la plataforma de forma optima.

Nunca contratéis becarios para estas funciones. Tened en cuenta que esto es la base de vuestro futuro negocio, es la estructura sobre la que construir toda la empresa. Siempre profesionales y si están bien pagados mejor que mejor, ya que recibirás mas compromiso y lealtad hacia el proyecto. Si, cuando trabajas por cuenta ajena eres un mercenario, trabajas por dinero. Si eres el dueño o socio encargado de las contrataciones hazte a la idea rápido. La mayoría de personas tienen necesidades que se cubren con dinero, una vez resueltas ya puedes evangelizarlas sobre lo chachi que es tu proyecto. En el futuro ellos serán los primeros “soldados” de vuestro ejercito, y los necesitareis motivados para los días malos en los que todo sale mal.

En el siguiente artículo seguiremos con las consideraciones iniciales, así como la planificación del desarrollo y elementos a tener en cuenta antes del lanzamiento de nuestro marketplace.

 

Novedades en Access 2016

Access 2016
Estándar

Tell me en Access 2016

Ahora los usuarios pueden crear formularios, consultas, informes y tablas fácilmente con la ayuda de la función TellMe integrado en la barra de búsqueda de aplicaciones. Puesto que esta función es el reemplazo moderno del antiguo asistente “Clippy”, se puede conseguir fácilmente la ayuda que necesita haciendo clic o pulsando el signo de interrogación y escribir su consulta en el cuadro de búsqueda en la esquina superior derecha de la aplicación.

Plantillas modernizadas en Access 2016

Acceso 2016 ha modernizado y simplificado las plantillas disponibles. Esto significa que ahora es más fácil para crear bases de datos y convertirlas en impresionantes aplicaciones personalizadas, sin necesidad de conocimientos en programación. Se puede acceder fácilmente a la página de plantillas y elegir el modelo adecuado con el que se desea trabajar desde la pantalla de inicio.

Tenga en cuenta que si ya se encuentra dentro de la aplicación y desea abrir una nueva plantilla, haga clic en la ficha Archivo en la esquina superior izquierda de la aplicación.

Temas en Access 2016

Si no está satisfecho con el color de la cinta en la parte superior de la aplicación Access, puede optar por cambiar a fondos gráficos blancos al igual que en la version 2013. Puede hacer clic en Archivo > Opciones > General y elegir el estilo que se adapte a sus necesidades.

Exportación de datos de Access 2016

Ahora tiene la posibilidad de exportar sin esfuerzo todos los datos a Microsoft Excel 2016. Esta característica es especialmente útil si usted tiene una gran cantidad de datos con enlaces desde varias fuentes diferentes. Excel creará una lista de los enlaces de datos y ordenara por tipo para usted para que bases de datos muy grandes sean mucho más fácil de manejar. Para acceder a la función de exportación, haga clic en la ficha Datos externos y, a continuación, haga clicen el botón Administrador de tablas vinculadas. Aparecerá una ventana emergente; seleccionar todos los enlaces correspondientes y haga clic en el botón Exportar a Excel a la derecha.

Tan pronto como SharePoint 2016 este publicado, tendrá la capacidad de exportar muchas de las características de Access a SharePoint 2016.

Formularios mas grandes

Ahora en Access 2016 las barras laterales y las ventanas emergentes pueden utilizar la relación de tamaño de la aplicación en su beneficio. Se puede ver más listas de tablas y nombres de consulta en la base de datos sin mucho movimiento en sentido vertical o en la navegación de pestañas.

Feedback y cambios

Dado que el nuevo paquete Office es colaborativo “en vivo” entre el conjunto de aplicaciones, la retroalimentación es importante y afecta el desarrollo de las características que se añadirán a la suite de Office en forma de cambios. Si desea ver mejoras en características, haga clic en la cara sonriente en la esquina superior derecha y explicar en detalle lo que le gustaría ver cambiado.

Pros y contras de Access como base de datos

statistics-access-2010 (1)
Estándar

Siempre se habla de la base de datos Access como la hermana pobre de SQL Server, y aunque, para entornos empresariales muy fuertes si recomiendo otro tipo de motor de SQL, en Pymes de menos tamaño o autonomos el uso de Access puede ser recomendable para empezar a gestionar la informacion del negocio a través de una base de datos relacional. Os cuento algunos pros y contras de Access.

Localización de los datos

En primer lugar, todos los datos estarian dentro de un solo archivo, que se mantiene por el propio Access. Esto permite una solución de copia de seguridad simple. También permitiría cargar o descargar las bases de datos de Access sobre la marcha y por ejemplo, combinar dos bases de datos en una sola.

Desarrollo en el propio IDE de Access (VBA)

Access es más que una base de datos. También cuenta con un entorno de programación completa que es fácil de aprender para los no desarrolladores (VBA). Estos programas también serían parte de la base de datos de Access y por lo tanto podría ser utilizado por un usuario local, mientras que si se usa en entorno web, la aplicación web también tiene acceso a los mismos datos.

Access es a menudo parte de proyectos heredados. Podría haber algo más que datos dentro del archivo de Access. También es posible que otras aplicaciones utilicen la misma base de datos para cualquier propósito. Tiene un rendimiento muy bueno, si sabes lo que estás haciendo.

Multiusuario limitado

El mayor inconveniente sería un entorno multi-hilo. Y el desarrollo web, básicamente, es un entorno de múltiples subprocesos. Hay un gran riesgo de bloquear registros ya que si un usuario está actualizando los datos , otros usuarios no pueden acceder a este. En un entorno multiusuario, también hay un mayor riesgo de corrupción de datos. Pero dado que las bases de datos Access tienden a ser razonablemente pequeñas y compactas, no es un gran problema para hacer copias de seguridad periódicas para evitar este tipo de problemas.

Precio

Access en sí mismo es gratuito. Sólo se paga por Access al comprar Office.

Mover la aplicación

Aún más interesante, si el sistema ya tiene la configuración ADO apropiada / o controladores ODBC instalados, y son muy comunes, a continuación, se puede implementar una aplicación que utiliza Acces simplemente copiando el ejecutable a una nueva ubicación.La aplicación puede crear una nueva base de datos sobre la marcha, llenarlo con los datos por defecto y ya está! Es muy fácil de usar, en comparación con otras alternativas.

Bases de Datos empresariales

Usted podría considerar trabajar con SQL Server o MySQL como alternativas, pero requieren una configuración adecuada y deberían estar alojadas en algún servidor, aunque SQL Server se puede utilizar de una manera similar a Access en la version Express. Si piensa un cambio de base de datos, sugiero un cambio a SQL Server, ya que es totalmente compatible con Access.

Trabajo en web

Puede mover el archivo Access a una ubicación central (equipo o servidor), construir una interfaz web (tal vez en la intranet de la empresa) en ASP.NET utilizando un proveedor de datos específico para Access. La conexión con la base de datos sería esencialmente conexión de un usuario Si usted está pensando una solución empresarial tendrá que desarrollar la aplicación de todos modos.

Si el uso incluye cientos de usuarios, es muy probable que se encuentre con una serie de problemas con Access, pero al menos tiene la mitad del problema abordado y sólo necesita cambiar el código del proveedor de datos en ASP.NET para adaptarse a una solucion empresarial como SQL Server.
 
 
Si estas interesado en mantener tus aplicaciones Access o piensas en una migración a SQL Server mira nuestros servicios profesionales desde Web4x4.es
david.moral@web4x4.es – 628 81 89 89
 
 

Como elegir un servidor/hosting para un negocio online

shellshock-bash-bug-affects-apache-web-server-software
Estándar

Llevo desarrollando aplicaciones y páginas web cerca de 10 años, primero como Analista-Programador, y luego siendo IT Manager en algunas empresas, actualmente ocupo esa posición en el ecommerce Portobellostreet.es, una de las tiendas online de muebles mas valoradas en España.

En el puesto de CTO o IT Manager una de las decisiones que debes de tomar y que resultan mas críticas para el negocio es el tipo de hosting en el que vas a desarrollar y poner en producción tu aplicacion y base de datos. Como primera aclaración comentar que un negocio online no tiene que ser un ecommerce, puede ser un buscador tipo Idealista, una app móvil como Parkfy o un servicio de consulta como el de Sepín Editorial Jurídica (del que forme parte hace algunos años).

Mis criterios para contratar un servidor siempre han sido estos:

  • flexibilidad de Sistema Operativo: yo trabajo casi todos los proyectos en entornos Microsoft y muchos ISP directamente solo trabajan con Linux
  • Control Remoto: Al contrario que en un simple hosting, necesito tener acceso a todas las funcionalidades del servidor, es por ello que el control remoto (ya sea para Windows o Linux) es imprescindible.
  • Caracteristicas vs Precio: Espacio en disco, RAM, Plesk, Coste de transferencia, etc.
  • Escalabilidad: Aquí esta una de las diferencias fundamentales que separan los distintos tipos de servidor.
  • Confianza en el proveedor: Cuanto mas se trabaja en este ámbito mas se conocen las empresas que prestan un buen servicio de atención al cliente y las que no.

Ahora explicare los tipos de servidor que conozco en base a la escalabilidad (se que existirán mas pero me ciño a mi propia experiencia, los comentarios están abiertos para añadir información extra)

Hosting: Un hosting no es mas que un espacio de almacenamiento web en el cual el precio varia según el espacio contratado, el tamaño de base de datos y los extras (marketing online, email, etc.). Este tipo de servicio es el más básico y personalmente solo lo contrataría si fuese una empresa que solo necesita una web corporativa y poco mas. Salvo excepciones las empresas que lo ofrecen, no disponen de la posibilidad de cambiar automáticamente las características, en caso de necesitar ampliar alguna de las especificaciones contratadas, normalmente porque ese hosting es uno mas de las decenas de compartimentos que ocupan en un servidor mas grande. Esto hace que no sea recomendable para una aplicación que pueda ir creciendo en numero de usuarios o requerimientos técnicos. La gestión se realiza desde un panel web dentro del sistema del proveedor del servicio y no se tiene acceso a la gestión del propio servidor.

VPS (del inglés virtual private server): Esto es el siguiente nivel al hosting, solo que en este caso ya tenemos acceso a un sistema operativo completo, no solo a un panel de control. Al contratarlo, al igual que el hosting, tenemos que decidir que tamaño de disco, RAM, SO, etc…queremos tener en el servidor, los proveedores suelen ofrecer “paquetes” ya configurados a un precio especifico. Este es el servidor que recomendaria a alguien que,por ejemplo, prestase servicios de desarrollo web, ya que permite configurar cuentas de usuario de hosting para pequeñas aplicaciones o ecommerce a un precio ajustado.

Además al tener acceso al propio SO, si alguna de esas aplicaciones necesita escalarse, se puede migrar de una manera mas sencilla a un servidor mas grande.

Como contrapartida tiene el mismo problema que el hosting, no es escalable, ni se pueden modificar las especificaciones contratadas, ademas de que la CPU y la RAM son compartidas con otras tantas VPS en un servidor mas grande con sistema de virtualizacion. Si necesitas ampliar, tu mismo tienes que hacer la migración.

Servidor dedicado: Como su propio nombre indica es una maquina fisica que tienes en exclusiva para tus aplicaciones y webs, con su SO, disco, RAM, etc en exclusividad para ti. Las ventajas de ese tipo de servidor son sobre todo la disponibilidad de los recursos del servidor, ya que no se comparten con ningún otro cliente de la empresa de hosting. Como desventaja tenemos que son escalables “a medias”, ya que se pueden ampliar algunos recursos (como RAM y disco duro) pero a un precio bastante prohibitivo en ocasiones.

Cloud: Los servidores cloud pueden ofrecer varios servicios, siendo el mas comunmente usado el de servidor web, aunque tambien los hay solo de almacenamiento o base de datos. Un servidor cloud es lo mismo que un VPS pero usando una tecnologia que permite hacerlo completamente escalable (CPU, RAM, disco, load balancing, VPN´s, etc). En los 2 últimos años los precios de la tecnología cloud se han estabilizado bastante, siendo bastante razonables para empresas que buscan flexibilidad y escalabilidad en su servicios web, aunque tienen el handicap de que al ser virtualizado puede sufrir los mismos problemas que un VPS, al compartir los recursos físicos de un servidor entre varios servidores virtuales.

Como IT Manager de Portobellostreet.es tome la decision hace 2 años de pasar todas las aplicaciones y servicios web públicos a Cloud, ya que necesitaba cierta flexibilidad debido al aumento de visitas y carga en la base de datos. En la oficina central el ERP tiene un servidor dedicado ya que tenemos separados los datos de la web y del ERP, de tal forma que aseguramos el funcionamiento del ERP aunque se produzca una caída de la web y viceversa. Para empresas con un negocio online potente que necesite de servicios web siempre recomendaría un servidor cloud, ya que la flexibilidad compensa el ratio de fallos que puedan ocurrir en la plataforma, ademas de permitir ciertas técnicas con el load balancing (varios servidores respondiendo a peticiones web o de base de datos)