<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El Blog DWQ</title>
	<atom:link href="http://www.desarrollowebdequeretaro.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.desarrollowebdequeretaro.com/blog</link>
	<description>Tutoriales, articulos y otras ayudas</description>
	<lastBuildDate>Thu, 04 Mar 2010 03:20:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>¿Qué es un tema en Magento?</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2010/03/que-es-un-tema-en-magento/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2010/03/que-es-un-tema-en-magento/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 02:42:53 +0000</pubDate>
		<dc:creator>David Gómez Becerril</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[eCommerce]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=72</guid>
		<description><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Un tema en Magento consta de tres cosas:</p>
<ol>
  <li>Archivos de capas (layout) en XML: Se especifica cómo se presenta el diseño.  </li>
  <li>Plantillas (templates) PHTML: Es una combinación de archivos de PHP y HTML, que especifican cómo elementos específicos (por ejemplo, el carrito de compras) se deben ver en las capas.    </li>
  <li>Superficies (Skins): Proporcionan las Hojas de Estilo en Cascada (CSS), y las imágenes necesarias para crear el aspecto deseado para la superficie en Magento [...] </li>
</ol> ]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Un tema en Magento consta de tres cosas:</p>
<ol>
<li>Archivos de capas (layout) en XML: Se especifica cómo se presenta el diseño.  </li>
<li>Plantillas (templates) PHTML: Es una combinación de archivos de PHP y HTML, que especifican cómo elementos específicos (por ejemplo, el carrito de compras) se deben ver en las capas.    </li>
<li>Superficies (Skins): Proporcionan las Hojas de Estilo en Cascada (CSS), y las imágenes necesarias para crear el aspecto deseado para la superficie en Magento. </li>
</ol>
<ul>
<li><a href="#intertema">Interfaces y Temas</a>
<ul>
<li><a href="#interface">Interfaces en Magento</a></li>
<li><a href="#temas">Temas en Magento</a></li>
<li><a href="#local">Locales en Magento</a></li>
</ul>
</li>
<li><a href="#defaultnodefaults">Temas  Predeterminados (Defaults)  y no predeterminados</a>
<ul>
<li><a href="#default">Tema Predeterminado</a></li>
<li><a href="#nodefault">Temas no Predeterminados</a></li>
</ul>
</li>
<li><a href="#jerarquia">Jerarquía en los Temas</a></li>
<li><a href="#skinlaytem">Superficies (Skins), Capas (Layouts) y Plantillas (Templates)</a>
<ul>
<li><a href="#skin">Superficies</a></li>
<li><a href="#layouts">Capas y Bloques</a></li>
<li><a href="#templates">Plantillas</a></li>
</ul>
</li>
</ul>
<h3 id="intertema">Interfaces y Temas</h3>
<p>El significado de los términos tema e interfaz en Magento son contrastantes.</p>
<h4 id="interface">Interfaces en Magento</h4>
<p>Una interfaz en Magento consta de uno o más temas que componen lo que se ve en su tienda, así como lo del aspecto que tiene para sus clientes. Magento soporta más de un tema a la vez, de modo que una interfaz no es necesariamente sólo un tema.</p>
<h4 id="temas">Temas en Magento</h4>
<p>Un tema en Magento es lo que define la apariencia de una tienda. Las interfaces pueden tener múltiples temas que se les asigna en Magento, permitiendo que imágenes de temporada para ser utilizado en determinadas épocas, como Navidad o Día de la Amistad.<br />
Un tema es lo que contiene las capas, plantillas y superficies (skins).</p>
<h4 id="local">Locales en Magento</h4>
<p>Para tiendas multilingües en Magento, también los temas pueden contener locales, que es una traducción de la copia (o contenido) de esa tienda en particular.</p>
<h3 id="defaultnodefaults">Temas  Predeterminados (Defaults)  y no predeterminados</h3>
<p>Sólo para añadir más a la confusión, también hay dos tipos de temas: los temas predeterminados y temas no predeterminados.</p>
<h4 id="default">Tema Predeterminado</h4>
<p>Un tema predeterminado en Magento es el tema principal de una interfaz. Magento busca este tema predeterminado, y se cargará a la interfaz de tu tienda (que es la parte que los clientes verán). </p>
<blockquote>
<p>Nota.- El tema predeterminado debe contener todos los elementos que el visitante encontrará al visitar nuestra tienda, como el carrito de compras, pago, y así sucesivamente. Si tu tema no hace uso de estos elementos, entonces no es necesario incluir estos elementos en el tema predeterminado.</p>
</blockquote>
<h4 id="nodefault">Temas No Predeterminados</h4>
<p>Un tema no predeterminado permite crear vistas estacionales de las tiendas en línea con la aplicación de tantos o tan pocos elementos de diseño adicionales, tales como CSS o imágenes, como lo necesites. Los Temas no predeterminados también se pueden utilizar para personalizar tu tienda para:</p>
<ul>
<li>Crear una visión diferente o diseño de páginas de productos determinados, que requieren menos (o más) información que los productos normales.    </li>
<li>Proporcionar una forma de mostrar nuevos productos o incluso los productos que &#8220;pronto saldrán&#8221;, sin permitir a los clientes añadirlos a su tarjeta.</li>
<li>Personalizar determinados aspectos de tu tienda con las especificaciones requeridas de cada país como un botón en una posición diferente en el sitio web que los clientes esperan en un país. </li>
</ul>
<h3 id="jerarquia">Jerarquía en los Temas</h3>
<p>Como puedes tener múltiples temas en Magento, existe una jerarquía de temas implementado para que puedas predecir qué temas se mostrarán en un esquema de herencias. El tema predeterminado proporciona una base para cada aspecto de tu tienda Magento, desde cómo se ve hasta en dónde las cosas son mostradas. Temas posteriores pueden entonces sobreescribir lo que el tema predeterminado le dice a Magento, y cualquier elemento que no se ha sobrescrito se heredará del tema predeterminado.</p>
<p>El tema predeterminado es siempre el tema de nivel más bajo en la jerarquía de Magento. Esto significa simplemente que los temas no predeterminados, van a sobreescribir lo que el tema predeterminado proporciona a Magento.</p>
<h3 id="skinlaytem">Superficies (Skins), Capas (Layouts) y Plantillas (Templates)</h3>
<p>Superficies, capas y plantillas son lo que Magento necesita en un tema. Cada uno de ellos ayuda a cambiar un tema de Magento de alguna manera. Modificar la superficie cambia la apariencia de tu tienda, al Modificar las plantillas y las capas va a cambiar cómo se visualiza la tienda, y lo que se muestra en ella.</p>
<h4 id="skin">Superficies</h4>
<p>Las Superficies de un tema de Magento es lo que hace al tema verse de la manera en la que se ve.</p>
<p>Las Superficies especifican los colores, tipos de letra, y algunas reglas de las capas, cortesía de los archivos CSS y las imágenes. Las superficies del tema de Magento también pueden incluir archivos de JavaScript para cambiar el comportamiento de tu tienda.</p>
<p>Las Superficies de Magento incluyen archivos que afectan la combinación de colores de la tienda y logotipos.</p>
<p>El tema predeterminado de Magento se muestra en la siguiente figura:</p>
<p><img src="../../../../../imago/blog/magento/magento-demo.jpg" alt="Demo de Magento" width="500" height="439" /></p>
<p>Con algunos cambios extensivos en los elementos de la superficie del tema de Magento, podemos hacer que nuestra tienda se vea como el tema moderno de Magento (Modern Theme)</p>
<p><img src="../../../../../imago/blog/magento/magento-demo-modern.jpg" alt="Demo de Magento" width="500" height="380" /></p>
<p>Como puedes ver, los elementos de la superficie en un tema de Magento ofrecen una gran flexibilidad para crear impactos diferentes en los efectos visuales.</p>
<h4 id="layouts">Capas y Bloques</h4>
<p>La capa de las diversas vistas en Magento, tales como, el carrito de compras, páginas de detalles del producto, y la página de los resultados de producto, están controlados por los archivos de las capas. Los archivos de las capas en Magento están escritos en lenguaje de marcado extensible (XML).</p>
<p>Las capas también se utilizan para agregar, quitar y manipular elementos en vistas de tu tienda de Magento. Mediante la manipulación de archivos de capas, puedes:</p>
<ul>
<li>Incluir archivos JavaScript en ciertas páginas  </li>
<li>Incluir archivos CSS adicionales    </li>
<li>Eliminar bloques de contenido, tales como el carrito de compra o las imágenes predeterminadas de algunas páginas en particular </li>
</ul>
<p>Como ejemplo, observa el tema predeterminado de Magento de la figura 1 o ir a <a href="http://demo.magentocommerce.com">http://demo.magentocommerce.com</a></p>
<p>Este tema se basa en una capa de tres columnas, donde una columna central se utiliza para el contenido principal de la página, y las dos columnas adicionales que se utilizan para comentarios adicionales. La página de los productos utiliza la capa de dos columnas, y este cambio se logra cambiando los archivos de las capas del tema.</p>
<p>Hay dos tipos de bloques en Magento:</p>
<ol>
<li>Bloques de contenido que producen el código dentro de cada bloque estructural, y de esto se sirven los archivos de las plantillas de Magento para generar la información pertinente que se requiere para cada bloque.  </li>
<li>Los Bloques estructurales especifican la estructura de la página, como el encabezado, las áreas de contenido, y el pie de página. </li>
</ol>
<p>Una Capa hace uso de ambos tipos de bloques, al igual que las plantillas de Magento.</p>
<h4 id="templates">Plantillas</h4>
<p>Como se mencionó antes, las plantillas de Magento especifican que es lo que se debe mostrar en cada bloque de contenido en la forma de bloques de contenido. Los archivos de plantillas estan en PHTML.</p>
<p>El PHP en los archivos de plantilla es sólo para la lógica de presentación, es decir, el PHP se utiliza sólo para hacer cambios en la vista de tu tienda en los archivos de plantilla. Sin embargo, no afecta el funcionamiento de la tienda en sí, por ejemplo, calcular el costo de los artículos en un carrito de la compra.</p>
<p>En el tema predeterminado de Magento, un bloque estructural consta de un elemento de tu<br />
la tienda, como el carrito de compras, una encuesta, o el contenido principal de la página, que se destaca en la siguiente pantalla:</p>
<p><img src="../../../../../imago/blog/magento/plantillas.jpg" alt="Plantillas en Magento" width="500" height="471" /></p>
<p>Las Plantillas en Magento se dividen en dos tipos diferentes. En primer lugar, está el esqueleto de las plantillas que proporciona una estructura general de una página, como una columna, dos columnas o  tres columnas. En segundo lugar, las plantillas proporcionan el HTML para los bloques de contenido para cada una de las características que han resaltado anteriormente.</p>
<p>Al manipular las plantillas de esta manera, Magento separa a las plantillas de &#8220;contenido de la disposición de la tienda, lo que facilita los cambios en la plantilla o bien el trazado, sin que necesites preocuparte si uno afecta al otro.</p>
<h4 id="ref">Referencias</h4>
<ul>
<li><a href="http://www.magentocommerce.com/design_guide/articles/working-with-magento-themes" class="external" title="Working with Magento Themes" lang="en">Working with Magento Themes</a></li>
<li><a href="../../../2010/02/introduccion-magento/" title="Introducción a Magento">Introducción a Magento</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2010/03/que-es-un-tema-en-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a Magento</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2010/02/introduccion-magento/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2010/02/introduccion-magento/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 00:23:23 +0000</pubDate>
		<dc:creator>David Gómez Becerril</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[eCommerce]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=69</guid>
		<description><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Antes de internarme en la programación de módulos para Magento se me ocurrió publicar este artículo a manera de introducción para una mejor comprensión de cómo esta esquematizado Magento desde el punto de vista temático [...]</p>]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Antes de internarme en la programación de módulos para Magento se me ocurrió publicar este artículo a manera de introducción para una mejor comprensión de cómo esta esquematizado Magento desde el punto de vista temático.</p>
