You are on page 1of 7

Introducción

xML-Comparsa es un script muy popular entre los mercadosocios que fue programado por
Diego Alberto Bernal (PUBLEK) en 2004.
Está programado en PHP e interpreta los feeds XML de los productos de MercadoLibre y los
muestra con un diseño personalizable permitiendo integrarlos al contenido de un website.

El presente script, denominado Comparsa 5, es una versión actualizada y mejorada de la


original, que además cuenta con nuevas funciones.

Actualizaciones y mejoras
1. Puede correr en PHP5: la versión original tenía algunos inconvenientes a la hora de correr
en PHP5, experimentando deformaciones en el diseño, desordenamiento de la información
e incompatibilidades con los caracteres. En esta nueva versión, estos problemas fueron
solucionados. La mayoría de las empresas de hosting han migrado, o están en ese
proceso, sus servidores de PHP4 a PHP5, ya que el primero no tendrá nuevas
actualizaciones de seguridad a partir del 8 de Agosto de 2008.
2. Incluye nuevos países: Esta versión puede mostrar información de MercadoLibre de
Panamá, Costa Rica y Rep. Dominicana.
3. Utiliza los feeds del subdominio xml.mercadolibre...: Existen dos formas de obtener los
feeds de MercadoLibre, la primera y mas antigua, es a travez de urls tipo
www.mercadolibre... y la segunda y mas reciente es con urls como xml.mercadolibre... Esta
última es más rápida y eficiente, y es la que usa este script.

Nuevas Funciones
Esta nueva versión de xML-Comparsa incluye 3 nuevas funciones opcionales:
1. Tags Clouds: Las nubes de tags son muy comunes en la web 2.0, y constituye una
efectiva manera de mostrar a los visitantes keywords relacionadas a los productos
seleccionados.
2. Guías Relacionadas: Esta función muestra a los visitantes una lista de hasta 10 guías
relacionadas a la categoría o palabra seleccionada.
3. Opiniones Relacionadas: A través de esta funcionalidad los visitantes podrán ver una
lista con hasta 10 opiniones que se vinculan de alguna manera con la categoría o
palabra seleccionada.

Objetivos de esa versión


Al programar Comparsa 5 se pretendió actualizar al sistema y agregarle nuevas funciones,
pero sin modificar su esencia, a los efectos de permitir una actualización rápida y transparente
a los mercadosocios que ya lo usan.
Un programador con cierta experiencia puede personalizar este script e incluso mejorarlo.

Sobre el funcionamiento básico del Script


