Paquete de npm para uso en proyectos privados de Existaya. El mismo pretende estandarizar la programción asociada a proyetos de e-commerce facilitando módulos/librerías en javascript para su uso en diversos frameworks.
Este paquete, al ser npm, utiliza un sistema de versión semántica (más información en About Semantic Versioning).
Estado del código | Contexto | Reglas | Ejemplo |
---|---|---|---|
Primer lanzamiento | Nuevo producto | Comienza con 1.0.0 | 1.0.0 |
Solución de errores (bugs) con Rétrocompatibilidad | Parche | Se suma uno (1) al tercer dígito | 1.0.1 |
Nuevos aditamentos con Rétrocompatibilidad | Lanzamiento menor | Se suma uno (1) al segundo dígito | 1.1.0 |
Cambios no Rétrocompatibles | Lanzamiento mayor | Se suma uno (1) al primer dígito | 2.0.0 |
Por cada versión del Suite Ecommerce (Backend) se pueden utilizar las siguientes versiones:
Versión Backend | Versiones Frontend |
---|---|
1.0.0 | 1x |
Descripción: Suite Ecommerce es un proyecto Javascript/NPM que usa TypeScript (más información relacionada en página oficial de TypeScript) como compilador de Javascript.
Estructura
Fichero | Descripción | Observaciones |
---|---|---|
package.json | Json usado para configurar el paquete NPM. Se configuran las dependencias entre otras cosas. | Importante en este fichero en el poder actualizar la versión del paquete con base en las reglas de versionamiento semántico. |
tsconfig.json | Json usado para configurar TypeScript y su proceso de compilación. | |
src/main.ts | Fichero TypeScript principal donde comunmente se exportarán los módulos que se requeiran sean públicos para su uso en los proyectos donde se instale el paquete. | También sirve para exponer pruebas corriendo el comando npm run tsandplay
|
src/lib/ | Directorio donde vivirán los ficheros con sus respectivos módulos a exportar. |
Configuraciones más notables en tscongif.json
Propiedad | Descripción | Valor |
---|---|---|
Dependencias del paquete
Dependencia | Descripción |
---|---|
typscript | Más información en typesscript - npm |
@types/node | Más información en @types/node - npm |
axios | Más información en axios - npm |
axios-observable | Más información en axios-observable - npm |
rxjs | Más información en rxjs - npm |
Comandos disponibles en ./package.json
Comando | Descripción | Observaciones |
---|---|---|
npm run tscInit |
Inicia TypeScript en el proyecto | |
npm run tsc |
Corre el proceso de compilación de TypeScript | Este compando sólo compila mas no corre el proyecto. |
npm run tscAndPlay |
Corre el proceso de compilación de TypeScript y luego corre el proyecto para validar inputs/outputs | Compila y corre el código en el paquete |
npm login |
Inicia una sesión remota con el sistema de NPM para publicación del proyecto | Credenciales???? |
npm publish |
Publica el paquete en NPM conbase en la versión configurada en el fichero package.json | Cada cambio requiere un cambio de versión para su publicación y actualización en NPM |
Publicación/Actualización del paquete Pasos para la publicación del paquete y actualización del mismo en NPM:
- Correr el comando
npm login
y seguir los pasos indicados durante el proceso. Este comando es sólo necesario la primera vez que se publique el paquete. - Editar la versión del paquete en el fichero
./package.json
siguiendo las indicaciones del sitema versionamiento semántico. - Correr el comando
npm publish
y esperar el resultado.
Instalación
npm i suiteecommerce --save
Actualización
npm update --save
Configuración/Uso para Angular, Ionic-Angular y proyectos TypeScript
En el fichero src/app/app.module.ts
importar la siguiente dependencia:
import { Config } from 'suiteecommerce/dist/main';
// Configurar las propiedades necesarias.
Config.urlBase = 'my web service url';
Para usarlo en un componente de Angular o Ionic-Angular se debe importar el módulo deseado. Por ejemplo:
import { Productos, ...otros módulos... } from 'suiteecommerce/dist/main';
...
ngOnInit() {
Productos.listar().then((res: any) => {}).catch((error: any) => {});
}
Configuración/Uso para jQuery
En el ./index.html
del proyecto se debe incluir en el header el siguiente script:
<script src="./node_modules/suiteecommerce/dist/main.map.js"></script>
Para usarlo se debe llamar directamente al módulo deseado y su respectivo método. Por ejemplo:
$(document).ready(() => {
// Configurar las propiedades necesarias.
Config.urlBase = 'my web service url';
Productos.listar().then((res: any) => {}).catch((error: any) => {});
});
Configuración/Uso para en Nodejs (backend side) Requerir el paquete de configuración:
var SuiteEcommerceConfig = require('suiteecommerce').Config;
// Configurar las propiedades necesarias.
SuiteEcommerceConfig.urlBase = 'my web service url';
Requerir los modulos necesarios. Por ejemplo:
var SuiteEcommerceProductos = require('suiteecommerce').Productos;
SuiteEcommerceProductos.listar().then((res: any) => {}).catch((error: any) => {});
Listado descriptivo de los módulos/objetos (propiedades/métodos) que se manejan en el paquete para uso en los proyectos.
Configuración
Tipo | Nombre | Descripción |
---|---|---|
Módulo | Config |
Módulo con el cual se puede configurar el comportamiento de otros módulos. |
Objetos/Métodos/Propiedades
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Propiedad | string | urlBase |
Url del servicio web a consumir. |
Usuarios
Tipo | Nombre | Descripción |
---|---|---|
Módulo | Usuarios |
Módulo que se encarga de todo lo relacionado al manejo de usuarios. |
Objetos/Métodos/Propiedades
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Clase | IUsuario | Usuarios |
??? |
Productos
Tipo | Nombre | Descripción |
---|---|---|
Módulo | Productos |
Módulo que se encarga de todo lo relacionado al manejo de productos. Por ejemplo, listar productos, filtrar productos, comparar productos, editar objeto de producto, etc. |
Objetos/Métodos/Propiedades
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Clase | IProductos | Productos |
??? |
Carro de compra
Tipo | Nombre | Descripción |
---|---|---|
Módulo | Carro |
Módulo que se encarga de todo lo relacionado al manejo del carro de compra. |
Objetos/Métodos/Propiedades
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Clase | ICarro | Carro |
??? |
Direcciones
Tipo | Nombre | Descripción |
---|---|---|
Módulo | Direcciones |
Módulo que se encarga de todo lo relacionado al manejo de direcciones. |
Objetos/Métodos/Propiedades
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Clase | IDireccion | Direcciones |
??? |
Métodos de pago
Tipo | Nombre | Descripción |
---|---|---|
Módulo | MétodosDePago |
Módulo que se encarga de todo lo relacionado al manejo de métodos de pago. |
Objetos/Métodos/Propiedades
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Clase | IMetodosDePago | MetodosDePago |
??? |
Interfaces
Tipo | Nombre | Descripción |
---|---|---|
Módulo | Interfaces |
Módulo que se encarga de todo lo relacionado al manejo de métodos de pago. |
Objetos/Métodos/Propiedades
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Interfaz | IUsuario | IUsuario |
Establece las propiedades/métodos para manejo de Usuarios |
Interfaz | IProducto | IProducto |
Establece las propiedades/métodos para manejo de Productos |
Interfaz | ICarro | ICarro |
Establece las propiedades/métodos para manejo del Carro de compra. |
Interfaz | IDirecciones | IDireccion |
Establece las propiedades/métodos para manejo de Direcciones. |
Interfaz | IMetodosDePago | IMetodosDePago |
Establece las propiedades/métodos para manejo de Métodos de Pago. |
IUsuario
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Propiedad | string | nombre |
El nombre del usuario. |
Método | IUsuario | login |
Método para inicio de sesión. |
??? | ??? | ??? |
? |
IProducto
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Propiedad | string | id |
|
Propiedad | string | name |
|
Propiedad | number | price |
|
Propiedad | number | dcto_ambiental |
|
Propiedad | number | price_dcto |
|
Propiedad | number | dcto_porcentaje |
|
Propiedad | IProducto_Type | type |
|
Propiedad | string | slug |
|
Propiedad | string | nombre_front |
|
Propiedad | number | garantia_meses |
|
Propiedad | number | garantia_meses_publico |
|
Propiedad | IProducto_Imagenes | imagenes |
, |
Propiedad | string | imagen |
|
Propiedad | string | publicado |
|
Propiedad | string | descatalogado |
|
Propiedad | string | deleted |
|
Propiedad | number | rc_prom_calificacion |
|
Propiedad | number | rc_cant_calificacion |
|
Propiedad | string | stock |
|
Propiedad | string | eb_preventa |
|
Propiedad | string | lib_preventa |
|
Propiedad | string | plu_sku_erp_code |
|
Propiedad | string | categoria_producto_id |
|
Propiedad | string | categoria_producto |
|
Propiedad | true | disponible_venta_web |
, |
Propiedad | [] | promociones |
|
Propiedad | number | dcto_valor |
|
Propiedad | string | descripcion |
|
Propiedad | string | lib_eb_isbn |
|
Propiedad | IProducto_LibFormato | lib_formato |
|
Propiedad | IProducto_LibPresentacion | lib_presentacion |
|
Propiedad | string | marca_producto_id |
|
Propiedad | string | marca_producto |
|
Propiedad | IAutor[] | autores |
|
Propiedad | string | meta_title |
|
Propiedad | string | meta_keywords |
|
Propiedad | string | meta_description |
|
Propiedad | string | dim_x_centimetros |
|
Propiedad | string | dim_y_centimetros |
|
Propiedad | string | dim_z_centimetros |
|
Propiedad | string | peso_gramos |
|
Propiedad | string | descripcion_corta |
|
Propiedad | string | descripcion_2 |
|
Propiedad | string | ficha_tecnica_imagen |
|
Propiedad | [] | galeria |
|
Propiedad | string[] | slugs |
|
Propiedad | string | url |
|
Propiedad | [] | categorias_secundarias |
|
Propiedad | IProducto_LibEbLenguaje | lib_eb_lenguaje |
|
Propiedad | IProducto_LibEbEdicionNub | lib_eb_edicion_num |
|
Propiedad | string | lib_eb_edicion_fecha |
|
Propiedad | string | lib_eb_indice |
|
Propiedad | string | lib_eb_prologo |
|
Propiedad | string | lib_eb_publicacion_fecha |
|
Propiedad | string | lib_eb_traducido_por_id |
|
Propiedad | string | lib_eb_traducido_por |
|
Propiedad | string | lib_num_pagina |
|
Propiedad | string | eb_proteccion_digital |
|
Propiedad | string | eb_tipo |
|
Propiedad | string | eb_fecha_fin_preventa |
|
Propiedad | string | lib_fecha_fin_preventa |
IDireccion
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Propiedad | string | nombre |
El nombre de la dirección. |
??? | ??? | ??? |
? |
IMetodosDePago
Tipo | Tipo de campo | Nombre | Descripción |
---|---|---|---|
Propiedad | string | nombre |
El nombre del método de pago. |
??? | ??? | ??? |
? |