Garantiza el éxito de tu proyecto de e-commerce gracias al
 marketplace oficial de PrestaShop

GUÍA PARA COLABORADORES - 

Validación técnica

¡Los primeros pasos para la venta de tus productos!

Technical validation of your product is a vital step before selling in our catalog.

1 - Para empezar bien… tres herramientas que te ayudarán

1.1/ El validador

El validador (http://validator.prestashop.com) es una herramienta creada para comprobar la compatibilidad técnica de tu módulo con las exigencias de PrestaShop. Puedes:

  • cargar un zip

  • o indicar la URL de tu depósito Github Github

El validador generará un informe automático detallado con los puntos de mejora del módulo. ¡Sigue las recomendaciones de este informe y podrás enviar tu módulo sin ningún error!

¡Atención!
Since the 1.6.1.0 version, PrestaShop uses the PSR-2 norma. Even if we recommend you to use this norma, it's not mandatory and it won’t be a reason to decline your module. Here are more details in en esta entrada del blog.


1.2/ El buscador de métodos

El validador dispone de un buscador de métodos que te ayudará a descubrir desde qué versión de PrestaShop existen esos métodos. ¡Utilízalo para ganar tiempo!


1.3/ El módulo generador

¿Sabes cómo ganar tiempo con nuestro módulo generador? Solo tienes que escoger el tipo de módulo y dejarte guiar. El sistema genera automáticamente la estructura de un módulo que puedes usar como base para crear el tuyo.
¡Y ya solo tienes que hacer una validación técnica rápida!

Para finalizar el proceso de validación técnica, nuestros equipos de desarrolladores verifican manualmente el módulo. Se encargan de descargar, instalar, configurar y comprobar el código de tu módulo.

2 - Las tres etapas de una validación técnica garantizada

2.1/ Un entorno de desarrollo

Diseña y prueba tu módulo en un entorno de desarrollo local con la ayuda de herramientas como WampServer (Windows). Así podrás visualizar los errores, los avisos y otras alertas PHP sin depender de tu servidor en línea.
Para facilitarte la tarea, PrestaShop dispone de un modo de desarrollo que modifica tu configuración PHP para que visualices los mensajes de error. Para activar el modo de desarrollo: en el directorio /config de tu instalación de PrestaShop, abre el archivo defines.inc.php. El modo de desarrollo se activa desde el comienzo del archivo: tienes que modificar la línea siguiente para cambiar el valor definido a "true" (es falso por defecto):
define('_PS_MODE_DEV_', true);

Atención: ¡Las tiendas en funcionamiento no deben utilizar el modo de desarrollo!


2.2/ Buenas prácticas

NO

  • No introduzcas enlaces externos en el código de tu módulo ni en la documentación del módulo.

  • No publiques tus datos personales en el módulo ni en su documentación.

  • No dirijas a tus clientes a tu propia plataforma de asistencia técnica/gestión de incidencias.

  • Don't use external ajax files to perform ajax tasks.

  • Don't go through directories using code and variables like: dirname(__FILE__).'/../../config/config.inc.php'

  • No editar la estructura SQL de las tablas de PrestaShop.

  • Añade en la interfaz del módulo un enlace que dirija directamente a la documentación incluída en el fichero zip y a tu página de asistencia técnica de Addons.

  • Respeta la norma PSR-2 para los módulos destinados a PS 1.6.1.0 y posteriores: http://doc.prestashop.com/display/PS16/Coding+Standards

  • ¡Crea tus propias tablas!

  • Develop your module in English, then use PrestaShop translation system to translate your module.

  • Go through directories using code and variables like: "dirname(__FILE__).'/../../config/config.inc.php"

  • Use PrestaShop variables like: _PS_CONFIG_DIR_ . / "config.inc.php"

Varias recomendaciones para tus módulos:

  • Prefija lo que te pertenece:

    • módulos

    • parámetros de configuración (ps_configuration)

    • tablas

    • clases CSS

  • Valora la posibilidad de eliminar de tu producto todas tus configuraciones, tablas o entidades propias durante el proceso de desinstalación de los módulos.

  • You shouldn't use HTML code in your PHP code. Here are alternatives to separate the view into your code:

    • display content with Smarty

    • use helpers for your configuration pages

    • include PrestUI, a graphic library created by the community for your configuration pages.

  • Your module interface has to match the back office interface. Customized interfaces aren’t validated/accepted. Please use the alternatives explained before to help you create an interface that matches merchants' BO.

  • For modules compatible before the 1.7 PrestaShop version, the minimal compatibility has to be PHP 5.3. You will be then able to use, for example, namespaces.

  • If you add function to add a file, check the type of the file to make sure you avoid security issues. Here are more information for the function mime_content_type().

  • When uninstalling the module, delete all tabs you might have added during the installation.

  • When your module has forms, you should:

    • show a confirmation message if everything is fine or an error message if not.

    • make sure information entered by customers are correct. If you ask a sum, it has to be only numbers. More information about the Validate class of PrestaShop here.

  • Piensa en hacer un casting de tus variables y en usar pSQL/bqSQL en las solicitudes SQL para evitar inyecciones (lee este artículo http://doc.prestashop.com/display/PS16/Best+Practices+of+the+Db+Class). Asegúrate también de proteger el acceso a tus archivos (sobre todo si tu módulo utiliza un cron) para evitar que todo el mundo pueda ejecutarlos. ¡Por lo tanto es obligatorio utilizar un token!

  • Permitimos el uso de overrides pero si consideramos que hay demasiados (2/3 como máx.) o que las modificaciones son demasiado peligrosas, rechazaremos tu módulo. Si tienes alguna duda, escríbenos.

  • Si tienes que cargar un .js o un .tpl (que contiene JavaScript) en el back-office, ¡aplica las restricciones para los hooks de tu back-office (hookbackofficeheader/top/footer)! Un ejemplo concreto: Si tu JS solo se aplica en la página de configuración del módulo, usa:
    if (Tools::getValue('configure') == $this->name { // code }

Varias recomendaciones para tus temas:

  • PrestaShop aún no dispone de un validador de temas. Sin embargo, puedes probar todos los módulos presentes en tu tema mediante nuestro validador: http://validator.prestashop.com

  • ¡No elimines los hooks presentes originalmente en PrestaShop, ya sea vía PHP o en el tema! Te arriesgas a impedir el funcionamiento de algún otro módulo.

  • Prefija lo que te pertenece:

    • módulos

    • estándares de imágenes

  • Tu código PHP no debe incluir HTML: utiliza Smarty o los sistemas de ayuda para las vistas.

  • No aceptamos aquellos temas que parten del tema básico de PrestaShop y solo modifican los colores, fuentes, imágenes… eso ya está hecho. ¡Tienes que crear un tema único!  :-)

  • Tienes que guardar el logo predeterminado de la tienda en el archivo zip, en la cabecera y en el pie de tu tema.

A few recommendations for your email templates:


2.3/ El validador para optimizar tu módulo

El validador te explica exactamente qué tienes que modificar para que tu módulo sea compatible con nuestras exigencias técnicas (errores técnicos, funciones prohibidas, problemas estructurales, etc.).

¡Sigue las recomendaciones del validador para poner tu módulo a la venta cuanto antes!

¿Las recomendaciones generadas hacen que tu módulo no funcione bien?
Llámanos, ¡estaremos encantados de ayudarte con el desarrollo de tu módulo!


En caso de problemas, puedes contactar con el equipo técnico al enviar tu módulo. ¡Recurre a ellos y aprovecha su experiencia para perfeccionar tu módulo!

3 - Actualice sus módulos y cree temas para PrestaShop 1.7

Encuentre toda la información en inglés aquí.

4 - ¿Cómo enviar un producto al marketplace Addons?

Después de crear una ficha de producto perfecta con el kit para, presenta tu módulo para la validación técnica.

4.1/ Las informaciones

En esta fase puedes encontrar el código module_key para tu módulo. Tienes que incluirlo en la estructura del siguiente modo:

public function __construct() { etc. $this->module_key = 'c1614c239af92968e5fae97f366e9961'; }

Te permitirá avisar al vendedor de que hay una actualización disponible de tu módulo a través de su back-office.
Si haces alguna actualización, tienes que describir las modificaciones realizadas una a una.
¡No olvides indicar con qué versiones de PrestaShop es compatible tu módulo!

4.2/ Tu archivo y el nombre definitivo de tu módulo

El archivo zip que envías a nuestro equipo tiene que incluir todos los archivos necesarios para tu módulo y llamarse exactamente igual: si el archivo principal de tu módulo se llama "nombre_del_modulo.php”, tiene que estar en la carpeta "nombre_del_modulo", y el archivo zip que los contiene también debe llamarse así, sin números de versiones.

Ten en cuenta que el nombre que uses en tu archivo y en tu zip es el mismo que tienes que dar a tu ficha de producto (para que los vendedores online puedan identificar rápidamente tu módulo en el back-office de tu tienda). Así que, ¡piénsate bien cómo vas a llamar a tu producto (sin usar "PrestaShop" ni "módulo")! Dale un toque personal: por ejemplo, puedes usar el nombre de tu empresa o tus iniciales

5 - ¿Y ahora qué?

Cuando el equipo técnico haya verificado tu módulo, recibirás un correo informándote de su estado (validado o rechazado).

En caso de rechazo, te informaremos de los aspectos que tienes que corregir. También puedes contestar directamente al equipo técnico a través de un enlace que aparece en el correo de rechazo y mediante el que podrás obtener más información.
En ese momento, ¡te toca a ti seguir nuestras recomendaciones y enviarnos de nuevo el módulo!

¿Quieres saber más sobre las normas de PrestaShop?
¡Encuentra todo lo que necesitas en la guía del desarrollador!

¡Buenas ventas en PrestaShop Addons!