Comparsa 5 utiliza un motor central que llama a un módulo (ubicado en la carpeta módulos) y
a un archivo css que define el diseño. De esta manera puede usar cuantos módulos y diseños
se desee.
Lo primero que se debe hacer es modificar el archivo config.php con el tool-id del
mercadosocio ($sl_idlist), al igual que el usuario/contraseña para los feeds XML
($sl_username, $sl_password) si se tiene (recordemos que estos datos pueden solicitarse ante
el PMS manager del pais correspondiente); definir si desea mostrar o no productos de adultos
($sl_adultos) y definir si el servidor es compatible con gzip ($sl_gzip). Además, se puede definir
cuales de las nuevas funciones se activan.
El script puede llamarse mediante urls absolutas o relativas. Por cuestiones de seguridad es
recomendable el uso de las relativas.
Ejemplo de un llamado con url absoluta:
**************
<?php
include('xml-comparsa/xml-comparsa.php?pais=mx&mod=listado$$as_word=nokia;
?>
**************

Ejemplo de un llamado con url relativa:


**************
<?php
$inc_baseparams = '$$pais=mx$$mod=listado';
$inc_modparams = '$$as_word=nokia';
include('xml-comparsa/xml-comparsa.php');
?>
**************

El script debe leer al menos 2 variables principales: pais y mod.


El país puede darse en los siguientes formatos:
Como código de país de MercadoLibre (MLM, MCO, MLV, MEC, MPE, MLA, MLB, MLU, MCR,
MPA, MRD)
Como código de idioma ISO (es-mx, es-co, es-ve, es-ec, es-pe, es-ar, pt-br, es-uy, es-cr, es-pa,
es-do)
Como código de idioma ISO corto (mx, co, ve, ec, pe, ar, br, uy, cr, pa, do)
Como nombre del país (mexico, colombia, venezuela, ecuador, peru, argentina, brasil, uruguay,
costa-rica, panama, rep-dominicana)
mod, define el módulo a usar, algunos módulos incluidos son: listado, listado2, punder,
ban397x90, ban468x60. El módulo debe leer las opciones específicas del módulo, además de
los parámetros standard de xML en MercadoLibre (Puedes verlos aquí).
En las urls relativas las variables principales, pais y mod se definen el la variable
$inc_baseparams serparados con doble signo pesos ($$). Ej:
**************
<?php $inc_baseparams='$$pais=MCO$$mod=ban397x90'; ?>.
**************

Luego tenemos que definir las variables del módulo en la variable $inc_modparams, también
separadas por: $$.Ej:
**************
<?php $inc_modparams='$$as_word=dvd$$as_categ_id=1000$$quitarprecio'; ?>
**************

y por último hacemos el include del script:


**************
<?php include('xml-comparsa/xml-comparsa.php');?>
**************

Con nuestro ejemplo obtendremos:


**************
<?php
$inc_baseparams='$$pais=MCO$$mod=ban397x90';
$inc_modparams='$$as_word=dvd$$as_categ_id=1000$$quitarprecio';
include('xml-comparsa/xml-comparsa.php');
?>
**************

El diseño de cada uno de los módulos puede cambiarse modificando el archivo css
correspondiente que puede encontrase en la carpeta css.

Información adaptada de http://www.afiliadoscolombia.com/comparsa.php

Explicación del archivo de configuración


Tal como se detalló antes, el sistema Comparsa 5 posee un archivo de configuración donde se
deben establecer una serie de variables elementales para el funcionamiento del mismo.
A continuación se explicará que significa cada variable y sus posibles valores:
1. $sl_idlist['cod_ML]
Lo primero que encontramos en el archivo de configuración son 12 variables, cada una
correspondiente a cada uno de los países donde MercadoLibre cuenta con presencia.
Allí debe establecerse el id de sitio o herramienta PMS para que los links de Comparsa
posean el trackeo correspondiente para que se contabilicen las comisiones y
registraciones. Puede establecerse un id por pais o uno solo para todos, en cuyo caso
se deben completar las 12 variables con el mismo id.
2. $pais_pred
Allí se debe establecer el país predeterminado para el sistema, en caso de no poder
detectarse un país por los métodos del script. Esta variable se completará con el
código de países de MercadoLibre, por ejemplo; MLA es para Argentina; MCO para
Colombia, etc, ver más abajo la lista de códigos nacionales de MercadoLibre.
3. $sl_username
Esta variable se debe completar con el nombre de usuario asignado por el manager del
PMS para poder acceder a la versión completa de los feeds XML.
4. $sl_password
Esta variable se debe completar con la contraseña asignada por el manager del PMS
para poder acceder a la versión completa de los feeds XML.
5. $sl_maxitems
Esta variable establece la cantidad de productos que puede mostrar el script.
6. $sl_mejora
Con esta variable se puede habilitar la mejora remota del home, permitiendo al equipo
de MercadoLibre poner una busqueda especial cuando no se usa el parámetro de
categoría. Valores posibles: N: no; S: si
7. $sl_adultos
Establece si se mostraran productos para sólo de adultos. Valores posibles: N: no; S: si
8. $sl_gzip
Establece si habilita la compresión Gzip para llamar a los feeds xml. Es recomendable
habilitar esta función, ya que implica que los feeds serán comprimidos y por ende será
más rápida su descarga. Pero antes de esto, hay que cerciorarse de que el servidor
donde se aloja el script soporte esta función.
9. $sl_vinculo
Se debe dejar este campo en blanco si se quiere ir directamente a MercadoLibre, si no
es así hay que especificar un archivo al cual serán pasados los parametros GET pais =
(código de país en ML), item = (nombre del artículo), id = (id del artículo)
10. $sl_target
En esta variable se establece en que ventana se abrirán los links, por ejemplo, para
abrir en una nueva ventana, el valor será “_blank”

Lista de Códigos Nacionales de MercadoLibre


• MLA: Argentina
• MLB: Brasil
• MLC: Chile
• MCO: Colombia
• MCR: Costa Rica
• MEC: Ecuador
• MLM: México
• MPA: Panamá
• MPE: Perú
• MRD: República Dominicana
• MLU: Uruguay
• MLV: Venezuela

Sobre las Nuevas Funciones


Comparsa 5, además de ser una versión actualizada de xML-Comparsa, agregó tres nuevas
funciones opcionales, Tag Cloud, Guías Relacionadas y Opiniones Relacionadas.
El diseño de estas funciones se puede cambiar modificando el archivo nuevas-funciones.css
que puede encontrarse en la carpeta “css”.

Estas funciones sólo deben activarse cuando se usen los módulos de listados (listado,
listado2, listadoJS, listadoJS2), ya que en el caso de los otros módulos se ocasionarían
serias deformaciones en el diseño.

Tag Cloud
Esta es la popular nube de tags, una de las tantas herramientas de la llamada Web 2.0.
Permite mostrar un número aleatorio de keywords relacionados con los productos mostrados
por el script con su respectivo enlace trackeado hacia la sección correspondiente de
MercadoLibre.

Para activar esta función al momento de llamar la url del script se debe agregar a la variable
$inc_baseparams, el valor “$$sl_cloud=Y”, así por ejemplo el llamado a la url quedará de la
siguiente manera
**************
session_start();
$actual = urlencode(str_replace('&','||','http://'.$_SERVER['HTTP_HOST'] .
$_SERVER['PHP_SELF']. "?" . $_SERVER['QUERY_STRING']));
$inc_baseparams = '$$pais=MPA$$mod=listado$$sl_cloud=Y';
$inc_modparams = '$$as_qshow=9$$columnas=3$$as_word=motorola$$as_display_type=G$
$self='.$actual;
include('xml-comparsa.php');
**************

Esta función fue programada en base al código fuente escrito por Javier Romero (JAVIER
MLVENEZUELA) publicado en http://guia.mercadolibre.com.ve/tag-cloud-mercadolibrecom-
script-8044-VGP

Guías Relacionadas
Esta función permitirá mostrar hasta 10 guías relacionadas con los productos mostrados por el
script con su respectivo enlace trackeado hacia la guía correspondiente.

Para activar esta función al momento de llamar la url del script se debe agregar a la variable
$inc_baseparams, el valor “$$sl_guia=Y”, así por ejemplo el llamado a la url quedará de la
siguiente manera
**************
session_start();
$actual = urlencode(str_replace('&','||','http://'.$_SERVER['HTTP_HOST'] .
$_SERVER['PHP_SELF']. "?" . $_SERVER['QUERY_STRING']));
$inc_baseparams = '$$pais=MCO$$mod=listado2$$sl_guia=Y';
$inc_modparams = '$$as_qshow=12$$columnas=3$$as_categ_id=1000$$as_display_type=G$
$self='.$actual;
include('xml-comparsa.php');
**************

Opiniones/Catálogos Relacionadas
Esta función permitirá mostrar hasta 10 opiniones/catálogos relacionadas con los productos
mostrados por el script con su respectivo enlace trackeado hacia la opinión/catálogo
correspondiente.

Para activar esta función al momento de llamar la url del script se debe agregar a la variable
$inc_baseparams, el valor “$$sl_opi=Y”, así por ejemplo el llamado a la url quedará de la
siguiente manera
**************
session_start();
$actual = urlencode(str_replace('&','||','http://'.$_SERVER['HTTP_HOST'] .
$_SERVER['PHP_SELF']. "?" . $_SERVER['QUERY_STRING']));
$inc_baseparams = '$$pais=MLA$$mod=listado2$$sl_opi=Y';
$inc_modparams = '$$as_qshow=12$$columnas=3$$as_categ_id=1000$$as_display_type=G$
$self='.$actual;
include('xml-comparsa.php');
**************

Activando más de una función


Se puede activar más de una función a la vez sólo agregando el valor correspondiente a la
variable $inc_baseparams; así podremos activar 2 o las tres funciones a la vez.
Ejemplos:
Tag Cloud y Opiniones:
**************
session_start();
$actual = urlencode(str_replace('&','||','http://'.$_SERVER['HTTP_HOST'] .
$_SERVER['PHP_SELF']. "?" . $_SERVER['QUERY_STRING']));
$inc_baseparams = '$$pais=MLA$$mod=listado2$$sl_cloud=Y$$sl_opi=Y';
$inc_modparams = '$$as_qshow=12$$columnas=3$$as_categ_id=1000$$as_display_type=G$
$self='.$actual;
include('xml-comparsa.php');
**************

Las Tres Funciones:


**************
session_start();
$actual = urlencode(str_replace('&','||','http://'.$_SERVER['HTTP_HOST'] .
$_SERVER['PHP_SELF']. "?" . $_SERVER['QUERY_STRING']));
$inc_baseparams = '$$pais=MLA$$mod=listado2$$sl_cloud=Y$$sl_guia=Y$$sl_opi=Y';
$inc_modparams = '$$as_qshow=12$$columnas=3$$as_categ_id=1000$$as_display_type=G$
$self='.$actual;
include('xml-comparsa.php');
**************

Al respecto es importante aclarar que cuantas mas funciones se activen mayores serán las
conexiones a los feeds en los servidores de MercadoLibre y el uso de memoria y cpu en el
servidor donde se halle el script; con lo cual puede experimentarse una pérdida, muchas veces
notable, de velocidad de carga.

Personalización del script


Cómo se dijo antes Comparsa 5 puede personalizarse y mejorarse fácilmente teniendo
conocimientos intermedios de PHP, a los efectos de no generar inconvenientes a los
mercadosocios que ya lo están usando, se ha decidido seguir la base del xML-Comparsa
original.
No obstante para los usuarios más avanzados que quieran realizar modificaciones en
Comparsa 5 o deseen agregar más módulos, es que se expondrá el listado de arrays
disponibles.

Array de propiedades de descripción de productos ($sl_items[cual_item]['propiedad'])


1. id: Id del artículo
2. title: Título del artículo
3. link: Link a mercadolibre con track de mercadosocios incluido
4. image_url: URL de la imagen del producto
5. seller_type: Tipo de vendedor (MLIDER o ninguno)
6. auction_type: Tipo de venta (compra inmediata, subasta, desde $1 … )
7. mpago: MercadoPago (Y o N)
8. currency: Símbolo de la moneda usada
9. price: Precio del producto
10. bids: Cantidad de ofertas realizadas sobre el producto
11. hot: Producto HOT
12. hits: Cantidad de Visitas
13. auct_end: Fecha de finalización del producto
14. photo: Item con foto (Y o N)
15. highlight: Destacado (Y o N)
16. bold: En negrita (Y o N)
Array parámetros usados en la solicitud XML o adicionales específicos del módulo
($sl_xmlparams['parametro'])
1. as_categ_id: Id de la categoría
2. as_desde: Mostrar desde X productos
3. as_word: Palabras a buscar, admite: palabra1+palabra2, palabra1+or+palabra2,
palabra1-palabra2 y todas sus combinaciones.
4. as_search_both: Buscar en títulos y descripciones (Y o N)
5. as_qshow: Cantidad de items a mostrar
6. as_order_id: "Criterio de ordenamiento:
""AUCTION_STOP"" (Por tiempo restante)
""ITEM_TITLE"" (Alfabéticamente)
""HIT_PAGE"" (Por cantidad de visitas)
""MENOS_OFERTADOS"" (Por - ofertados)
""MAS_OFERTADOS"" (Por + Ofertados)
""BARATOS"" (Por menor precio)
""CAROS"" (Por mayor precio)"
7. as_filtro_id: Filtro de artículos:
""24_HS"" (Terminan en 24 horas)
""CERTIFIED"" (Solo MercadoLíderes)
""PRECIO_FIJO"" (Solo Compra Inmediata)
""RECIEN_EMPIEZAN"" (Empiezan hoy)
""UN_PESO"" (Artículos desde $1)
""SOLO_SUBASTAS""
""USADO""
""NUEVO""
""MPAGO""
8. as_price_min: Precio mínimo de los artículos a mostrar
9. as_price_max: Precio máximo de los artículos a mostrar
10. as_pcia_id: Mostrar solo los artículos de determinada ciudad, departamento o
provincia.
11. as_display_type: Mostrar solo los artículos que tienen foto. Si es igual a "G"
12. quitardecimal: Quita las posiciones decimales en el precio
13. quitarprecio: Quita el símbolo de moneda usada ('currency)
14. vinculo: Cambia el nombre del archivo a donde debe ser enviado el link de cada
producto. Puede cambiar la estructura de estos en la sección // CONSTRUCCIÓN DE
VÍNCULOS POR FUNCIÓN SL_ECHOLINK en el xml-comparsa.php
15. printarrayparams: Imprime la estructura y contenidos del array $sl_xmlparams con fines
educativos
16. printarrayitems: Imprime la estructura y contenidos del array $sl_items con fines
educativos

Sobre el archivo showitem


El archivo showitem sólo se incluye en este sistema solamente con objetivos didácticos. El
mismo no funciona correctamente pero puede resultar útil para entender la mecánica que se
usa para obtener más detalles de los productos de MercadoLibre.
Este es un parser html, y dados los frecuentes cambios en el código html de MercadoLibre, se
consideró poco práctico actualizar este archivo ya que el mismo quedaría desactualizado en un
plazo corto.
Observaciones finales
Comparsa 5 al igual que cualquier otro script que interpreta los feeds XML del PMS necesita
comunicarse con los servidores de MercadoLibre para cumplir con su cometido. Los mismos
se ubican en Estados Unidos y a la vez la conectividad en Sudamérica no es presicamente a
mejor.
Con lo cual a los efectos de minimizar los tiempos de respuestas, y por ende de carga de las
páginas que usen este sistema, se recomienda que Comparsa 5 corra en servidores ubicados
en Estados Unidos
Asimismo, también se recomienda la creación de sistemas de cachés para los sitios para evitar
consultas repetitivas a los servidores de MercadoLibre, y mejorar, también de esta manera, los
tiempos de respuestas.

Luis Enrique Guzmán (LUIGIKIKE)

You might also like