<ul>
<li><a href="#magento">¿Qué es Magento?</a></li>
<li><a href="#caracter">Algunas Características de Magento</a></li>
<li><a href="#desafios">Los Desafíos de la Tematización de Magento</a></li>
</ul>
<h3 id="magento">¿Qué es Magento?</h3>
<p>Magento (<a href="http://www.magentocommerce.com/" class="external" lang="en">http://www.magentocommerce.com</a>) es una plataforma de comercio electrónico de código abierto, que es conocido por su funcionalidad, pero tiene una reputación de ser difícil de tematizar.</p>
<p><img src="../../../../../imago/blog/magento/magento-page.jpg" alt="Página Web de Magento" width="400" height="302" /></p>
<h3 id="caracter">Algunas Características de Magento</h3>
<p>Magento es un sistema de comercio electrónico rico en características, que se construye sobre el marco de trabajo de Zend. Magento tiene todas las características que se esperaría de un carrito de compras típicas o tienda en línea y algunos añadidos interesantes, incluyendo:</p>
<ul>
<li>Gestión de tiendas múltiples en un sólo panel de control</li>
<li>Apoyo para la localización de los idiomas y divisas</li>
<li>Una interfaz de programación de aplicaciones (API), que permite la integración con software de terceros</li>
<li>Atributos de motores de búsqueda amigable, como direcciones personalizables y mapas de sitio generados automáticamente</li>
<li>RSS para nuevos productos</li>
<li>Fijación de precios diferenciados, lo que permite los descuentos por cantidad</li>
<li>Tarifas de los envíos de las paqueterías más populares en tiempo real</li>
<li>Integración con muchas pasarelas de pago incluyendo PayPal y authorize.net</li>
<li>Ventas cruzadas</li>
<li>Pago en una sola página</li>
<li>Orden y sistema de información de productos</li>
<li>Redimensionamiento de imágenes y marcas de agua</li>
</ul>
<h3 id="desafios">Los Desafíos de la Tematización de Magento</h3>
<p>A pesar de su poder, Magento tiene una serie de deficiencias, estas son:</p>
<ul>
<li>Los diseñadores pueden tener más dificultades en la tematización que en otras aplicaciones de código abierto, como WordPress.</li>
<li>En cierto modo, su arquitectura modular se puede ver como un defecto, ya que esto significa que las modificaciones que se hacen a un tema requerirá de varios archivos en directorios distintos para ser editados (más que en otros paquetes de software).</li>
<li>La mala calidad o la inexistencia de la documentación (Tratamos de remediar este defecto en este blog y otros foros de la comunidad).</li>
<li>El número de tecnologías que un diseñador del tema tiene que estar familiarizado con la tematización de Magento-XML, PHP, HTML y CSS.</li>
<li>La extensa curva de aprendizaje para los diseñadores que tal vez estén familiarizados con los sistemas más simples de tematización basada en un pequeño número de plantillas.</li>
</ul>
<p>La belleza de un sistema de código abierto de comercio electrónico como lo es Magento es que puedes ayudar a crear estas nuevas funciones y mejorar sus defectos en la próxima versión!</p>
<p>Es increíblemente gratificante crear un tema personalizado para una tienda con Magento.</p>
<p>Como un sistema de comercio electrónico relativamente nuevo y potente con una creciente comunidad para apoyarlo, Magento se está convirtiendo rápidamente en la próxima gran cosa en el comercio electrónico, así que aprender a cómo crear temas en él es como mantenerse importante para el tiempo por venir.</p>
<h4 id="ref">Referencias</h4>
<ul>
<li><a href="http://www.magentocommerce.com/" class="external" title="Sitio web de Magento" lang="en">Magento&#8217;s Website</a></li>
<li><a href="2009/11/poo-php-5-clases-objetos" title="Algunos Conceptos de PHP que utiliza Magento">POO PHP</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2010/02/introduccion-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento: Producto Agrupado contra Configurable</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/11/magento-producto-agrupado-vs-configurable/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/11/magento-producto-agrupado-vs-configurable/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 00:24:57 +0000</pubDate>
		<dc:creator>David Gómez Becerril</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[eCommerce]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=62</guid>
		<description><![CDATA[<img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> En el estado actual del desarrollo de Magento para definir productos desde el panel de administrador y mostrarlo en el Front-end de la tienda, la utilización de productos agrupados no parece tener mucha utilidad en el sentido que le da el ejemplo de la guía de usuario de Magento o incluso en el ejemplo de este mismo blog que de cierta manera son similares [...]]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> En el estado actual del desarrollo de Magento para definir productos desde el panel de administrador y mostrarlo en el Front-end de la tienda, la utilización de productos agrupados no parece tener mucha utilidad en el sentido que le da el ejemplo de la guía de usuario de Magento o incluso en el ejemplo de este mismo blog que de cierta manera son similares. Magento nos dice que se puede crear un traje de tres piezas, pantalón, saco  y camisa con botones, que hasta cierto punto es posible crear un producto agrupado de esta manera, pero en la práctica, cada uno de esos productos pertenece a un producto configurable, tanto la camisa, el saco como el pantalón por lo menos tienen uno o dos atributos como talla y color, que para cuestiones de inventario se requiere que cada producto simple con cada uno de los atributos tenga un SKU hijo al SKU padre del producto configurable. Magento no nos permite agrupar productos configurables aún y hasta la versión 1.4 alfa3 esta característica no se ha incluido aunque sigue en camino según lo ha mencionado Yoav Kutner  por lo que podemos esperar que en futuras versiones aparezca.</p>
<p>Pero en tanto esto no suceda los productos agrupados y los configurables sólo se diferencian por la manera en la que se presentan en el front-end y con algunas diferencias en la manera de crearlos.</p>
<p><img src="../../../../../imago/blog/magento/group-vs-conf.jpg" alt="Producto Agrupado contrra Configurable" width="600" height="245" /></p>
<p>Digamos que se tienen algunos rollos grandes de papel en venta. Hay 3 tipos diferentes del mismo papel. El de 32 pulgadas a $530.00, el de 40pulgadas a $620.00 y el de 48pulgas a $710.00. En el caso de Productos Configurables se tiene que fijar un precio, entonces, si ninguna de las opciones tiene un precio más alto, tienes que entender las matemáticas y añadir la diferencia. Así, en esta situación, debo crear mi producto configurable a 530.00, y tendría que fijar el de 40 con 90.00 y el de 48 con 180. Así, el desplegable diría algo así como:</p>
<p><img src="../../../../../imago/blog/magento/drop-down-menu.jpg" alt="Producto Agrupado contrra Configurable" width="374" height="251" /></p>
<p>No sabría el verdadero precio hasta que he seleccionado 40. Y, si el precio cambia siempre para cualquiera de estos tamaños diferentes, tengo que hacer las matemáticas cada vez y sólo puedo actualizar los precios a través del producto configurable. Los precios de los productos simples por separado no tienen ningún efecto en el producto configurable.</p>
<p>En esta situación, sin embargo, podemos hacer uso del producto agrupado para tener básicamente el mismo producto en un sentido, con sus diferentes tamaños. Así pues, podemos hacer que nuestros productos simples de 32, 40 y 48 pulgadas de rollos de papel o de algún otro artículo en condiciones similares, se configuren para que todos ellos tengan visibilidad en “ninguna parte”, y asociarlos con nuestro producto agrupado. Luego entonces, se tiene un único producto con 3 tamaños diferentes de papel en una sola página mostrando los costos con los distintos tamaños.</p>
<p>Por lo tanto, habrá ocasiones que los productos configurables no sean la mejor opción y se opte por probar con los productos agrupados.</p>
<h4 id="ref">Referencias</h4>
<ul>
<li><a href="http://www.desarrollowebdequeretaro.com/blog/2009/08/definir-productos-en-magento/">Definir Productos</a></li>
<li><a href="http://www.desarrollowebdequeretaro.com/blog/2009/09/en-magento-como-crear-un-producto-configurable/">Crear Producto Configurable</a></li>
<li><a href="http://www.magentocommerce.com/wiki/welcome_to_the_magento_user_s_guide/chapter_3#creating_a_grouped_product" class="external" title="User's Guide: Creation of Grouped Product" lang="en">User&#8217;s Guide, Creating Grouped Product</a></li>
<li><a href="http://www.desarrollowebdequeretaro.com/blog/2009/08/definir-productos-en-magento/#agrupado" title="Ver ejemplo de producto agrupado">Producto Agrupado</a></li>
<li><a href="http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-grouped-product" class="external" lang="en" title="Creating a Grouped Product by Yoav Kutner">Tutorial: Creating a Grouped Product by Yoav Kutner</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/11/magento-producto-agrupado-vs-configurable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>POO en PHP5 Parte 1: Clases y Objetos</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/11/poo-php5-clases-objetos/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/11/poo-php5-clases-objetos/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 19:47:49 +0000</pubDate>
		<dc:creator>David Gómez Becerril</dc:creator>
				<category><![CDATA[PHP5]]></category>
		<category><![CDATA[poo]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=54</guid>
		<description><![CDATA[<img src="../../../../../imago/blog/php/php-thmb.jpg" alt="Etiqueta de php" width="50" height="19" /> Objetos y clases se encuentran en el corazón de PHP 5 por lo que es importante su entendimiento. El bloque de construcción fundamental de todo código orientado a objetos se llama <strong>clase</strong>. Esto es simplemente una colección de variables y funciones relacionadas, todo envuelto en un par de llaves y de etiquetados con el nombre de la clase. En POO, una variable asociada a una clase se refiere a una <strong>propiedad</strong>, y una función se denomina <strong>método</strong>. La creación de una clase es [...]]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/php/php.jpg" class="fltlft" alt="Etiqueta de php" width="300" height="114" /> Debido a mi interés en Magento, aplicación que se programo en php 5 orientada a objetos para desarrollar eCommerce, he decidido empezar una serie de artículos referentes a conceptos fundamentales de la Programación Orientada a Objetos en PHP 5, sí, uno más, pero los que he consultado en español en la web no han sido de mi entera satisfacción.</p>
<p><img src="../../../../../imago/blog/magento/img_mage_zend.png" alt="Magento-Zend Asociados" width="120" height="173" class="fltrht" />Para empezar aclaro que he elegido como marco de trabajo (framework) el de <strong>Zend</strong> para estandarizar los códigos de PHP en los ejemplos, primero porque es el que utiliza Magento y segundo porque uno de los libros que uso de referencia también lo utiliza.</p>
<ul>
<li><a href="#intro">Introducción</a></li>
<li><a href="#clase_objeto">Relación entre Clases y Objetos</a>
<ul>
<li><a href="#new">Acceder a la clase con el operador new para crear un Objeto</a></li>
<li><a href="#accion">La Clase y Objetos en Acción</a></li>
<li><a href="#operador">Acceder a las Propiedades y Métodos con el Operador <span class=azul><strong>-></strong> </span></a></li>
</ul>
</li>
<li><a href="#ref">Referencias</a></li>
</ul>
<h3 id="intro">Introducción</h3>
<p>Sí bien la <strong>programación orientada a objetos</strong> (POO) fue originalmente reservada a los licenciados en ciencias de la computación, ahora está encontrando su camino cada vez más en el desarrollo web. ActionScript 3, el lenguaje detrás de Adobe Flash y Flex, es un lenguaje de programación completamente orientado a objetos y los muchos marcos de JavaScript, como jQuery, que recientemente se ha vuelto tan popular, aunque no al 100 por ciento-POO hace un amplio uso de los objetos.</p>
<p>No voy a reseñar una historia de POO o de la evolución de PHP para soportar POO porque mi intensión es adentrarme en los conceptos, pero en la wikipedia se puede encontrar por si hay algún lector interesado.</p>
<h3 id="clase_objeto">Relación entre Clases y Objetos</h3>
<p>Objetos y clases se encuentran en el corazón de PHP 5 por lo que es importante su entendimiento. El bloque de construcción fundamental de todo código orientado a objetos se llama <strong>clase</strong>. Esto es simplemente una colección de variables y funciones relacionadas, todo envuelto en un par de llaves y de etiquetados con el nombre de la clase. En POO, una variable asociada a una clase se refiere a una <strong>propiedad</strong>, y una función se denomina <strong>método</strong>. La creación de una clase es muy similar a como se hace para la creación de una función en el lenguaje estructurado tradicional. Veremos la sintaxis real en él más adelante, pero la principal diferencia es que una clase agrupa todo junto.</p>
<p class="nota"><strong>Nota.-</strong> No todas las variables en una clase son propiedades. Una propiedad es un tipo especial de variable que puede ser utilizado en cualquier lugar dentro de una clase y, a veces fuera también. La distinción entre las variables comunes y las propiedades se aclara más adelante.</p>
<p>Así pues, si deseas validar la entrada del usuario, puedes crear una clase llamada Validador (por convenio, los nombres de las clases siempre comienzan con una letra mayúscula inicial) para agrupar a una serie de métodos (es decir, las funciones) y realizar pruebas como las siguientes:</p>
<ul>
<li>¿Es este un número?</li>
<li> ¿Está dentro de un rango especificado? </li>
<li>¿Es ésta una dirección válida de correo electrónico?    </li>
<li>¿Tiene este texto contenido potencialmente peligroso? </li>
</ul>
<p>Dado que otros desarrolladores pueden crear clases para propósitos similares, se recomienda que se añada un prefijo a los nombres de las clases y sea de tres o cuatro letras seguido de un guión bajo.</p>
<h4 id="new">Acceder a la clase con el operador new para crear un Objeto</h4>
<p>Cuando se desea utilizar cualquiera de las propiedades o métodos de la clase, es necesario crear una instancia de la clase usando la palabra clave <strong>new</strong>de esta manera:</p>
<div class=codeblock>
<code><span class=azul>$val = new Dwq_Validar();</span></code>
</div>
<p>Esto crea un <strong>objeto </strong>llamado <span class=azul>$val</span>. Como se puede notar, se ve como una variable de PHP ordinaria, entonces, ¿qué es un objeto? En este caso particular, es principalmente un dispositivo que le proporciona el acceso a todos los métodos definidos en la clase <span class=azul>Dwq_Validar</span>. Sin <span class=azul>$val</span>, no tiene manera de utilizarlos. Además de los métodos, una clase puede tener propiedades. En el caso de <span class=azul>Dwq _Validar</span>, una de ellas es almacenar un array de campos requeridos que el usuario ha fallado en rellenar; otra propiedad guarda una serie de mensajes de error. Debido a la forma en que la clase se ha diseñado, este array es rellenado automáticamente, conteniendo la información hasta que estés listo para utilizarla. En términos de programación, se podría pensar de un objeto como un array multidimensional sobrecargado que controla tanto las funciones, como también las variables. Sin embargo, desde un punto de vista conceptual, el objeto <span class=azul>$val</span> es la herramienta que valida la entrada al usuario. Utiliza los métodos para ejecutar pruebas específicas de validación, y guarda todos los resultados. En otras aplicaciones, los objetos pueden contemplarse de una manera similar a los objetos de la vida real. Una aplicación de comercio electrónico podría utilizar la clase Productos para representar artículos en existencias, o un foro en línea podría tener una clase Miembros, para representar a colaboradores individuales.</p>
<h4 id="accion">La Clase y Objetos en Acción</h4>
<p>Echemos un breve vistazo al ejemplo de la clase <span class=azul>Dwq_Validar</span> en acción. Como se ha dicho antes, es necesario crear una instancia de la clase para poder usarla. Esto se conoce como una instancia de un objeto. Como habrás notado, cuando se instanció más arriba el objeto <span class=azul>$val</span>, he colocado un par de paréntesis vacíos después del nombre de la clase. De la misma manera como pasas argumentos a las funciones, también puedes pasar argumentos a un objeto en el momento de instanciar. La clase <span class=azul>Dwq_Validar</span> acepta dos argumentos, ambos opcionales. El argumento opcional primero es un array de entradas de formulario requerido. Así pues, el script para instanciar el objeto <span class=azul>Dwq_Validar</span> para validar, una forma simple puede ser como esta:</p>
<div class=codeblock>
<code>// Crear un array de campos de formulario requerido<br />
<span class=azul>$requeridos = array(</span> 'edad', 'nombre', 'comentarios'<span class=azul>)</span>;<br />
// Crear una instancia de un objeto validador, y pasarle el array $requeridos<br />
<span class=azul>$val = new Dwq_Validar(</span>$requeridos<span class=azul>)</span>;</code>
</div>
<h4 id="operador">Acceder a las Propiedades y Métodos con el Operador <span class=azul><strong>-></strong> </span></h4>
<p>La manera de acceder a las propiedades y métodos de un objeto es con el operador <span class=azul><strong>-></strong> </span> (un guión seguido por un signo mayor que, sin espacio entre ellos). Incluso si no sabes nada sobre POO, no te debe tomar mucho tiempo deducir lo que el siguiente código hace (trata de adivinar, y luego lee el siguiente párrafo para ver si estaba en lo cierto):</p>
<div class=codeblock>
<code>// utiliza clase de métodos para validar campos individuales<br />
<span class=azul>$val->isInt(</span>'edad'<span class=azul>)</span>;<br />
<span class=azul>$val->removeTags(</span>'nombre', 0, 0, 1<span class=azul>)</span>;<br />
<span class=azul>$val->checkTextLength(</span>'comentarios', 5, 500<span class=azul>)</span>;<br />
<span class=azul>$val->removeTags(</span>'comentarios', 0, 0, 1<span class=azul>)</span>;<br />
<span class=azul>$val->isEmail(</span>'email'<span class=azul>)</span>;<br />
// validar la entrada y obtener cualquier mensaje de error<br />
<span class=azul>$filtered = $val->validateInput();<br />
$missing = $val->getMissing();<br />
$errors = $val->getErrors();</span></code>
</div>
<p>El objeto <span class=azul>$val</span> comienza comprobando si la edad es un número entero. A continuación, quita las etiquetas HTML en el campo del nombre, comprueba que el campo de comentarios contenga entre 5 y 500 caracteres, y quita todas las etiquetas de ella antes de comprobar que el campo de correo electrónico contenga un formato de dirección de correo electrónico correcto. Las tres últimas líneas validan la entrada, y obtienen los nombres de los campos faltantes y detalles de los errores. Puede parecer misterioso en el momento, pero es mucho más fácil de leer que decenas de líneas de instrucciones condicionales.</p>
<p>Otra ventaja es que los objetos son independientes unos de otros, incluso si son instancias de la misma clase. Puedes crear dos instancias independientes de la clase <span class=azul>Dwq_Validar</span> para validar la entrada del usuario tanto de los arrays <span class=azul>$_POST</span> y <span class=azul>$_GET</span>. Dado que los objetos están separados, se puede identificar de donde ha venido un mensaje de error y tomar las medidas adecuadas. </p>
<p>En resumen se puede decir que la relación más común entre Clase y Objeto encontrada en la mayoría de las fuentes es la de que una clase se puede ver como una plantilla de código utilizada para generar objetos y el objeto es un dato que ha sido estructurado de acuerdo a la plantilla definida en una clase.</p>
<p>Cada objeto se comporta como una caja negra, manteniendo los datos transmitidos a cada uno completamente separados del otro. La analogía de caja negra también se aplica a uno de los conceptos principales detrás de la POO: encapsulación. Concepto que será el tema del próximo artículo relacionado a POO en PHP5.</p>
<h4 id="ref">Referencias</h4>
<ul>
<li><a href="http://www.php.net/manual/en/language.oop5.php" class="external" title="Manual de PHP en inglés" lang="en">Classes and Objects</a></li>
<li><a href="http://foundationphp.com/pos/" class="external" lang="en" title="Libro en Inglés de David Powers">PHP Object-Oriented Solutions</a></li>
<li><a href="http://www.apress.com/book/view/9781590599099" class="external" lang="en" title="Libro en Inglés de Matt Zandstra">PHP Objects, Patterns, and Practice, Second Edition</a></li>
<li><a href="http://es.wikipedia.org/wiki/Programación_orientada_a_objetos#Conceptos_fundamentales" class="external" title="Artículo de la wikipedia">Programación orientada a objetos</a></li>
<li><a href="http://framework.zend.com/manual/en/coding-standard.naming-conventions.html#coding-standard.naming-conventions.classes" class="external" title="Marco de trabajo Zend" lang="en">Zend Framework</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/11/poo-php5-clases-objetos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoshop: Convertir Fotos de Tamaño Pequeño a Tamaño Poster</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/10/photoshop-convertir-fotos-chicas-a-poster/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/10/photoshop-convertir-fotos-chicas-a-poster/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 17:09:03 +0000</pubDate>
		<dc:creator>David Gómez Becerril</dc:creator>
				<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Fotografía]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=50</guid>
		<description><![CDATA[En general, disminuir de tamaño una foto no tiene ningún problema, es decir, llevar una foto 8x10 a 4x5 no causa la menor pérdida de calidad. Aumentar el tamaño de la foto es donde te encuentras los problemas (la foto usualmente se distorsiona, se ve difuminada o hasta pixeleada). Sin embargo, con la técnica del guru en fotografía digital Jim Di Vitale puedes convertir tus fotos de cámara digital al tamaño de Posters [...]]]></description>
			<content:encoded><![CDATA[<p>En general, disminuir de tamaño una foto no tiene ningún problema, es decir, llevar una foto 8&#215;10 a 4&#215;5 no causa la menor pérdida de calidad. Aumentar el tamaño de la foto es donde te encuentras los problemas (la foto usualmente se distorsiona, se ve difuminada o hasta pixeleada). Sin embargo, con la técnica del guru en fotografía digital Jim Di Vitale puedes convertir tus fotos de cámara digital al tamaño de Posters. He aquí como:</p>
<div id="features">
<div id="col1">
<dl>
<dt>Paso 1</dt>
<dd>Abre la foto de tu cámara digital que quieres convertir al tamaño de un Poster. La foto aquí mostrada fue tomada con una cámara Sony a 3 megapixeles. Tiene 7.2 pulg. de ancho por 4.2 pulg. de alto a 300ppi.</dd>
<dt>Paso 2</dt>
<dd>Oprime las teclas “Control+Alt+I” o ve al menú de imagen y selecciona tamaño de imagen (Image Size). Cuando el cuadro de dialogo aparece, asegúrate de que el cuadro Resample Image este activo. Selecciona el campo de unidades del recuadro Document Size como se muestra en la imagen de tu derecha y selecciona porcentaje (percent) y escribe 110 en el campo de ancho (Width), lo cual incrementara toda la imagen en un 10% y lo creas o no, la imagen no pierde su calidad.</dd>
<dt>Paso 3</dt>
<dd>Para obtener la foto al tamaño del Poster te llevara repetir el paso anterior varias veces lo cual toma algo de tiempo. Por ello te recomiendo que crees tu propia acción automática para que lo hagas oprimiendo una sola tecla. Hazlo como sigue:<br /> Ve a la paleta de acciones (Action) oprime el icono para crear acción nueva que se encuentra en la parte inferior de esa paleta. Aparece el cuadro de dialogo como se muestra a tu derecha, yo la nombre como Incremento 10% y elegí la funcion F11, oprime el botón Record y repite el paso 2 de esta sección, cuando termines oprime el botón de stop como se muestra en la figura de tu derecha. Ahora cada que oprimas la función F11 del teclado la foto que tengas activa se incrementara en un 10%.</dd>
<dt>Paso 4</dt>
<dd>He aquí la foto final aumentada a un tamaño de 7.2 pulg. X 4.2 pulg. al tamaño de un Poster de 36 pulg. X 24 pulg. sin perder el mínimo de calidad. Tuve que oprimir 17 veces la función F11 para obtener este tamaño. Gracias a la creación de la acción, toma muy poco tiempo hacerlo.</dd>
</dl>
</div>
<div id="col2">
<p><img src="../../../../../imago/blog/ps/ch6-paso1.jpg" alt="Paso1-Abre la foto a convertir" width="250" height="188" title="Paso1-Abre la foto a convertir"><br />
<span>Fg.1 Abre la foto a convertir</span></p>
<p><img src="../../../../../imago/blog/ps/ch6-paso2.jpg" alt="Paso2-Oprimir teclas Ctrl+Alt+I" title="Paso2-Oprimir teclas Ctrl+Alt+I" width="250" height="188"><br />
  <span>Fg.2 Oprimir teclas Ctrl+Alt+I</span></p>
<p><img src="../../../../../imago/blog/ps/ch6-paso3a.jpg" alt="Paso3-Crear acción nueva" width="250" height="188" title="Paso3-Crear acción nueva"><br />
  <span>Fg.3 Crear Acción Nueva</span></p>
<p><img src="../../../../../imago/blog/ps/ch6-paso3b.jpg" alt="Paso3-Acción Nueva Creada" width="250" height="188" title="Paso3-Acción Nueva Creada"><br />
  <span>Fg.4 Acción Nueva Creada</span></p>
<p><img src="../../../../../imago/blog/ps/ch6-paso4.jpg" alt="Paso4-Foto final a tamaño poster" width="250" height="188" title="Paso4-Foto final a tamaño poster"><br />
  <span>Fg.5 Foto final a tamaño poster</span></p>
</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/10/photoshop-convertir-fotos-chicas-a-poster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emails Transaccionales Personalizados en Magento</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/09/emails-transaccionales-personalizados-en-magento/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/09/emails-transaccionales-personalizados-en-magento/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 07:36:06 +0000</pubDate>
		<dc:creator>David Gómez Becerril</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[eCommerce]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=47</guid>
		<description><![CDATA[<img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Los emails transaccioneales en Magento son los mensajes que se envían por email a los clientes cuando se suscriben al boletín de noticias, el envío de facturas, confirmación de compra recibida, etc, es decir, son los mensajes de las transacciones de negocios que ha realizado el cliente desde tu tienda virtual a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Los emails transaccioneales en Magento son los mensajes que se envían por email a los clientes cuando se suscriben al boletín de noticias, el envío de facturas, confirmación de compra recibida, etc, es decir, son los mensajes de las transacciones de negocios que ha realizado el cliente desde tu tienda virtual a su cuenta de correo electrónico. Magento tiene sus plantillas predeterminadas para esta acción con su propio logotipo y su propio mensaje, es importante que en la configuración de tu tienda virtual con Magento las personalices con el logo de tu empresa y el mensaje personalizado que se ajuste al perfil de tu empresa.</p>
<p>En este artículo te mostraré una manera de hacerlo. Voy asumir que has cargado alguna de las versiones en español en tu local, para mí caso es el español de es_MX.</p>
<h3>Crear emails transaccionales a través del Panel de Administrador </h3>
<p>En el panel de administración de Magento ir a:<br /> <br />
Sistema-> Correos electrónicos transaccionales, se te presentará una lista de correos electrónicos predeterminada, en mí caso sólo se mostró uno, el de Send product to a friend. Necesitarás crear un email personalizado así que la única forma de evitar escribir  nuestras plantillas personalizadas a partir de cero es utilizando el código existente de la plantilla.<br />
Sugerencia: Si deseas ver la plantilla antes de copiar, primero haz clic en el botón de vista previa de la derecha. </p>
<p>Para crear la nueva plantilla, haz clic en &#8220;Agregar plantilla nueva &#8221; arriba de la lista a la derecha de  &#8220;Correos electrónicos transaccionales&#8221;. Esta es la parte donde Magento te ayuda con la opción de cargar una plantilla predeterminada para que puedas personalizarla.</p>
<p>Una vez que hayas cargado la plantilla predeterminada en el campo de “Nombre de Plantilla” escribe un nombre único añadiendo un prefijo propio, pero dejando el nombre predeterminado también. Por ejemplo: &#8220;mi tienda :: New account&#8221;. </p>
<p>De esa manera podrás identificar fácilmente de entre las plantillas predeterminadas y las personalizadas. </p>
<p>Después puedes personalizar fácilmente el texto del mensaje y el estilo en el &#8220;Asunto de la Plantilla&#8221; y &#8220;Contenido de la plantilla”. </p>
<p>El &#8220;contenido de plantilla&#8221; es el cuerpo del mensaje que el usuario recibirá en la transacción, así que asegúrate de cambiar el correo electrónico, nombre de la empresa, etc. Tendrás que subir el logotipo de de tu empresa en la carpeta de imágenes del skin que estés utilizando.<br />
Una vez que hayas terminado con la edición, guarda los cambios y repite el proceso para el resto de las plantillas de correo electrónico.</p>
<h3>Asignación de las plantillas para diferentes tiendas y Vistas de Tienda</h3>
<p>Sólo tienes que ir a Sistema -> Configuración -> Y elegir la sección del sistema donde desees determinar la plantilla personalizada que creaste, como en “Contactos”,  “Ventas “, “Boletín de noticias”, etc. Después de que hayas terminado con el establecimiento de sus plantillas nuevas y guardado la configuración, haces clic en &#8220;Guardar configuración&#8221;.</p>
<p>Eso es todo. Puedes comprobar realizando alguna transacción en tu tienda virtual para ver los mensajes de correos electrónicos enviados desde esa tienda.</p>
<h3 id="ref">Referencias</h3>
<ul>
<li><a href="http://inchoo.net/ecommerce/magento/custom-transactional-emails/" class="external">Custom Transactional Emails</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/09/emails-transaccionales-personalizados-en-magento/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>En Magento Cómo Crear un Producto Configurable</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/09/en-magento-como-crear-un-producto-configurable/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/09/en-magento-como-crear-un-producto-configurable/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 07:31:28 +0000</pubDate>
		<dc:creator>David Gómez Becerril</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[eCommerce]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=40</guid>
		<description><![CDATA[<img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> He encontrado en el sitio de Magento varias maneras para crear un producto configurable, en este artículo expondré la manera en la que a mí me funcionó en tres o cinco pasos.
<ul>
  <li>Introducción</li>
  <li>Paso 1 crear o configurar el o los atributos</li>
  <li>Paso 2 Guardar en Arreglo de Atributos</li>
  <li>Paso 3 Crear el producto configurable</li>
  <li>Paso 4 Exportar perfil de productos</li>
  <li>Paso 5 Después de importar los productos</li>
  <li>Referencias de Magento</li>
</ul>
[...]]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> He encontrado en el sitio de Magento varias maneras para crear un producto configurable, en este artículo expondré la manera en la que a mí me funcionó en tres o cinco pasos.</p>
<ul>
<li><a href="#intro">Introducción</a></li>
<li><a href="#paso1">Paso 1 crear o configurar el o los atributos</a></li>
<li><a href="#paso2">Paso 2 Guardar en Arreglo de Atributos</a></li>
<li><a href="#paso3">Paso 3 Crear el producto configurable</a></li>
<li><a href="#paso4">Paso 4 Exportar perfil de productos</a></li>
<li><a href="#paso5">Paso 5 Después de importar los productos</a></li>
<li><a href="#ref">Referencias de Magento</a></li>
</ul>
<h3 id="intro">Introducción</h3>
<p>Lo primero es establecer los atributos que necesitas. Para mí ejemplo será &#8216;Tamaño&#8217; (Chico, Mediana y Grande) y &#8216;Color&#8217; (Negro, Azul y Rojo). Tengo dos atributos de cada uno con tres opciones, significa que tengo que crear 9 productos simples para cada producto configurable.<br />
Voy asumir que tienes cargada alguna de las traducciones en español, en mi caso es ‘es_MX’.</p>
<p>Nota.- Para la creación de mis productos configurables, los precios no son afectados por sus propiedades como el tamaño y el color. Si en tu caso las propiedades de tus productos si afectan el precio, entonces te recomiendo cargar la extensión ‘Simple Configurable Products’ y hacerlo antes de seguir los pasos que mostraré en este artículo.</p>
<h3 id="paso1">Paso 1 crear o a configurar el o los atributos</h3>
<p>Voy a crear o a configurar primero el atributo en el Panel de administrador:</p>
<p>Bajo Catálogo -> Gestionar Atributos, puedo crear estos dos nuevos atributos con la configuración siguiente:</p>
<h4>Propiedades del Atributo:</h4>
<ul>
<li>Alcance: Global</li>
<li>Tipo de entrada: Dropdown </li>
<li>Valor único: No </li>
<li>Valores requeridos: Sí </li>
<li>Validación de entrada de la tienda del Propietario: Ninguno </li>
<li>Aplicar a: Todos los productos (podrías elegir &#8216;Productos Configurable &#8216;)</li>
<li>Usar  para crear productos configurable: Sí </li>
</ul>
<h4>Propiedades Frontend:</h4>
<ul>
<li>Poner todo en &#8216;no&#8217; excepto &#8216;Visible on Product View Page on Front-end’, que se establece como &#8216;Sí&#8217; </li>
</ul>
<h4>Gestión de Etiqueta/Opciones:</h4>
<ul>
<li>Bajo Gestión de Títulos (Tamaño, Color, etc.)</li>
<li>Admin: Tamaño (o como se quieras llamar a la suya) </li>
<li>Tienda: Tamaño (ídem) </li>
</ul>
<h4>Gestión de Opciones (valores de su atributo): </h4>
<p>Esto es lo que se ve como las opciones de menú desplegable, así que tengo tres: </p>
<ul>
<li>Admin</li>
<li>Chico  Chico  1 </li>
<li>Mediano  Mediano  2 </li>
<li>Grande  Grande  3 </li>
</ul>
<h3 id="paso2">Paso 2 Guardar en Arreglo de Atributos</h3>
<p>Ahora ir a Catálogo-> Atributos-> Gestión de Arreglo de Atributos </p>
<p>Abre el arreglo de atributos que utilizas para tu producto (que bien puede estar en &#8216;default&#8217; o crear uno nuevo con el nombre de ‘Con Opciones’ por ejemplo)</p>
<p>Ahora debes ver tu atributo ‘Tamaño’ en la parte de &#8216;Atributos sin asignar&#8217; a la derecha.<br />
Arrastrarlo y sueltalo en el lugar de &#8220;Grupo-> General&#8221; para que aparezca en la parte del administrador. Yo tengo el mío en un grupo nuevo.</p>
<p>Repite esto para ‘color’ o cualquier otro atributo que necesites crear.<br />
Guardar arreglo de atributos.</p>
<h3 id="paso3">Paso 3 Crear el producto configurable</h3>
<p>Para crear el producto configurable ir a: </p>
<h4>Catálogo -> Gestionar Productos -> Añadir producto</h4>
<ul>
<li>Elije el arreglo de atributos creados para tu producto. </li>
<li>Selecciona el tipo de producto como &#8216;Configurable&#8217; </li>
<li>Haz clic en Continuar </li>
<li>Marca la casilla(s) del atributo(s) que deseas incluir en este nuevo producto (en mi caso &#8216;medida&#8217; y &#8216;color&#8217;)
<li>Haz clic en Continuar </li>
<li>Rellena todos los campos habituales para la creación de un nuevo producto: nombre, descripción, SKU, peso, imágenes, etc. (Si cargaste la extensión ‘Simple Configurable Products’ deja vacio el campo de precio, sino también llénalo normalmente)</li>
<li>Cuando el producto se ha completado  &#8211; haz clic en el botón &#8220;Guardar y continuar editando” </li>
<li>En esta parte es donde empezamos a añadir productos simples a nuestro producto configurable: </li>
<li>Haz clic en &#8216;Productos asociados’ en la columna de la izquierda. </li>
<li>Debes ver una sección titulada &#8216;Creación Rápida de productos simples’</li>
<li>Elige si quieres que Magento genere automáticamente los SKU únicos y los nombres de cada uno de los productos asociados. </li>
</ul>
<p>Puedes permitir esto por el nombre, así Magento crea nombres de los productos como: &#8216;Chamarra Mediana Roja ‘, añadiendo el tamaño y el color atribuido al nombre de la base del producto.<br />
También se puede elegir hacer la SKU única manualmente y hacerla más corta. Eso será cuestión de preferencias de cada quien si se desactivar o no el &#8220;autogenerar&#8221; en el SKU.</p>
<p>Ya estamos en posición seguir una secuencia para generar el producto configurable de tu tienda virtual en Magento como la mostrada a continuación en esta sección de &#8216;Creación Rápida de productos simples’:</p>
<ol>
<li>Editar el SKU (si se desactivó el autogenerar, sino pasar al siguiente paso) </li>
<li>Añadir el peso del producto – para el cálculo del envío. </li>
<li>Estatus: Habilitado </li>
<li>Visibilidad: En ninguna parte (¡Importante!) </li>
<li>Precio: El mismo que el del producto configurable (si se cargo la extensión ‘Simple Configurable Products’ entonces se debe poner el precio de esta variación en el producto).</li>
<li>Tamaño: Elige la primera de las variaciones de tu atributo (Tamaño). Por ejemplo, en mi caso es Chico </li>
<li>Color: Elige la primera de las variaciones de tu atributo (Color). Por ejemplo, en mi caso es Negro. </li>
<li>Cantidad: La cantidad en existencia para este producto</li>
<li>Disponibilidad de stock: &#8216;Disponible&#8217; </li>
<li>Haz clic en &#8216;Creación Rápida&#8217;  </li>
</ol>
<p>Repite los pasos del 1 al 10 para cada variación del producto. Por ejemplo, Negro- Mediano, Negro- Grande, etc.</p>
<p>En este caso, he empleado unos 2 minutos en añadir todos los productos con todas sus variantes.</p>
<p>Cuando hayas terminado, haz clic en &#8220;Guardar&#8221; de la parte superior de la página, y revisa tu trabajo en la gestión de productos donde se debe ver el producto configurable y las nueve variaciones de productos simples para este ejemplo. Si todo se ve bien, comprobar que en la parte del frontend funcionen las opciones para el producto configurable creado.</p>
<p><span>NOTA</span>.- Si en tu configuración cargaste la extensión ‘Simple Configurable Products’ entonces cuando un posible cliente vaya a la página del producto que va a ver, a medida que elija el tamaño de la lista desplegable, el precio cambiará para reflejar esa opción.</p>
<p>Si bien la secuencia mostrada en este último paso es simple y fácil de hacer puede resultar algo tedioso cuando tenemos una cantidad muy grande de productos configurables. Una forma más rápida de hacerlo es importando los productos a través de un archivo CSV.</p>
<h3 id="paso4">Paso 4 Exportar perfil de productos</h3>
<p>Exporta el perfil en un archivo CSV bajo Sistema -> Importar/Exportar -> Perfiles para ver cómo Magento lo estructura. (Debido a que se está trabajando con la versión en español el archivo está en formato utf-8 si quieres trabajar en MS Excel hay que convertirlo en formato ANSI). </p>
<p>En el archivo exportado puedes escribir toda la información de todos tus productos e importarlo nuevamente. </p>
<h3 id="paso5">Paso 5 Después de importar los productos</h3>
<p>Cómo importar los productos mediante el archivo csv esta fuera del alcance de este artículo pero en otro artículo posterior tal vez lo explique. Una vez que se han importado todos los productos (configurables y simples) ir a catálogo -> Gestión de Productos y selecciona uno de los productos configurables que acabas de importar.</p>
<h3 id="ref">Referencias</h3>
<ul>
<li><a href="http://www.desarrollowebdequeretaro.com/blog/2009/08/definir-productos-en-magento/">Definir Productos</a></li>
<li><a href="http://www.desarrollowebdequeretaro.com/blog/2009/11/magento-producto-agrupado-vs-configurable/">Producto Agrupado vs Configurable</a></li>
<li><a href="http://www.magentocommerce.com/" class="external" lang="en">Sitio de Magento</a></li>
<li><a href="http://www.magentocommerce.com/extension/596/simple-configurable-products" class="external" lang="en">Extensión de Simple Configurable Products</a></li>
<li><a href="http://www.magentocommerce.com/magento-on-the-fly/quick-products/" class="external" lang="en">Video: Building Configurable Products Fast by Yoav Kutner</a></li>
<li><a href="http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-configurable-product" class="external" lang="en">Creating a Configurable Product</a></li>
<li><a href="http://www.magentocommerce.com/boards/viewthread/53665/#t169682" class="external" lang="en">Change a simple product to a configurable product</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/09/en-magento-como-crear-un-producto-configurable/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Definir Productos en Magento</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/08/definir-productos-en-magento/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/08/definir-productos-en-magento/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 15:24:29 +0000</pubDate>
		<dc:creator>David Gómez</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[eCommerce]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=36</guid>
		<description><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> En Magento, hay tres tipos de productos que puedes crear:</p>
<ul>
  <li>Producto Simple</li>
  <li>Producto Configurable</li>
  <li>Producto Agrupado [...]</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> En Magento, hay tres tipos de productos que puedes crear:</p>
<ul>
<li><a href="#simple">Producto Simple</a></li>
<li><a href="#configurable">Producto Configurable</a></li>
<li><a href="#agrupado">Producto Agrupado</a></li>
</ul>
<h3 id="simple">Producto Simple</h3>
<p>El Producto Simple es la base para los productos Configurables y Agrupados. Un producto Simple es sólo un producto individual que se va a vender en la tienda virtual, donde los atributos son determinados por el propietario de la tienda. Tendrá los atributos del sistema (como todos los productos requieren), y pueden tener atributos simples también. Un ejemplo de un producto simple sería una chamarra. Se presenta en tu sitio web como un tema independiente, se ha definido que es azul. Cuando los clientes llegan a la página de este producto, se puede ver el color en la sección de información del producto, su única opción es sí o no a comprar. </p>
<h3 id="configurable">Producto Configurable</h3>
<p>Un producto configurable ofrece mucha más interacción con el cliente. Sigamos con el ejemplo de la chamarra, ya que será la base para nuestro producto configurable. Además de esta chamarra azul, produces versiones ligeramente diferentes: una versión en color rojo, así como una con mangas desarmables (en azul y rojo). Se crearían otros tres productos simples nuevos (rojo, azul/mangas desarmables, y rojo/mangas desarmables), así, si sólo utilizas la función de producto simple, tendrías cuatro páginas de productos, una para cada combinación de color. Sin embargo, usando Producto Configurable, puedes combinar las cuatro páginas en una sola, de modo que es más probable que el cliente encuentre la chamarra que desea, mientras que al mismo tiempo la navegación en tu tienda se hace mucho más sencilla. Una vez creadas las cuatro chamarras simples, puedes crear una chamarra configurable, y asociarlas en una. El color y las mangas desarmables no se fijan en la cuenta de los productos configurables al crearla, será el cliente quien lo fijará cuando compre. Así, cuando los clientes llegan a esta página, en lugar de ver los atributos enumerados en la sección de información del producto, se verá un menú desplegable para el color (con opciones de color azul y rojo) y un desplegable para mangas (con opciones para fijas o desarmables). La combinación de atributos que elijan determinará cuál de los cuatro productos simples se fincará en el pedido. El producto configurable no es por lo tanto un producto en absoluto, sino más bien una característica para mostrar varios productos simples.</p>
<h3 id="agrupado">Producto Agrupado</h3>
<p>Un Producto Agrupado es muy similar a un producto configurable. Es sólo una característica a utilizar para mostrar varios productos simples en una sola página del producto. Sin embargo, se muestra en una forma diferente. Sigamos con el ejemplo de la chamarra. Olvídense de las tres nuevas versiones que comenzaron a llevar, y volvamos al diseño clásico de color azul con mangas fijas. Junto con esta chamarra, también se venden pantalones y gorras de juego, los tres hacen un uniforme. Con productos simples se tienen tres páginas separadas para cada pieza. Pero como son parte de un uniforme se pueden ver juntas. Esto puede lograrse fácilmente utilizando productos agrupados. Basta con crear un grupo y nombrarlo como uniforme paramédico. En tu página web, la página de este producto Agrupados listará los tres productos simples, cada uno con su propio campo de cantidad. De esta manera, los clientes son alertados de la presencia del conjunto, e incluso anima a comprar las piezas, sin embargo, todavía tienen la opción de comprar las piezas por separado (de hecho, se puede obligar a comprar las tres piezas juntas).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/08/definir-productos-en-magento/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>¿Cómo cambiar el texto predeterminado en la plantilla de Magento?</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/08/cambiar-texto-en-plantilla-de-magento/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/08/cambiar-texto-en-plantilla-de-magento/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 19:14:58 +0000</pubDate>
		<dc:creator>David Gómez</dc:creator>
				<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=33</guid>
		<description><![CDATA[<img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Para cambiar el texto predeterminado primero ingreso una línea de texto nueva en Inglés en el archivo adecuado ¿Cómo puedo saber cuál es el archivo adecuado? Yo uso notepad + + (npp) como mi editor de código fuente (puedes utilizar el de tu preferencia). Así, con la herramienta "Buscar y Buscar en archivos" (Ctrl + F) introduzco el texto predeterminado [...]]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/magento/logo_magento.jpg" class="fltlft" alt="Logo de Magento" title="Logo de Magento" width="21" height="24" /> Para cambiar el texto predeterminado primero ingreso una línea de texto nueva en Inglés en el archivo adecuado ¿Cómo puedo saber cuál es el archivo adecuado? Yo uso notepad + + (npp) como mi editor de código fuente (puedes utilizar el de tu preferencia). Así, con la herramienta &#8220;Buscar y Buscar en archivos&#8221; (Ctrl + F) introduzco el texto predeterminado &#8220;xxxx&#8221; que estoy interesado en cambiar y mi npp mostrará los archivos csv, phtml y xml que lo están utilizando.</p>
<p>Veamos un ejemplo: </p>
<h3>Paso 1: Buscar texto en archivos de Magento</h3>
<p>Quiero cambiar el texto contenido en <label for="newsletter"> que es: </p>
<p><code>Sign up for our newsletter:</code></p>
<p>Por lo tanto con la herramienta de búsqueda (Ctrl + F) en mi npp encuentro cuatro archivos con el texto, en_US/Mage_Newsletter.csv; es_MX/Mage_Newsletter.csv y las dos plantillas iguales pero en rutas diferentes: subscribe.phtml.</p>
<p>Ten en cuenta que la plantilla que voy a modificar se encuentra en la ruta:</p>
<p><code>/magento/APP/diseño/frontend/myInterface/default/plantilla/newsletter/subscribe.phtml </code></p>
<h3>Paso 2: Agregar texto en archivos csv de Magento encontrados</h3>
<p>Como ya he identificado los archivos en los que debo ingresar el texto nuevo que deseo agregar voy al archivo csv: </p>
<p>En el archivo en_US/Mage_Newsletter.csv </p>
<p>Y agrego lo siguiente:</p>
<p><code>"Enter your email address to receive product news, promotions and more:","Enter your email address to receive product news, promotions and more:"</code></p>
<p>Luego en es_MX/Mage_Newsletter.csv</p>
<p><code>"Enter your email address to receive product news, promotions and more:","Introduzca su email para recibir noticias sobre productos, promociones y mucho más:"</code></p>
<h3>Paso 3: Cambiar texto en plantilla phtml de Magento encontradas</h3>
<p>Entonces en el archivo subscribe.phtml. Se encuentra esta línea: </p>
<p><code>&lt;label for="newsletter">&lt;?php echo $this->__('Sign up for our newsletter:') ?>&lt;/label></code></p>
<p>Lo he cambiado por la nueva línea que he introducido en los archivos csv como: </p>
<p><code>&lt;label for="newsletter">&lt;?php echo $this->__('Enter your email address to receive product news, promotions and more:') ?>&lt;/label></code></p>
<p>Notece que he utilizado el texto en Inglés para que la aplicación de Magento lo tome en cuenta a la hora de utilizar la traducción.</p>
<p>¡Y&#8230; eso es todo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/08/cambiar-texto-en-plantilla-de-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empiezo con HTML 5</title>
		<link>http://www.desarrollowebdequeretaro.com/blog/2009/07/empiezo-con-html-5/</link>
		<comments>http://www.desarrollowebdequeretaro.com/blog/2009/07/empiezo-con-html-5/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 07:27:49 +0000</pubDate>
		<dc:creator>David Gómez</dc:creator>
				<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Estándares]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.desarrollowebdequeretaro.com/blog/?p=31</guid>
		<description><![CDATA[<img src="../../../../../imago/blog/html/html-thmb.jpg" alt="Tag de doctype de html 5" width="100" height="12" >Hoy doy inicio a una serie de artículos relacionados con <acronym title="Del Inglés: Hypertext Markup Language">HTML 5</acronym>, que ha sido uno de los temas que más me han llamado la atención en los últimos meses. Y es que me parece tan interesante hacia dónde va ir el desarrollo web en término de estándares que pareciera una tarea casi imposible de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="../../../../../imago/blog/html/html.jpg" alt="Tag de doctype de html 5" width="300" height="37" class="fltlft" >Hoy doy inicio a una serie de artículos relacionados con <acronym title="Del Inglés: Hypertext Markup Language">HTML 5</acronym>, que ha sido uno de los temas que más me han llamado la atención en los últimos meses. Y es que me parece tan interesante hacia dónde va ir el desarrollo web en término de estándares que pareciera una tarea casi imposible de lograr por tantos intereses de por medio que se manejan tanto de las empresas desarrolladoras de navegadores Apple, Mozilla, y Opera así como de los grupos de la <acronym title="Del Inglés: World Wide Web Consortium">W3C</acronym> para establecer de la mejor manera posible los elementos que conformarán el <acronym title="Del Inglés: Hypertext Markup Language">HTML 5</acronym>.</p>
<p>Como mi conocimiento esta limitado a lo que se va publicando en inglés, la mayor parte de mis referencias es hacía esos sitios escritos en inglés.  Y es precisamente esta la razón por las que me he animado a empezar a publicar lo que voy leyendo y lo que empiece a utilizar en sitios nuevos para aportar con mi granito de arena en el idioma Español.</p>
<p>Y haciendo una brevísima historia de los inicios del <acronym title="Del Inglés: Hypertext Markup Language">HTML 5</acronym>, les dejos esta pequeña traducción de <a href="http://dev.w3.org/html5/spec/Overview.html#history-0" lang="en">1.4 History HTML 5</a> </p>
<h2>Breve Historia de <acronym title="Del Inglés: Hypertext Markup Language">HTML 5</acronym></h2>
<p>A finales del año 2003 se iniciaron los trabajos en <acronym title="Del Inglés: Hypertext Markup Language">HTML 5</acronym>, como un demostración de concepto que era posible extender los formularios  del HTML 4 para proporcionar muchas de las características que presenta el Formato (X) 1.0, sin la necesidad de pedirle a los navegadores que implementen motores de regenerado que eran incompatibles con las existentes páginas Web en <acronym title="Del Inglés: Hypertext Markup Language">HTML</acronym>. En esta muy temprana etapa, el anteproyecto ya estaba a disposición del público,  ya había solicitudes de todas partes para que se les pusiera al tanto, mientras que la especificación se encontraba únicamente como derechos de autor de Opera Software.</p>
<p>A principios del 2004, algunos de los principios por los que se basaba este esfuerzo, tan sólo como una propuesta de anteproyecto inicial cubriendo únicamente características relacionadas con los formularios, fueron presentados a la <acronym title="Del Inglés: World Wide Web Consortium">W3C</acronym> en conjunción por Mozilla y Opera como un taller para discutir el futuro de las Aplicaciones Web en la Web. La propuesta fue rechazada sobre el fundamento de que dicha propuesta entraba en conflicto con la dirección previamente elegida para la evolución de la Web.</p>
<p>Inmediatamente después, ya agrupados Apple, Mozilla y Opera  anunciaron su intención de continuar trabajando en dicho esfuerzo. Una lista de emails pública fue creada, y el anteproyecto fue cambiado a el sitio <acronym title="Del Inglés: Web Hypertext Application Technology Working Group">WHATWG</acronym>. Por consiguiente los derechos de autor fueron corregidos para que pertenecieran a las tres empresas participantes y permitir reutilizar las especificaciones.</p>
<p>En el 2006, la <acronym title="Del Inglés: World Wide Web Consortium">W3C</acronym> expresó interés en las especificación, creando un grupo de trabajo encargado de laborar con la WHATWG en el desarrollo de las especificaciones del <acronym title="Del Inglés: Hypertext Markup Language">HTML 5</acronym>. El grupo de trabajo empezó en el 2007. Apple, Mozilla y Opera permitieron a la <acronym title="Del Inglés: World Wide Web Consortium">W3C</acronym> públicar las especificaciones bajo los derechos de autor de la <acronym title="Del Inglés: World Wide Web Consortium">W3C</acronym>, mientras que se mantienen versiones menos restrictivas en el sitio de la <acronym title="Del Inglés: Web Hypertext Application Technology Working Group">WHATWG</acronym>.</p>
<p>Desde entonces, ambos grupos han trabajado juntos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollowebdequeretaro.com/blog/2009/07/empiezo-con-html-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
