Hablando en voz alta sobre la nueva idea que tenemos. Vamos a ver cómo la hacemos.
Pero bueno, a lo que vamos. Después de ésta magnífica entrada quería analizar en voz alta los requerimientos técnicos de una idea que he visto y que quiero programar. Primeramente explico la necesidad como si fuera una persona que no tiene conocimientos técnicos, y luego la analizaré como programador (sí programador analista, que eso es lo que somos muchos. Ya estoy cansado de se separen las dos aptitudes cuando la mayoría de programadores analizan constantemente!!!). Ups! se me va la cabeza.Explicación de la funcionalidad que necesito
Tengo 10 unidades de la playStation 4. Tres de éstas unidades las quiero poner a la venta a un precio de locura. Aprovechando que voy a poner un precio de derribo quiero ganar registros (emails reales) para luego poder dar la brasa un poquito (sí! la brasa! te gusta eh!). Con lo cual, éste producto quiero mostrarlo con el precio normal añadiéndole un aviso que diga algo así como "Woooowww!! Tenemos un precio increible!! ¿Quieres verlo? Registrate". Importante: Solamente 3 de las 10 unidades van a estar a un precio de derribo. A la que compren 3 fin de la oferta. Eh! Por favor!! No me hagas perder dinero.¿Y ahora qué? Bufff! ¿Cómo lo hago?
Bien, una vez con la idea y la funcionalidad explicada por una persona sin conocimientos técnicos me surge la duda. ¿A quien voy a pedírsela? Jejeje, aquí me parto... Vamos.. desfilen!- Al project manager de mi proveedor. Mmmmmm... Te cuento: La mayoría de project managers no tienen ni idea (eps! digo la mayoría. Entre programadores sabemos que esto es verdad. ¿Y no os da rabia que cobren más que vosotros?). Hay algunos que si saben programar. Pero mola más ir de colegueo y no tener ni "p.." idea. Eh! amigos! eh! ;D
- Al consultor? Mmmmmm... Cuidado porque hay mucho farsante. En estos tiempos cualquiera con conexión a Internet y siendo un poco parlanchín va de consultor. Si sabe programar bien, si no sabe, lo que hará será ir a nuestro querido programmer a preguntarle "Oye! valórame esto en horas". Jejeje! Si si! En horas!! Porque yo le enchufo 40€ la hora (o más) y a ti te pago 9€. ¡Vamos! Como caballos de transporte. En horas... Madre mía. Como si fuera un esclavo que trabaja para ti. Venga y vete a...
- Mejor ponte en contacto directamente con el programador o como se llame la persona que sepa hacerlo, ¿ok?. No sé si será programador o ama de casa (que más da), pero si sabe hacerlo, es una persona inteligente. No te creas el cuento chino de que los programadores no saben relacionarse. Madre mía si saben.
Análisis técnico de la funcionalidad.
Y ya por fin, después de tanto rodeo y desahogo, vamos ahora sí, a analizar técnicamente lo que comportaría desarrollar algo así: Tenemos en stock 10 unidades pero X las queremos vender a otro precio. Por un lado tenemos que guardar las X unidades y el precio de éstas. Con lo cual en base de datos deben haber estos dos campos para cada producto. Con lo cual, para empezar, haremos un módulo completamente a parte que se encargue de gestionar ésta lógica de negocio sin influir en el resto de módulos (de ésta forma podremos aprovecharlo para el resto de nuestras tiendas online. Es que yo pienso siempre en como sacarle rentabilidad a una nueva funcionalidad que desarrollamos. Por ello debe ser fácil añadírsela a otro de nuestros clientes). Perfecto. Con un módulo a parte, solamente habrá que conectarlo con nuestra función prepareProduct, responsable de sacar los productos en la tienda. (El PrepareProduct es una de las mejores ideas de liveCommerce, ¡¡gracias!!, a tu disposición) Bien, a parte éste módulo debe poder gestionar lo siguiente:- Si el usuario no está logueado no le mostrarás el precio. Fácil.
- Éste módulo deberá estar a la escucha del hook que cambia el estado del pedido y restar las unidades en oferta.
- No se mostrará el precio de derribo si no hay stock de estas unidades, lógico.