Inglés

Store Gil Family

Integración tienda web con intranet

Desde la intranet se actualizan las tablas de bodegas, productos de store.gilfamily.
La estructura de las tablas y detalles de cada campo se lista a continuación

Integración web corporativa con intranet

(propuesta de funcionamiento)

Cada bodega y producto tendrá un checkbox "publicar en la corporativa".
Necesitaremos tb un checkbox "publicar en la tienda" para aquellos productos o bodegas que queramos en la tienda pero no en la corporativa. (El actual campo ACTIVE desactiva el producto o bodega en todos lados, si es false)

En el evento OnUpdate de las tablas de productos y bodegas (marcados para publicar) en la tienda se hará un update contra la bd de la corporativa.

Las imágenes, botellas, logos bodegas, etc. deberían ser las de la tienda., para simplificar O podrían copiarse. La imagen principal de cada botella ¿puede ser la misma? o ¿deberían poder ser distinta?
Además, según el diseño de la corporativa se necesitará, para cada producto, una imagen de fondo y un color, un checkbox 'poner link a la tienda', y un texto.

Cada bodega o producto tendrá un campo "SYNC_DATE" con la fecha de la ultima sincronización con la coprporativa o US.

En la web de la tienda, podría haber un webhook que sincronizara las bodegas y productos marcados para publicar. O sea, que ejecutase el evento OnUpdate por cada producto cuya SYNC_DATE < UPDATE_DATE


Modulo tienda gilfamily

Estructura tablas

