Quiero construir un comercio electrónico desde cero. ¿Qué necesito saber?

Soy un desarrollador de software autodidacta y hasta ahora conozco estas tecnologías: HTML5, CSS, JS, PHP y mySQL. Ya hice el Front-end y sé cómo usar PHP y mySQL para registrar usuarios, iniciar sesión usuarios, hacer un carrito, mostrar productos, hacer un CMS muy simple. ¿Qué más necesito saber? ¿Quizás APIs?

Usted ha cubierto los conceptos básicos en su descripción y eso es bueno, esto es lo que creo que necesita saber:

# 1 Use un marco

Desea usar PHP / MySQL, que es bueno, pero no lo desarrolle sin usar un marco.

Ejemplo de marcos:

  • Laravel
  • Symfony2
  • CodeIgniter
  • WordPress

Dependiendo de qué nivel básico desea comenzar y con qué marco se siente más cómodo, todos tienen su propia ventaja: no hay una respuesta correcta aquí, todo depende de usted y sus necesidades.

¿Por qué usar un marco?

Sé que quieres tener tu propio sistema de comercio electrónico y construirlo sobre el código de alguien más puede sonar como si no cumpliera el propósito, pero … ¿por qué reinventar la rueda? ¿Por qué preocuparse por las sesiones, la estructura, la autenticación, la base de datos, el motor de plantillas, la separación de la lógica de la vista, etc.?

Supongamos que reinventa la rueda y quiere hacerlo todo desde cero.

¿No querrán otras personas trabajar en esta plataforma de comercio electrónico en el futuro? ¿Tendrán que aprender su manera de hacer las cosas? ¿vas a escribir la documentación de tu sistema al revés? ¿Qué sucede cuando necesita actualizar una biblioteca, reescribir el código nuevamente?

Ahórrese el dolor de cabeza, trague su orgullo y aprenda a usar marcos, solo están aquí para ayudarlo.

# 2 Planifique todo pero no demasiado detallado

El comercio electrónico tiene un formato estándar en muchos aspectos que es bueno porque no tendrá que inventar nuevas técnicas la mayor parte del tiempo.

La forma en que conecta las diferentes piezas y agrega nuevas características a su sistema cambiará con el tiempo y tener un plan detallado será una pérdida de tiempo.

Simplemente enumere todas las páginas requeridas y los objetivos / características clave por página servirán.

Asegúrese de que la estructura de su base de datos esté hecha de manera que pueda ajustarla fácilmente más adelante.

Puede usar MySQL Workbench para diseñar visualmente su base de datos, lo que lo ayudará a avanzar: MySQL Workbench: Visual Database Design

# 3 ¡Suelta y suelta!

¿Sabes cuál es el mayor problema que enfrentan los desarrolladores al crear productos?

Nunca se hace.

Pequeña característica allí, edite la página aquí, elimine esto, agregue eso, ¿qué pasa si tenemos una API para conectarse a X? Ah, y luego clasifique Y, hombre, este gráfico se vería genial, y joder, podemos usar estos informes, woaha esto es un buen complemento déjame agregarlo …

No caigas en esta trampa.

Asegúrese de tener un hito establecido para lanzar su primera versión.

Obtenga comentarios reales de los usuarios y vea lo que les gusta / no les gusta.

Entonces, y solo entonces, puedes lanzar mejoras.

¡Todo lo mejor!

Para hacer algo a la altura de los estándares actuales, es decir, para hacer algo que valga la pena hacer, deberá estar familiarizado con cómo hacer una página web interactiva. La gente está harta de esperar. En general, la carga de una nueva página solo debe ocurrir cuando sucede algo bastante importante, como pasar a la caja; de lo contrario, un sitio de comercio bien construido enfocado en complacer a los usuarios debería tener la menor carga de páginas posible. Esto significa que necesitará ser bueno en JavaScript, especialmente usando llamadas de servidor (AJAX) a una API (como mencionó); los datos probablemente deberían exponerse como JSON (por lo que es más fácil trabajar en el front-end) Hay tres cosas para estudiar.

Dicho esto, la cantidad que ya sabes es excelente, todo será útil cuando lo hagas. Un sitio de comercio electrónico es un gran problema, especialmente si usted mismo maneja cuentas y detalles de tarjetas de crédito. Nunca piense que está “Listo” cuando se trata de seguridad.

Muchas aplicaciones nuevas (observe la palabra aplicación en lugar de sitio) separan su API de datos del sitio web en sí, lo que ayuda más adelante con muchas otras cosas y ayuda a separar las preocupaciones. Idealmente, la página inicial debería cargarse con algunos datos (piense en las primeras 2 páginas de productos, por ejemplo) y el resto debería recuperarse cuando sea necesario utilizando su API de datos. Esto permitirá un desarrollo muy fácil de una aplicación, programa de escritorio, servicios de análisis, etc., todo sin cambios en el código API de datos.

