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.

 

Consejos para crear tu red de contactos en LinkedIn para novatos

linkedin
Estándar

linkedinBienvenido Novato ¡¡¡ En este artículo aprenderás como debes crear un perfil de LinkedIn y como NO debes pedir contacto a desconocidos si tu perfil no sigue unas reglas de decoro y educación…. Perfecto, si estás preparado y logado en tu perfil de LinkedIn empecemos:

Paso 1 – ¿Que será?:

Para mi personalmente lo que encuentro mas irritante de un perfil en esta red es el no ver la foto de la persona. Si amigo, pon una foto de tu cara en tu perfil, porque si no quien eres no te voy a aceptar en mi red, si ni siquiera te has preocupado de subir una foto para que los demás veamos lo majo que eres. Tan simple como eso. Que ahora con el móvil te haces fotos mirandote en el espejo y no tienes 1 minuto para hacerte una foto decente, ¿como te voy a aceptar la invitación?

Paso 2 – El resumen:

Al igual que ver la cara de un posible contacto es importante , casi al mismo nivel se encuentra la información que muestras de ti en el perfil. Si no haces un resumen de un vistazo no puedo saber si eres interesante o no. Admitámoslo….sin que la presentación sea interesante casi nadie se lee el resto del perfil, así que curratelo un poco.

Paso 3 –  Tu curriculum

Una vez escrito el perfil tu curriculum debe ser extenso, sin pasarse, pero con datos y detalles de los puestos en los que has trabajado, así como tu posición actual. Da igual si has sido reponedor del carrefour o director de banco, me interesa que has hecho, con que funciones y que logros has conseguido en tu vida laboral, te repito que esto no es Facebook o Twitter, es una red profesional y necesito detalles sobre ti sino ¿como voy a saber si eres interesante para mi?. Si no eres capaz de dedicarle unos minutos a completar tu perfil y mejorarlo de vez en cuando no vas a ser interesante para mi ni para nadie.

Paso 4 – Información extra

Cuanto más currado este tu perfil más interesante serás para otros en LinkedIn. Una buena forma es añadir proyectos, recomendaciones, logros, cursos y tambien imagenes y videos de tus proyectos o empresas.

Paso 5 – Enviar invitaciones a conocidos

Bien, ya tienes el perfil más o menos decente. ¿cual es el siguiente paso?, según mi criterio personal debes pedir contacto a estas personas hasta ir ampliando tu red:

1.  Ex- compañeros (ya sean de formación o trabajo). Esto te dará una buena cantidad de contactos.

2. Amigos cuyo perfil sepas que es interesante.

3. Familiares (aquellos que te interesen, of course)

4. Contactos actuales (proveedores, clientes, empresas de servicios, etc) y compañeros de trabajo o empresa.

5. Importar libreta de direcciones. Con este hay que tener cuidado ya que puedes enviarle una invitación a alguien que no quieras, pero también es un buen método si esta agenda esta mas o menos limpia.

Una vez seguidos estos pasos, deberias de tener una buena cantidad de contactos.

Paso 6 – Enviar invitaciones a desconocidos

Ahora viene algo que me trae por el camino de la amargura. La cantidad de invitaciones que me envía gente que no conozco de nada y que ni siquiera tengo algo en común con ellos.

Este es el quid de la cuestión: puedes enviar invitaciones a desconocidos, pero para no ser tirado a la basura directamente debes de tener algo en común con la persona a la que le envias la invitación. ¿Como lo conseguimos?

Con los grupos.

Debes buscar grupos con intereses afines a los contactos que deseas tener en LinkedIn, una vez en varios grupos podrás enviar invitaciones a los componentes de los mismos sin sufrir su indiferencia.

Paso 7 – Ya me han aceptado ¿ahora que?

Pues esto es más fácil de lo que parece, solo tienes que contactar con la persona que quieras para presentarte y posteriormente le puedes pedir la información que necesites o enviarle la propuesta que consideres oportuna. Ten en cuenta que esa persona puede recibir mucha información de ese estilo y no prestarle atención, asi que si no te responden no pasa nada. Simplemente pasa al siguiente o espera un tiempo prudencial para volver a intentarlo.

Resumiendo: Si quieres contactos debes parecer serio y profesional y currarte un poco tu perfil y cuando quieras contactar con alguien despues de ser aceptado no ser pesado.

 

 

 

 

Como crear una nube de tags en PHP

Estándar

En este artículo explicaremos como crear una nube de tags en PHP usando la clase wordcloud.class.php (vía Del Harvey en Lots of code ), las palabras clave las sacaremos de un texto de la web que podamos leer en PHP, por ejemplo al crear un listado desde una base de datos.

En primer lugar debemos descargarnos el archivo zip con las clases y css para poder usarlos en nuestros scripts, podeis hacerlo pulsando en el siguiente enlace: tag_cloud.zip

Una vez descargado debemos descomprimirlo y subirlo  nuestro servidor web, la ruta es importante para luego hacer los includes correspondientes en nuestro código.

Abrimos nuestra página PHP e incluimos la orden para leer la clase que nos generara la nube de tags:

require (“includes/wordcloud.class.php”);

a continuacion debemos estudiar nuestro codigo y ver de donde sacaremos todas las palabras clave que queremos usar para crear la nube de tags, en nuestro caso lo que hacemos es guardar en una variable string todo el texto que luego queremos usar para crear la nube.

Para rellenar el string lo hacemos en el bucle while del cual estamos leyendo los textos que mostramos en la web, luego crearemos un array con las palabras del string usando la orden explode:

<?

$cadena=””;

while($row=mysql_fetch_assoc($result)){

$cadena=$cadena.’ ‘.$row[texto];  //en esta linea vamos rellenando el string

?>

//mostramos texto html

<?

}

$array_texto= explode(” “, $cadena);

//creamos el array con la orden explode

 

una vez creado el array ya podemos usar la clase para crear la nube de tags, para ello primero invocamos para crear el objeto $cloud

$cloud = new wordCloud();

con el metodo addWord vamos añadiendo todas las palabras del array recorriendolo usando un bucle for

for($i=0;$i<count($array_texto);$i++){

$cloud->addWord($array_texto[$i]);

}

con el metodo removeWord, quitamos las palabras clave que no nos interesen para la nube de tags (preposiciones,

$cloud->removeWord(‘por’);

$cloud->removeWord(‘de’);

$cloud->removeWord(‘antes’);

$cloud->removeWord(‘asi’);

Ahora definimos como se va a generar la nube de tags, si queremos ordenar por tamaño de palabra de forma descendente:

$cloud->orderBy(‘size’, ‘desc’);

para que la nube de tags no se haga infinita le ponemos un limite de 20 palabras:

$cloud->setLimit(20);

Ya solo nos falta mostrarla con la orden showCloud()

echo $cloud->showCloud();

?>

En nuestro caso usamos nuestro propio css, pero podemos usar los que vienen junto a la clase php.

Un punto importante a tener en cuenta es que debemos crear un array para poder añadir las palabras a la clase que generara la nube de tags.

 

Deja un comentario con tu opinion sobre el post y si te ha servido para tus desarrollos.