CREATE TABLE `CLI_PRODUCTS` (
  `PRODUCT_ID` int(7) unsigned NOT NULL AUTO_INCREMENT,               -- Identificador único
  `NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,           -- Nombre del producto
  `NAME_en` varchar(100) COLLATE utf8_unicode_ci DEFAULT '',          -- Idem., en en english     
  `PRICE` decimal(7,2) DEFAULT NULL,                                  -- Precio
  `STOCK` int(4) DEFAULT NULL,                                        -- Existencias
  `DESCRIPTION` text COLLATE utf8_unicode_ci,                         -- descripción breve en listado tienda
  `DESCRIPTION_en` text COLLATE utf8_unicode_ci,                      -- Idem., en en english     
  `ACTIVE` int(1) DEFAULT '1',                                        -- Si 0 producto desactivado. No se muestra
  `ID_TIPO` int(5) DEFAULT '1',                                       -- FK tabla CLI_TIPOS
  `ID_BODEGA` int(5) DEFAULT '1',                                     -- FK tabla CLI_BODEGAS
  `ID_DENOMINACION` int(5) DEFAULT '1',                               -- FK tabla CLI_DENOMINACIONES
  `VOLUME` int(3) DEFAULT '3',                                        -- FK Array $volumes (Mas abajo está su definición)
  `FILE_NAME` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,      -- Miniatura botella NO SE USA **
  `FILE_NAME_BIG` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,  -- Imagen botella
  `VARIEDAD` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,       -- Tipo de uva
  `FICHA_PDF` text COLLATE utf8_unicode_ci,                           -- Texto para Detalle producto y ficha pdf     
  `FICHA_PDF_en` text COLLATE utf8_unicode_ci,                        -- Idem., en en english     
  `PENIN` int(2) DEFAULT NULL,                                        -- Puntos Peñín
  `PARKER` int(2) DEFAULT NULL,                                       -- Puntos Parker  
  `DEKANTER` int(2) DEFAULT NULL,                                     -- Puntos Dekanter
  `DEKANTER_HR` int(1) DEFAULT NULL,                                  --  ... añade "Higly recommended" en Dekanter
  `VINOUS` int(2) DEFAULT NULL,                                       -- Puntos Vinous
  `WFCP` int(1) DEFAULT NULL,                                         -- Se muestra Logo WFCP en Ficha PDF
  `DO_HIDDEN` int(1) DEFAULT NULL,                                    -- Ocultar DO en ficha
  `ORGANIC` int(1) DEFAULT NULL,                                      -- Mostrar logo 'Organic', en listado, detalle, y pdf
  `FOOTER` text COLLATE utf8_unicode_ci,                              -- Texto (opcional) footer (el delos sulfitos) en ficha PDF 
  `FOOTER_en` text COLLATE utf8_unicode_ci,                           -- Idem., en en english         
  `QRCODE` int(1) DEFAULT NULL,                                       -- Mostrar qrCode en Ficha PDF
  `QRCODE_URL` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,     -- Url ES para generar el qrCode (No lo usan)
  `QRCODE_URL_en` varchar(150) COLLATE utf8_unicode_ci DEFAULT '',    -- Url EN (no lo usan)      
  `QRCODE_IMG_ES` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,  -- Imagen con el QrCode de la url en spanish
  `QRCODE_IMG_EN` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,  -- Idem. para english 
  PRIMARY KEY (`PRODUCT_ID`)
) ENGINE=MyISAM AUTO_INCREMENT=71 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_c

Notas:

  • Los campos con el sufijo _en son la versión en inglés del mismo sin sufijo. Si están vacíos se muestra el contenido del campo en español. (O el idioma que se haya definido por omisión)
  • Para campos booleanos usamos int(1) siendo 0 false y 1 true.
  • Algunos campos exclusivos de producto Vinos están definidos en la tabla CFG_EXTRA_FIELDS, por ejemplo, los de puntos, qrcodes, et.
  • Hay mas campos en la tabla, aquí solo vemos los que se usan en gilfamily. Para ver todos los que hay: modulo.tienda
  • Las imagenes de de las botellas se guardan en el directorio /media/products/images/big. Y queda pendiente modificar (para facilitar los updates) el código de la tienda par que su nombre sea {ID_PRODUCT}_{PRODUCT_NAME}.{EXT}, siendo PRODUCT_NAME el nombre del producto (campo NAME) sanitizado (minúsculas, guiones por espcios, etc.)
  • El formato para nombre de las imagenes de los qrCodes es {PRODUCT_ID}_{LANG_ID}.png. Y su directorio es '/media/qrcode. por ejemplo: por ejemplo /media/qrcode/45_es.png y /media/qrcode/45_en.png
  • ** Antes se usaba también el campo FILE_NAME para guardar copia de la imagen con un tamaño razonable, pero 'no se ven bien, pon las gordas', y como el ancho de banda es suyo, pues sin problema. O sea, no se usa ese campo.



CREATE TABLE `CLI_BODEGAS` (
  `ID` int(5) unsigned NOT NULL AUTO_INCREMENT,                       -- PK, relación con CLI_PRODUCTS.ID_BODEGA         
  `NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,           -- Nombre de la bodega
  `FILE_NAME` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,      -- Imagen cabecera, 3400x600 (/media/bodegas/images)
  `DESCRIPTION` text COLLATE utf8_unicode_ci,                         -- No se usa
  `ID_ORDER` int(8) DEFAULT NULL,                                     -- Para ordenarlas
  `ACTIVE` int(1) DEFAULT '1',                                        -- Si 0 bodega desactivada. No se muestran sus vinos
  `SUBTITLE` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,       -- Creo que no se usa en ningún sitio. 
  `FILE_NAME_LOGO_MINI` varchar(200) COLLATE utf8_unicode_ci,         -- Logo png, blanco, transp alfa. (/media/bodegas/logos)
  `LAT` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,             -- Para mapa 
  `LON` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,             --         ... que está desactivado
  `WEB` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,            -- Url de cada bodega, en la corporativa gilfamily.es
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci    


CREATE TABLE `CLI_TIPOS` (
  `ID` int(5) unsigned NOT NULL AUTO_INCREMENT,                       -- PK, relación con CLI_PRODUCTS.ID_TIPO         
  `NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,           -- Tinto, rosado, blanco, etc.
  `ID_ORDER` int(8) DEFAULT NULL,                                     -- No se usa
  `ACTIVE` int(1) DEFAULT '1',                                        -- Si 0 tipo desactivado. No se muestran sus vinos
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


CREATE TABLE `CLI_DENOMINACIONES` (
  `ID` int(5) unsigned NOT NULL AUTO_INCREMENT,                       -- PK, relación con CLI_PRODUCTS.ID_DENOMINACION         
  `NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,           -- Nombre DO
  `FILE_NAME` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,      -- No se usa (Imagen cabecera, 3400x600)
  `DESCRIPTION` text COLLATE utf8_unicode_ci,                         -- No se usa
  `ID_ORDER` int(8) DEFAULT NULL,                                     -- No se usa
  `ACTIVE` int(1) DEFAULT '1',                                        -- Si 0 do desactivada. No se muestra su link
  `FILE_MAP` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,       -- Mapa para las fichas pdf (en media/do/images)
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci



CREATE TABLE `CLI_TAGS` (
  `ID` int(5) unsigned NOT NULL AUTO_INCREMENT,                     -- PK
  `CAPTION` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,       -- Nombre
  `NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,         -- identificador
  `FILE_NAME` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,    -- Imagen para logo, etiqueta, etc
  `ACTIVE` int(1) DEFAULT '1',                                      -- Pues eso
  `HEADER_FILE_NAME` varchar(200) COLLATE utf8_unicode_ci,          -- Imagen para cabecera, chapuza mode
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


Cada producto puede tener varios 'tags', en este caso se usan para las etiquetas, 'vegano', 'ecológico', etc, y para wfcp, sea lo que sea esa cosa. En esta tabla se relacionan los tags con los productos

CREATE TABLE `CLI_PRODUCTS_TAGS` (
  `ID` int(5) unsigned NOT NULL AUTO_INCREMENT,                    -- Que no falte la PK :)
  `PRODUCT_ID` int(5) DEFAULT NULL,                                -- ID de un PRODUCT
  `TAG_ID` int(5) DEFAULT NULL,                                    -- ID de un TAG
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=220 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci  

Una vez, ya con todo hecho y en producción, quisieron añadir (para una campaña temporal) una bodega llamada "Vinos solidarios", "bodega" cuyos vinos eran vinos de otras bodegas. La solucion fué añadir un tag "Vinos solidarios", con su correspondiente entrada de menú. Antes o depués habrá que volver a activarlo, eso, o algo parecido.




// Lista de valores para el campo CLI_PRODUCTS.VOLUME         

$volumes   = [
               1  => '187.5 ml',       // Cuarto botella, Piccolo o Split
               2  => '250 ml',         // Lata
               3  => '375 ml',         // Demi o Media botella
               4  => '750 ml',         // Estándar
               5  => '1 L',            // Litre
               6  => '1.5 L',          // Magnum
               7  => '3 L',            // Doble Magnum
               8  => '4.5 L',          // Jeroboam
               9  => '6 L',            // Imperial
               10 => '9 L',            // Salmanazar
               11 => '12 L',           // Baltasar
               12 => '15 L'            // Nabucodonosor
             ];

Modulo News

Permite añadir/modificar y eliminar entradas tipo news, blogs, etc.

  • Modificar: En cada página hay un enlace "Editar esta página" que nos pone en modo edición. Proporciona una funcionalidad similar a la del módulo pages, de hecho es el mismo código.

Cada entrada o noticia puede tener imágenes y/o archivos adjuntos. Las imágenes puede ser vistas como galería de fotos en miniatura y los archivos como listas de enlaces. Hay, al igual que en el móodulo pages, visores integrados para distintos tipos de archivo

Estructura tablas

CREATE TABLE `NOT_NEWS` (
  `NOT_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,      -- Identificador único
  `NOT_TITLE` varchar(200) DEFAULT NULL,                  -- Título noticia
  `NOT_TITLE_en` varchar(200) DEFAULT '',                 -- Título en inglés
  `NOT_SUBTITLE` varchar(300) DEFAULT NULL,               -- Subtítulo
  `NOT_SUBTITLE_en` varchar(300) DEFAULT '',              --       ... en inglés
  `NOT_NAME` varchar(200) DEFAULT NULL,                   -- 'friendly name', para la url 
  `NOT_DATE` date DEFAULT NULL,                           -- Fecha publicación
  `NOT_CLASS` int(100) DEFAULT NULL,                      -- Sin uso, de momento
  `NOT_TEXT` text DEFAULT NULL,                           -- Texto noticia
  `NOT_TEXT_en` text DEFAULT NULL,                        --       ... en inglés
  `NOT_TOP` int(1) DEFAULT 0,                             -- Noticia destacada   
  `VIDEO` int(1) DEFAULT 0,                               -- Video en la cabecera
  `ACTIVE` int(1) DEFAULT 1,                              -- Si 1, es visible
  `GALLERY` int(1) DEFAULT 0,                             -- Mostrar galería de fotos
  `FILES` int(1) DEFAULT 0,                               -- Mostrar lista documentos
  `KEYWORDS` text DEFAULT NULL,                           -- Keywords para el SEO
  `DESCRIPTION` text DEFAULT NULL,                        -- Description para el SEO 
  `TOP_IMAGE` int(1) DEFAULT 1,                           -- Imagen principal como cabecera
  PRIMARY KEY (`NOT_ID`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Notas:

  • Las noticias sólo se muestran si su fecha de publicación es igual o anterior a la fecha actual.
  • Si tenemos permisos de edición se verán todos, pero las inactivas o con fecha superior a hoy se verán atenuadas en gris.
  • Si una noticia no está traducida se mostrará su versión en el idioma por omisión. Pero ...
  • Si en Panel de control / ajustes / hay una entrada modules.news.selected_langs y está en true las noticias sólo se mostrarán si su título en el idioma seleccionadono está vacío (campos NOT_TITLE o NOT_TITLE_en, NOT_TITLE_fr, etc, etc)








Ésta página utiliza cookies propias y almacenamiento local para facilitar el uso de nuestra web. Si continua navegando, supone la aceptación de nuestra política de cookies. Tenga en cuenta que si las desactiva no podrá utilizar nuestra tienda.