Al contrario de lo que dicen los demás, voy a decir que PHP es definitivamente suficiente para lo que quieres hacer. La función del servidor es servir información en dos formas principales: las páginas iniciales y los datos. Es más que capaz de hacer esto y todavía no debe preocuparse por escalar por un tiempo. Si la API de datos es difícil de desarrollar en PHP (problemas de concurrencia o problemas de rendimiento), consideraría usar NodeJS para el lado de datos del sitio. Eso ayudará a acelerar el desarrollo ya que el formato que está enviando es nativo del idioma, tanto en el servidor como en el cliente. Servir páginas y datos estáticos está completamente bien con PHP.

No lo recomiendo construir desde cero a menos que tenga una hoja de ruta muy específica y necesidades especiales.

Yo mismo lo hice desde cero y solo construir la funcionalidad básica puede llevar de 3 a 6 meses. Y después de eso, no tiene muchas funciones que el sitio de comercio electrónico de alimentación completa necesita y que están listas en la mayoría de las aplicaciones listas. Y tiene algunos riesgos con la seguridad ya que nadie más auditará o mirará su código.

Para sitios medianos o de menor tamaño, es mejor tomar soluciones listas ya que tienen más de lo que se necesita. Porque si lo haces desde cero, harás reinventar la rueda en muchas características que ya tienen listas.

Para sitios más grandes o más complejos, es una buena idea crearlo y diseñarlo como desee. Pero necesita experiencia y recomendaría 3–4 desarrolladores con muy buena experiencia para hacerlo volar.

La mayoría de la gente dirá que no está muy contenta con las tiendas web. Y esto es absolutamente cierto. Pero los principales problemas no son las plataformas, en mi opinión, es que las tiendas web son demasiado complejas a menudo si quieres rendimiento y características.

Por lo general, las tiendas web son demasiado complejas y ofrecen demasiadas características, lo que hace que su mantenimiento y desarrollo sean más largos. O bien, son demasiado simples y las personas se frustran cuando no puede obtener ciertas funciones para ellos.

Así son las cosas y hasta ahora no hay una bala de plata porque es realmente difícil crear soluciones complejas que se ajusten exactamente a las necesidades de todos.

Si se encuentra en tal situación y sabe exactamente lo que necesita y no hay ninguna solución, hacerlo desde cero puede ser una opción sensata, ya que se adapta a esas necesidades.

Pero si está construyendo una tienda web promedio que tiene las necesidades más comunes, está desperdiciando su tiempo. Ese es el caso de negocios.

Pero si solo estás aprendiendo, adelante. Una buena forma de aprender sitios de comercio electrónico es crearlos, por supuesto.

Es un buen comienzo, pero necesita más que eso para construir un comercio electrónico. Un sistema de comercio electrónico es demasiado complicado que es difícil desarrollarlo con PHP puro.

Recomiendo (framework Laravel) El framework PHP para artesanos web. Como ya sabes PHP.

Y si quieres construir una API, prueba dingo / api. Es una api relajante para Laravel.

Aquí hay una plantilla de Laravel que tiene dingo API: francescomalatesta / laravel-api-boilerplate-jwt. Tiene autenticación de usuario y otras características listas para usar.

Bueno, en ese caso, simplemente agregue un back-end utilizando PHP central o use cualquier otro marco como Laravel o Symfony o incluso Ruby on Rails y comience a agregar sus productos o proveedores o lo que sea necesario para ejecutar su tienda en línea. En caso de que no se sienta cómodo construyendo una tienda en línea desde cero, le recomiendo que vaya con Shopify y puede configurar fácilmente su tienda en línea. Aquí obtienes plantillas listas y aún puedes personalizarlas y también preparas la plataforma de alojamiento, que fue realmente optimizada para una mejor plataforma de comercio electrónico.

Bueno, antes que nada buena suerte y espero que te vaya bien. Lo primero que debe verificar antes de comenzar un negocio de comercio electrónico sería estudiar cuidadosamente su producto / servicio específico que se ofrecerá, así como a los competidores que se quedan. Segundo sería conocer los requisitos que necesitaría presentar. Tercero, las leyes que debes cumplir. Por último, consulte a algunos expertos para que pueda obtener consejos sobre qué hacer y qué no hacer en su campo elegido.

Hay muchos pasos para hacer esto correctamente sin perder dinero y tiempo. Puede obtener capacitación gratuita en DigitalCashAcademy Web Cash Academy y JR Fisher – Cómo iniciar un negocio en línea

Espero que ayude…

Aclamaciones

Umm ¿Cómo manejar el cumplimiento?

Examina este libro:

Logística y cumplimiento de comercio electrónico

Ese es un buen comienzo. Algunos otros a considerar son Ruby y Python.