<?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>Magento Archives - Pereira, Thiago Santos.</title>
	<atom:link href="https://thiagosantos.com/blog/tag/magento/feed/" rel="self" type="application/rss+xml" />
	<link>https://thiagosantos.com/blog/tag/magento/</link>
	<description>the fun of code.</description>
	<lastBuildDate>Sun, 25 Mar 2018 02:04:56 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5</generator>
	<item>
		<title>Magento 2 &#8211; alterar a complexidade da regra de validação da senha</title>
		<link>https://thiagosantos.com/blog/656/ecommerce/magento/magento-2-alterando-a-complexidade-da-regra-de-validacao-da-senha/</link>
					<comments>https://thiagosantos.com/blog/656/ecommerce/magento/magento-2-alterando-a-complexidade-da-regra-de-validacao-da-senha/#comments</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Sat, 24 Mar 2018 23:23:15 +0000</pubDate>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[alterar complexidade]]></category>
		<category><![CDATA[magento 2]]></category>
		<category><![CDATA[regras de validação de senha]]></category>
		<category><![CDATA[senha]]></category>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=656</guid>

					<description><![CDATA[<p>Introdução Agora com o Magento 2 ficou muito fácil alterar a complexidade da regra de validação da senha cadastrada pelo usuário. Por padrão o Magento 2 usa três tipos de caracteres entre (letras caixa baixa, letras caixa alta, números e caracteres especiais). No entanto é possível simplificar essa regra de validação, lembrando que não é [&#8230;]</p>
<p>The post <a href="https://thiagosantos.com/blog/656/ecommerce/magento/magento-2-alterando-a-complexidade-da-regra-de-validacao-da-senha/">Magento 2 &#8211; alterar a complexidade da regra de validação da senha</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introdução</h2>
<p>Agora com o Magento 2 ficou muito fácil alterar a complexidade da regra de validação da senha cadastrada pelo usuário. Por padrão o Magento 2 usa três tipos de caracteres entre (letras caixa baixa, letras caixa alta, números e caracteres especiais).<span id="more-656"></span></p>
<p>No entanto é possível simplificar essa regra de validação, lembrando que não é uma boa ideia fazer isso! Quanto mais complexa a senha menor a chance de alguém conseguir quebrar e ter acesso aos dados do seu usuário. Se todos nós, desenvolvedores e administradores de sites, forçarmos aos nossos usuários padrões de senhas mais complexas ocorrerá, sem sombras de dúvidas, uma melhora da força das senhas e em seguida uma menor chance de quebra.</p>
<h2>Administrador</h2>
<p>Já logado no admin do Magento 2, va em <strong>Store -&gt; Configuration</strong>, depois acesse no menu lateral <strong>Customers &#8211; &gt; Customer Configuration</strong> e depois em <strong>Password Options</strong></p>
<figure id="attachment_657" aria-describedby="caption-attachment-657" style="width: 909px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-657 size-full" title="Campo em &quot;Password Options&quot; para alterar a quantidade de caracteres" src="http://thiagosantos.com/blog/wp-content/uploads//2018/03/Screen-Shot-2018-03-24-at-19.47.02.png" alt="Campo em &quot;Password Options&quot; para alterar a quantidade de caracteres" width="909" height="95" srcset="https://thiagosantos.com/blog/wp-content/uploads/2018/03/Screen-Shot-2018-03-24-at-19.47.02.png 909w, https://thiagosantos.com/blog/wp-content/uploads/2018/03/Screen-Shot-2018-03-24-at-19.47.02-300x31.png 300w, https://thiagosantos.com/blog/wp-content/uploads/2018/03/Screen-Shot-2018-03-24-at-19.47.02-768x80.png 768w, https://thiagosantos.com/blog/wp-content/uploads/2018/03/Screen-Shot-2018-03-24-at-19.47.02-624x65.png 624w" sizes="(max-width: 909px) 100vw, 909px" /><figcaption id="caption-attachment-657" class="wp-caption-text">Campo em &#8220;Password Options&#8221; para alterar a quantidade de caracteres</figcaption></figure>
<h2>Como funciona</h2>
<p>A regra é bem simples: a quantidade de dígitos corresponde a quantidade de classes de caracteres são eles: letras em caixa baixa, letras em caixa alta, números e caracteres especiais. Quanto maior a quantidade de caracteres maior a complexidade da senha. Por exemplo:</p>
<p>1 &#8211; será aceito senhas unicamente com números, letras caixa baixa, letras caixa alta e caracteres especiais:</p>
<ul>
<li><span style="color: #000000;"><strong>09151987</strong></span></li>
<li><span style="color: #000000;"><strong>senhasenha</strong></span></li>
<li><span style="color: #000000;"><strong>SENHASENHA</strong></span></li>
<li><span style="color: #000000;"><strong>!@#$@!#$%</strong></span></li>
</ul>
<p>2 &#8211; só serão aceitos senhas com duas classes de caracteres ( o que deixa um pouco mais seguro):</p>
<ul>
<li><span style="color: #000000;"><strong>05151987<span style="color: #ff9900;">senha</span></strong></span></li>
<li><span style="color: #000000;"><strong>senha</strong><span style="color: #ff9900;"><strong>SENHA</strong></span></span></li>
<li><span style="color: #000000;"><strong>senha</strong><span style="color: #ff9900;"><strong>@!$</strong></span></span></li>
</ul>
<p>3 &#8211; só serão aceitas senhas com três classes de caracteres, o que deixa a senha ainda mais segura!</p>
<ul>
<li><strong><span style="color: #ff9900;">09051987</span><span style="color: #000000;">SE</span><span style="color: #0000ff;">nha</span></strong></li>
<li><strong>senha<span style="color: #ff9900;">PASS</span><span style="color: #0000ff;">$#!</span></strong></li>
<li><strong>#$@<span style="color: #ff9900;">TEE</span><span style="color: #0000ff;">1234</span></strong></li>
</ul>
<p>4 &#8211; só serão aceitas senhas com quatro classes de caracteres, deixando a senha fuderoza!</p>
<ul>
<li><strong><span style="color: #ff9900;">09051987</span><span style="color: #000000;">SE</span><span style="color: #0000ff;">nha<span style="color: #339966;">!@#$</span></span></strong></li>
<li><strong>senha<span style="color: #ff9900;">PASS</span><span style="color: #0000ff;">$#!<span style="color: #339966;">9013</span></span></strong></li>
<li><strong>#$@<span style="color: #ff9900;">TEE</span><span style="color: #0000ff;">1234<span style="color: #339966;">vamos</span></span></strong></li>
</ul>
<p>É isso, bem simples!<br />
Colori as classes para destacar as cadeias de caracteres das classes envolvidas. Vale lembrar que para o Magento 2 define como padrão 8 a quantidade minima de caracteres para uma senha. Se é possível alterar a <a href="http://thiagosantos.com/blog/666/php/magento-2-alterar-a-quantidade-minima-de-caracteres-da-senha/">quantidade minima de caracteres? Sim! É possível!</a></p>
<p>Fontes:<br />
<a href="https://magento.stackexchange.com/questions/117449/magento-2-how-to-change-password-length-validation">https://magento.stackexchange.com/questions/117449/magento-2-how-to-change-password-length-validation</a></p>
<p>The post <a href="https://thiagosantos.com/blog/656/ecommerce/magento/magento-2-alterando-a-complexidade-da-regra-de-validacao-da-senha/">Magento 2 &#8211; alterar a complexidade da regra de validação da senha</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/656/ecommerce/magento/magento-2-alterando-a-complexidade-da-regra-de-validacao-da-senha/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Alterar a quantidade minima de compra de todos os produtos</title>
		<link>https://thiagosantos.com/blog/564/ecommerce/alterar-quantidade-minima-de-compra-de-todos-os-produtos/</link>
					<comments>https://thiagosantos.com/blog/564/ecommerce/alterar-quantidade-minima-de-compra-de-todos-os-produtos/#comments</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Tue, 07 Jan 2014 11:53:13 +0000</pubDate>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[qtd minima checkout]]></category>
		<category><![CDATA[qtd produtos]]></category>
		<category><![CDATA[quantidade minima]]></category>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=564</guid>

					<description><![CDATA[<p>Me deparei outro dia com a necessidade de alterar a quantidade minima para a compra de produtos no Magento. Por padrão na página de exibição do produto há um campo de texto onde você adiciona quantos itens você quer daquele produto o valor minimo inicial por padrão é 0. Mas e se eu quiser que o minimo [&#8230;]</p>
<p>The post <a href="https://thiagosantos.com/blog/564/ecommerce/alterar-quantidade-minima-de-compra-de-todos-os-produtos/">Alterar a quantidade minima de compra de todos os produtos</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Me deparei outro dia com a necessidade de alterar a quantidade minima para a compra de produtos no Magento. Por padrão na página de exibição do produto há um campo de texto onde você adiciona quantos itens você quer daquele produto o valor minimo inicial por padrão é <em>0.</em> Mas e se eu quiser que o minimo seja 1, 5 ou mesmo N ? Há duas formas de controlar essa quantidade minima.<span id="more-564"></span></p>
<p><span style="color: #3366ff;"><strong>Página de edição do produto</strong></span></p>
<p>A primeira é a na própria página de edição do produto, no menu &#8220;Inventory&#8221; desmarque a opção &#8220;Use Config Settings&#8221; para &#8220;Minimum Qty Allowed in Shopping Cart&#8221; e defina qual a quantidade minima desde produto para ser adicionado ao carrinho.</p>
<p><img decoding="async" class="size-full wp-image-565 aligncenter" src="http://thiagosantos.com/blog/wp-content/uploads//2014/01/thiagosantos.com_magento_minimum_qty_allowed_shopping_cart.jpg" alt="thiagosantos.com_magento_minimum_qty_allowed_shopping_cart" width="598" height="470" srcset="https://thiagosantos.com/blog/wp-content/uploads/2014/01/thiagosantos.com_magento_minimum_qty_allowed_shopping_cart.jpg 598w, https://thiagosantos.com/blog/wp-content/uploads/2014/01/thiagosantos.com_magento_minimum_qty_allowed_shopping_cart-300x235.jpg 300w" sizes="(max-width: 598px) 100vw, 598px" /></p>
<p><span style="color: #3366ff;"><strong>Configuração global</strong></span></p>
<p><strong> </strong><span style="line-height: 1.714285714; font-size: 1rem;">A segunda forma é a configuração global cujo valor é aplicado para todos os produtos que estão com opção &#8220;Use Config Settings&#8221; para &#8220;</span><span style="line-height: 1.714285714; font-size: 1rem;">Use Config Settings&#8221; para &#8220;Minimum Qty Allowed in Shopping Cart&#8221; marcado. Essa opção está localizada em &#8220;System&#8221;-&gt;&#8221;Configuration&#8221;-&gt;&#8221;Inventory&#8221; no item &#8220;Product Stock Option&#8221;, escolha &#8220;ALL GROUPS&#8221; para aplicar a regra a todos os grupos de usuários do seu site. </span></p>
<p><img decoding="async" class="aligncenter size-full wp-image-566" src="http://thiagosantos.com/blog/wp-content/uploads//2014/01/thiagosantos.com_magento_minimum_qty_allowed_shopping_cart_global.jpg" alt="thiagosantos.com_magento_minimum_qty_allowed_shopping_cart_global" width="695" height="440" srcset="https://thiagosantos.com/blog/wp-content/uploads/2014/01/thiagosantos.com_magento_minimum_qty_allowed_shopping_cart_global.jpg 695w, https://thiagosantos.com/blog/wp-content/uploads/2014/01/thiagosantos.com_magento_minimum_qty_allowed_shopping_cart_global-300x189.jpg 300w, https://thiagosantos.com/blog/wp-content/uploads/2014/01/thiagosantos.com_magento_minimum_qty_allowed_shopping_cart_global-624x395.jpg 624w" sizes="(max-width: 695px) 100vw, 695px" /></p>
<p>Simples assim.</p>
<p>:-)</p>
<p>The post <a href="https://thiagosantos.com/blog/564/ecommerce/alterar-quantidade-minima-de-compra-de-todos-os-produtos/">Alterar a quantidade minima de compra de todos os produtos</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/564/ecommerce/alterar-quantidade-minima-de-compra-de-todos-os-produtos/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Magento login automático</title>
		<link>https://thiagosantos.com/blog/306/php/magento-login-automatico/</link>
					<comments>https://thiagosantos.com/blog/306/php/magento-login-automatico/#comments</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Tue, 27 Mar 2012 18:27:25 +0000</pubDate>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[login automático]]></category>
		<category><![CDATA[magento customer login]]></category>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=306</guid>

					<description><![CDATA[<p>O login automático é uma solução para desenvolvedores, mantenedores e proprietários de ecommerce Magento que querem dar uma melhor experiência para seus usuários. Vale a pena dar uma lida, e mais a pena ainda comentarem.</p>
<p>The post <a href="https://thiagosantos.com/blog/306/php/magento-login-automatico/">Magento login automático</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="color: #3366ff;"><strong>1. Introdução</strong></span></p>
<p>Construindo um modulo para carrinho abandonado no Magento me deparei com a seguinte situação:</p>
<ol>
<li>O usuário recebe no email uma cópia do carrinho que ele abandonou</li>
<li>Ele se interessa novamente pelos produtos, clica no email</li>
<li>É então direcionado para a página de login do Magento</li>
<li>Digita usuário e senha, e é direcionado para a home, ou para a minha conta (varia de acordo com as configurações do admin)</li>
<li>Depois o usuário tem que se dar ao trabalho de ir para o página do carrinho (checkout/cart)</li>
<li>E dai então continuar com o processo</li>
</ol>
<div>São 6 passos para que o cliente tem que seguir para continuar com a compra que ele havia abandonado uma vez.</div>
<div>Achei tudo muito complicado. O usuário já se interessar pelo carrinho que ele abandonou já seria um grande lucro, então vamos facilitar.</div>
<div>Pensando nisso criei uma proposta para diminuir de 6 passos para apenas 4, removendo os passos mais entediantes logar e direcionar o usuário pro carrinho. A proposta é que após receber o carrinho abandonado por e-mail o cliente entre direto na página do carrinho já logado. Os passos são descritos abaixo:</div>
<div>
<ol>
<li>O usuário recebe no email uma cópia do carrinho que ele abandonou</li>
<li>Ele se interessa novamente pelo produtos, clica no email</li>
<li>É então direcionado para uma página onde seu usuário é autenticado, e então automaticamente redirecionado para para a página do carrinho já logado.</li>
<li>Se necessário modificar o carrinho e continuar com o processo<br />
<span id="more-306"></span></li>
</ol>
<div>[Um ponto que seria interessante de estudar é a eficacia de direcionar o usuário para a página do carrinho e para a página de checkout, fica ai a dica para os curiosos.]</div>
</div>
<div><strong><span style="color: #3366ff;">2. Criptografia</span></strong></div>
<div>Tive que bolar um jeito de conseguir passar uma string com um identificador único do usuário através dos parametro GET no email dele. O Magento disponibiliza o &#8220;core/encryption&#8221; capaz de criptografar e descriptografar uma string qualquer. O legal disso é a string que criptografar com a minha instalação será diferente da sua, mesmo se passarmos exatamente os mesmos valores. Isso porque o Magento usa os dados do &#8220;crypt key&#8221; definida no momento da instalação.</div>
<div>De forma prática:</div>
<pre lang="php">$crypt = Mage::getModel('core/encryption');
echo $crypt-&gt;encrypt("thiagão_boladão");</pre>
<pre lang="php">[retornos]
Magento 1: tDxa5XdEj6easqHi2pglwF/eQYKimNNJ
Magento 2: 5skpZoWseMKdMgd/aOMLrXSVhLebaMUa</pre>
<p>Em duas instalações diferentes do Magento, obtive duas saídas diferentes. Isso torna a criptografia mais segura, mas não a prova de quebras. Foco no login automático!</p>
<p><strong><span style="color: #3366ff;">3. Decriptografia</span></strong></p>
<p>Da mesma forma que criptografamos a informação é possível também descriptografar obtendo a mesma sentença inicial da forma que se segue.</p>
<pre lang="php">$crypt = Mage::getModel('core/encryption');
echo $crypt-&gt;decrypt("5skpZoWseMKdMgd/aOMLrXSVhLebaMUa");</pre>
<pre lang="php">[retornos]
Magento 1: i������o�Ǻ��f2g�
Magento 2: thiagão_boladão</pre>
<p><span style="color: #3366ff;"><strong><br />
4. Cryptografando e montando a URL</strong></span></p>
<p>O meu objetivo é criar um link que é enviado para o usuário contendo id do usuário como parametro, fácil de identificar quando tivermos o retorno, seu email ( para checarmos a autenticidade do link) e uma data de expiração tudo criptografado em um link. oO</p>
<p>Ao invés de o link ser ao do tipo:<br />
<em>http://meumagento.com.br/meucontroller/loga/?id=1&amp;email=5&amp;expira=2121214578</em> seria algo do tipo:<br />
<em>http://meumagento.com.br/meucontroller/loga/?c=5skpZoWseMKdMgd/aOVhLebaUa .</em></p>
<p>Pensei em concaternar os dados ao invés de cada dado ser um parâmetro diferente. Por tanto vou usar os dados concatenados separados por ponto e virgula (;). Assim no primeiro parametro fica o id, no segundo fica o email do usuário e no terceiro a data de validade do link:</p>
<p>ID do usuário; email do usuário; data de expiração do link</p>
<p>Passando isso pra código seria algo assim:</p>
<pre lang="php">$crypt = Mage::getModel('core/encryption');
$customer = Mage::getModel('customer/customer')-&gt;load(3);
//validade do link é de 48 horas
$timeout = time()+(60*60)*48;
$_crypted = $crypt-&gt;encrypt(
                            $customer-&gt;getId().";".
                            $customer-&gt;getEmail().";".
                            $timeout
                           );
//link
echo Mage::getUrl('meucontroller/loga', array('c' =&gt; $_crypted));</pre>
<pre lang="php">[deve ficar algo assim]
http://meumagento.com.br/meumodulo/meucontroller/loga/index/c/XvCfxYRNKYI9OsYPil1FgsDoi7x52+RaUdj4QoLHAaw=/</pre>
<p>Bem legal né?<br />
Só que se avaliarmos o nosso parametro c, vamos ver que há um &#8220;=&#8221; e um &#8220;+&#8221; na string, então pra não corremos o risco de uma deformação na nossa string antes de montar a url, vou colocar o url_encode. Ficando assim:</p>
<p>&nbsp;</p>
<pre lang="php">$crypt = Mage::getModel('core/encryption');
$customer = Mage::getModel('customer/customer')-&gt;load(3);
//validade do link é de 48 horas
$timeout = time()+(60*60)*48;
$_crypted = $crypt-&gt;encrypt(
                            $customer-&gt;getId().";".
                            $customer-&gt;getEmail().";".
                            $timeout
                           );
//link
echo Mage::getUrl('meucontroller/loga',
                   array('c' =&gt; url_encode($_crypted))
                  );</pre>
<pre lang="php">[deve ficar algo assim]
http://meumagento.com.br/meumodulo/meucontroller/loga/index/c/XvCfxYRNKYI9OsYPil1FgsDoi7x52%2BRavxAgdhTuSOI%3D/</pre>
<p>Só não podemos deixar de decodificar depois &#8230; :)<br />
Basicamente é isso fechamos essa etapa, temos ao final uma url com 3 parâmetros codificados e criptografados que será enviado pro usuário.</p>
<p><strong><span style="color: #3366ff;">5. Controller e a volta</span></strong></p>
<p>A volta é bem simples, com os conceitos de criptografar e decriptografar descritos a cima fica facil daqui em diante. O cliente acabou de clicar sobre o link que foi enviado e em seguida ele é direcionado para o seu controller &#8220;MeuController&#8221; no metodo &#8220;logaAction&#8221;. Esse post já está enorme, então vou me limitar ao metodo.</p>
<pre lang="php">public function logaAction(){

    $parametro = $this-&gt;getRequest()-&gt;getParam('c');
    $session = Mage::getSingleton('customer/session');

    if (!isset($parametro )) {
        $session-&gt;addError('URL inválida ou usuário inexistente.');
        $this-&gt;_redirect('/');
    }
    //0 - id //1 - email //2 - data de expiracao
    $csv = Mage::helper('carrinhoabandonado')-&gt;decrypt($parametro );
    $_customerinfo = explode(';', $csv);

    //ID do usuário
    $customerid = $_customerinfo[0];
    //email do usuário
    $customermemail = $_customerinfo[1];
    //Data de expiração do link
    $exp = $_customerinfo[2];

    //primeira coisa a ser feita aqui é validar a data do link
    if(time()&gt;$exp){
        $session-&gt;addError('URL inválida ou usuário inexistente.');
        $this-&gt;_redirect('/');
    }
    //Usuário existe?
    $customer = Mage::getModel('customer/customer')-&gt;load($customerid);
    if(!$customer-&gt;getId()){
        $session-&gt;addError('URL inválida ou usuário inexistente.');
        $this-&gt;_redirect('/');

    }
    //Data ok, usuário existe, validar o email do banco com o do parametro
    if($customer-&gt;getEmail() != $customeremail){
        $session-&gt;addError('URL inválida ou usuário inexistente.');
        $this-&gt;_redirect('/');
   }

   //Tudo OK!
   $session-&gt;logout();
   //Logando o usuário
   $session-&gt;setCustomer($customer);

   $this -&gt; _redirect('/');
}</pre>
<p>Auto explicativo?</p>
<p>Comentem e vamos fazer desde um post mais completo!</p>
<p>Quem quiser dar uma olhada no meu modulo de carrinho abandonado, e quiser fazer alguns relatórios :). Ele ta lá no <a title="Carrinho Abandonado" href="https://github.com/thiagosantos/Carrinho-Abandonado---Magento">GitHub</a> (<a href="https://github.com/thiagosantos/Carrinho-Abandonado---Magento">https://github.com/thiagosantos/Carrinho-Abandonado&#8212;Magento</a>). Para esse post usei parte de código do Carrinho Abandonado, mas a versão do post está bem explicado.</p>
<p><em>atualizado:</em><br />
<em>[29/03/2012 09:43] </em></p>
<p>The post <a href="https://thiagosantos.com/blog/306/php/magento-login-automatico/">Magento login automático</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/306/php/magento-login-automatico/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Adicionando campos customizados ao Customer no Magento</title>
		<link>https://thiagosantos.com/blog/325/php/adicionando-campos-customizados-ao-customer-no-magento/</link>
					<comments>https://thiagosantos.com/blog/325/php/adicionando-campos-customizados-ao-customer-no-magento/#comments</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Thu, 22 Dec 2011 14:17:41 +0000</pubDate>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[campos customizados]]></category>
		<category><![CDATA[campos magento]]></category>
		<category><![CDATA[customer]]></category>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=325</guid>

					<description><![CDATA[<p>Adicionar um novo atributo(attribute) customizado(custom) para o cliente(custormer) no Magento nunca foi tão fácil, mas tenho que admitir que apanhei um pouco pra chegar nesse resultado final.</p>
<p>Basicamente o gostaria de fazer era adicionar um campo customizado ao customer do Magento e exibi-lo tanto no admin, quanto na página de registro e na página de informações do usuário o "Minha conta" (my account).</p>
<p>No exemplo que fiz aqui adicionei um campo customizado chamado CPF e o defini como obrigatório. A primeira parte desse código adiciona o atributo "cpf" ao cliente, ou seja cliente vai ter um atributo a mais. Além de nome, sobrenome ... e outras diversas informações, vai ter também o CPF.</p>
<p>The post <a href="https://thiagosantos.com/blog/325/php/adicionando-campos-customizados-ao-customer-no-magento/">Adicionando campos customizados ao Customer no Magento</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Adicionar um novo atributo(attribute) customizado(custom) para o cliente(custormer) no Magento nunca foi tão fácil, mas tenho que admitir que apanhei um pouco pra chegar nesse resultado final.</p>
<p>Basicamente o gostaria de fazer era adicionar um campo customizado ao customer do Magento e exibi-lo tanto no admin, quanto na página de registro e na página de informações do usuário o &#8220;Minha conta&#8221; (my account).</p>
<p>No exemplo que fiz aqui adicionei um campo customizado chamado CPF e o defini como obrigatório. A primeira parte desse código adiciona o atributo &#8220;cpf&#8221; ao cliente, ou seja cliente vai ter um atributo a mais. Além de nome, sobrenome &#8230; e outras diversas informações, vai ter também o CPF.</p>
<p><span id="more-325"></span></p>
<pre lang="php">$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup-&gt;removeAttribute('customer', "cpf" );

$setup-&gt;addAttribute('customer', 'cpf', array(
            'label'           =&gt; 'CPF',
            'type'            =&gt; 'varchar',
            'input'           =&gt; 'text',
            'visible'   =&gt; true,
            'required'  =&gt; true,
            'position'  =&gt; 69,
            )
      );</pre>
<p>A segunda parte define em quais formulários o atributo CPF deve aparecer. No meu caso é um campo importante por tanto coloquei-o disponível nos campos em &#8220;editar conta&#8221; ( em minha conta), criar conta (criar conta básico), informações da conta em cliente e na página de criar conta na página de checkout.</p>
<pre lang="php">$customerattribute = Mage::getModel('customer/attribute')-&gt;loadByCode('customer','cpf');
$forms             = array(
                           'customer_account_edit',
                           'customer_account_create',
                           'adminhtml_customer',
                           'checkout_register'
                          );
$customerattribute-&gt;setData('used_in_forms',$forms);
$customerattribute-&gt;save();</pre>
<p>O código acima adiciona automaticamente o campo CPF no formulário da informações da conta para o cliente(customer) no admin do Magento, já nos outros formulários os campos devem ser definidos manualmente lá nos .phtml que lhes cabe.</p>
<p>Vou começar colocando o campo CPF na página de registro, aquela básica que normalmente pede nome, sobrenome, email e senha. Nessa página vou adicionar esse novo campo. Trabalhando com o <strong>customer</strong> é de se esperar que encontraremos os arquivos que queremos editar dentro da pasta &#8220;../template/customer/&#8221; dentro do seu tema, se por acaso o seu tema não tiver essa pasta copia a do &#8220;./frontend/base/default/template/customer/&#8221; para a pasta template do seu do seu tema.</p>
<p>O primeiro arquivo que vou editar é o register.phtml que você encontra em,<strong>./app/design/frontend/default/&lt;seu_tema&gt;/template/customer/form/register.phtml</strong>, ou em <strong>./app/design/frontend/default/&lt;seu_tema&gt;/template/<span style="color: #0000ff;">persistent</span>/customer/form/register.phtml</strong>, logo abaixo do &lt;li&gt; que define o espaço do do email coloque</p>
<pre>&lt;li&gt;
&lt;label class="required" for="cpf"&gt;&lt;em&gt;*&lt;/em&gt;
&lt;?php echo $this-&gt;__('CPF') ?&gt;
&lt;/label&gt;
&lt;div class="input-box"&gt;
&lt;input id="cpf" class="input-text required-entry"
title="&lt;?php echo $this-&gt;__('CPF') ?&gt;" type="text" name="cpf"
value="&lt;?php echo $this-&gt;htmlEscape($this-&gt;getFormData()-&gt;getCpf()) ?&gt;" /&gt;
&lt;/div&gt;
&lt;/li&gt;</pre>
<p>Pra ver esse novo campo, atualize o cache do seu Magento e entre no URL referente a sua instalação, como segue o exemplo: <span style="color: #00ccff;">http://exemplo.org.br/customer/account/create/<span style="color: #000000;">,</span> <span style="color: #000000;">e veja o seu novo campo lá.</span></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<figure id="attachment_367" aria-describedby="caption-attachment-367" style="width: 911px" class="wp-caption alignleft"><a href="http://thiagosantos.com/blog/325/php/adicionando-campos-customizados-ao-customer-no-magento/attachment/create_account_magento/" rel="attachment wp-att-367"><img loading="lazy" decoding="async" class="size-full wp-image-367" title="Campo CPF no Magento na página criar conta/account create, Custom Attribute" src="http://thiagosantos.com/blog/wp-content/uploads//2011/12/create_account_magento.png" alt="Campo CPF no Magento na página criar conta/account create, Custom Attribute" width="911" height="265" srcset="https://thiagosantos.com/blog/wp-content/uploads/2011/12/create_account_magento.png 911w, https://thiagosantos.com/blog/wp-content/uploads/2011/12/create_account_magento-300x87.png 300w, https://thiagosantos.com/blog/wp-content/uploads/2011/12/create_account_magento-500x145.png 500w" sizes="(max-width: 911px) 100vw, 911px" /></a><figcaption id="caption-attachment-367" class="wp-caption-text">Campo CPF no Magento na página criar conta/account create, atributo customizado.</figcaption></figure>
<p>&nbsp;</p>
<p>Para disponibilizar esse campo para o seu cliente de forma que ele possa editar o passo a passo é semelhante, mas o arquivo é o edit.phtml. Encontrado em <strong>./app/design/frontend/default/&lt;seu_tema&gt;/template/customer/form/edit.phtml.</strong> Novamente logo abaixo o &lt;li&gt; do email coloque o código abaixo</p>
<pre>&lt;li&gt;
&lt;label for="cpf" class="required"&gt;&lt;em&gt;*&lt;/em&gt;
&lt;?php echo $this-&gt;__('CPF') ?&gt;
&lt;/label&gt;
&lt;div class="input-box"&gt;
&lt;input type="text" name="cpf" id="cpf"
value="&lt;?php echo $this-&gt;htmlEscape($this-&gt;getCustomer()-&gt;getCpf()) ?&gt;"
 title="&lt;?php echo $this-&gt;__('CPF') ?&gt;" class="input-text required-entry" /&gt;
&lt;/div&gt;
&lt;/li&gt;</pre>
<p>Deve ficar mais ou menos assim</p>
<figure id="attachment_360" aria-describedby="caption-attachment-360" style="width: 697px" class="wp-caption alignleft"><a href="http://thiagosantos.com/blog/325/php/adicionando-campos-customizados-ao-customer-no-magento/attachment/edit_account_information_magento/" rel="attachment wp-att-360"><img loading="lazy" decoding="async" class="size-full wp-image-360" title="Campo CPF no Magento, Custom Attribute" src="http://thiagosantos.com/blog/wp-content/uploads//2011/12/edit_account_information_magento.png" alt="Novo campo de CPF Magento" width="697" height="264" srcset="https://thiagosantos.com/blog/wp-content/uploads/2011/12/edit_account_information_magento.png 697w, https://thiagosantos.com/blog/wp-content/uploads/2011/12/edit_account_information_magento-300x113.png 300w, https://thiagosantos.com/blog/wp-content/uploads/2011/12/edit_account_information_magento-500x189.png 500w" sizes="(max-width: 697px) 100vw, 697px" /></a><figcaption id="caption-attachment-360" class="wp-caption-text">Campo de CPF Magento, usando o passo a passo a cima.</figcaption></figure>
<p>Nesse ponto já disponibilizei o campo obrigatório no registro e para editar em informações da conta na sessão minha conta do cliente.</p>
<p>Até o próximo post, e que leve menos tempo do que esse!<br />
:)</p>
<p>Referencia:</p>
<p><a href="http://www.blog.jpk.in/2011/08/05/magento-add-custom-field-to-customer-account-form-in-admin-from-version-1-5/">http://www.blog.jpk.in/2011/08/05/magento-add-custom-field-to-customer-account-form-in-admin-from-version-1-5/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://thiagosantos.com/blog/325/php/adicionando-campos-customizados-ao-customer-no-magento/">Adicionando campos customizados ao Customer no Magento</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/325/php/adicionando-campos-customizados-ao-customer-no-magento/feed/</wfw:commentRss>
			<slash:comments>27</slash:comments>
		
		
			</item>
		<item>
		<title>Resetando a senha do ADMIN no Magento</title>
		<link>https://thiagosantos.com/blog/310/php/resetando-a-senha-do-admin-no-magento/</link>
					<comments>https://thiagosantos.com/blog/310/php/resetando-a-senha-do-admin-no-magento/#respond</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Tue, 01 Nov 2011 00:04:10 +0000</pubDate>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[admin reset password]]></category>
		<category><![CDATA[magento administrador senha]]></category>
		<category><![CDATA[resetando a senha admin magento]]></category>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=310</guid>

					<description><![CDATA[<p>Começo esse post declarando que o conhecimento aqui divulgado é fruto do meu esquecimento da senha do admin da minha instalação local do Magento. Esse passo a passo serve não só para mudar a senha do admin como a de qualquer outro usuário administrador. Nas versões mais novas do Magento é possível determinar um nome [&#8230;]</p>
<p>The post <a href="https://thiagosantos.com/blog/310/php/resetando-a-senha-do-admin-no-magento/">Resetando a senha do ADMIN no Magento</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><img loading="lazy" decoding="async" class="alignleft size-full wp-image-319" title="Captura de tela em 2011-10-31 22:48:10" src="http://thiagosantos.com/blog/wp-content/uploads//2011/10/Captura-de-tela-em-2011-10-31-224810.png" alt="" width="600" height="256" srcset="https://thiagosantos.com/blog/wp-content/uploads/2011/10/Captura-de-tela-em-2011-10-31-224810.png 600w, https://thiagosantos.com/blog/wp-content/uploads/2011/10/Captura-de-tela-em-2011-10-31-224810-300x128.png 300w, https://thiagosantos.com/blog/wp-content/uploads/2011/10/Captura-de-tela-em-2011-10-31-224810-500x213.png 500w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;">Começo esse post declarando que o conhecimento aqui divulgado é fruto do meu esquecimento da senha do admin da minha instalação local do Magento.</p>
<p style="text-align: justify;">Esse passo a passo serve não só para mudar a senha do admin como a de qualquer outro usuário administrador. Nas versões mais novas do Magento é possível determinar um nome de usuário para representar o admin, ou seja, meu usuário administrador pode ser <em>thiagosantos</em>. Por tanto esteje atendo ao seu nome do usuário administrador! Para esse post vou admitir que o meu usuário administrador é o <em>admin</em>.</p>
<pre lang="mysql">UPDATE xxx_admin_user SET password=CONCAT(MD5('HHsenha'), ':HH')
WHERE username='admin';</pre>
<p style="text-align: justify;"><span id="more-310"></span>Troque xxx pelo prefixo das suas tabelas do Magento ( no meu caso era mag_ ) e troque os dois HH por qualquer coisa que queira, e a senha troque pela senha desejada.</p>
<p style="text-align: justify;">Basicamente é isso, mas caso você não saiba qual é o nome de usuário do administrador da sua instalação do Magento faça a seguinte consulta:</p>
<pre lang="mysql">SELECT user_id, username, password  FROM xxx_admin_user ;</pre>
<p style="text-align: justify;">Essa consulta retorna todos os usuários administradores, normalmente o administrador tem o ID igual a 1. Já que é o primeiro a ser criado durante a instalação.</p>
<p style="text-align: justify;">referências:<br />
<a href="http://www.magentocommerce.com/wiki/recover/resetting-admin-password" target="_blank">http://www.magentocommerce.com/wiki/recover/resetting-admin-password</a></p>
<p>The post <a href="https://thiagosantos.com/blog/310/php/resetando-a-senha-do-admin-no-magento/">Resetando a senha do ADMIN no Magento</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/310/php/resetando-a-senha-do-admin-no-magento/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Magento &#8211; coleção de produtos / catalog/product_collection</title>
		<link>https://thiagosantos.com/blog/238/php/magento-colecao-de-produtos-catalogproduct_collection/</link>
					<comments>https://thiagosantos.com/blog/238/php/magento-colecao-de-produtos-catalogproduct_collection/#comments</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Fri, 07 Oct 2011 14:30:15 +0000</pubDate>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[addAtributeToFilter]]></category>
		<category><![CDATA[addAttributeToSelect]]></category>
		<category><![CDATA[addAttributeToSort]]></category>
		<category><![CDATA[catalog/product_collection]]></category>
		<category><![CDATA[magento product collection]]></category>
		<category><![CDATA[retornar produtos]]></category>
		<guid isPermaLink="false">http://thiagosantos.com/blog/?p=238</guid>

					<description><![CDATA[<p>Em casos bem comuns trabalhando com ecommerce temos a necessidade em alguns momentos de ter em mãos uma lista de certos produtos. Sejam esses produtos de uma certa categoria, ou tageados com certas palavras chaves ou dentro de uma faixa de valor.</p>
<p>O Magento trata essa lista de produtos como uma coleção de produtos, que possui um modelo próprio para tratar isso, criando uma interface simpática ao desenvolvedor para criar complexas consultas SQL. Há duas formas de acessar essa interface do "Product Collection" usando o modelo do catalog/product ou acessando diretamente o recurso do modelo , resource model, o catalog/product_collection. Se você der uma olhada na classe Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection, encontrado pelo caminho core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php, é possível ver todos os métodos disponíveis e como eles são implementados.</p>
<p>The post <a href="https://thiagosantos.com/blog/238/php/magento-colecao-de-produtos-catalogproduct_collection/">Magento &#8211; coleção de produtos / catalog/product_collection</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Em casos bem comuns trabalhando com ecommerce temos a necessidade em alguns momentos de ter em mãos uma lista de certos produtos. Sejam esses produtos de uma certa categoria, ou tageados com certas palavras chaves ou dentro de uma faixa de valor.</p>
<p style="text-align: justify;">O Magento trata essa lista de produtos como uma coleção de produtos, que possui um modelo próprio para tratar isso, criando uma interface simpática ao desenvolvedor para criar complexas consultas SQL. Há duas formas de acessar essa interface do &#8220;Product Collection&#8221; usando o modelo do <em>catalog/produc</em>t ou acessando diretamente o recurso do modelo , resource model, o <em>catalog/product_collection</em>. Se você der uma olhada na classe Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection, encontrado pelo caminho core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php, é possível ver todos os métodos disponíveis e como eles são implementados.<br />
<span id="more-238"></span><br />
<strong><br />
Primeira Forma</strong></p>
<pre lang="php">$produtos = Mage::getModel('catalog/product');
$colecaoProdutos = $produtos-&gt;getCollection()
                    -&gt;addAttributeToSelect('*')
                    -&gt;addAttributeToFilter(
                                     'type_id',
                                     array('eq' =&gt; 'customproduct')
                                     );     
		    -&gt;addAttributeToSort('price','asc')
                    -&gt;load();</pre>
<p><strong>Segunda Forma</strong></p>
<pre lang="php">$colecaoProdutos = Mage::getResourceModel('catalog/product_collection')
                    -&gt;addAttributeToSelect('*')
		    -&gt;addAttributeToSort('price','asc');</pre>
<p style="text-align: justify;">Como no dia a dia eu utilizo a segunda forma nos meus exemplos vou fazer o mesmo.</p>
<h1 style="text-align: justify;">Métodos</h1>
<p style="text-align: justify;">Há três metódos que uso com grande frequência são o <a href="#addAttributeToSelect">addAttributeToSelect</a>, <a href="#addAttributeToFilter">addAttributeToFilter</a> e <a href="#addAttributeToSort">addAttributeToSort</a>. Abaixo uma breve referencia sobre esses métodos com alguns exemplos:</p>
<ul>
<li><strong><a name="addAttributeToSelect"></a>addAttributeToSelect()</strong></li>
</ul>
<p style="text-align: justify;">Com o addAttributeToSelect você define os nomes dos atributos/campos que serão retornados do banco, como uma query SQL. Para retornar todos os atributos/campos do produto use &#8220;*&#8221;, caso queira apenas algumas informações passe campo a campo como nos exemplos listados abaixo.</p>
<div>
<pre lang="php">//Todos os campos
$colecaoProdutos = Mage::getResourceModel('catalog/product_collection')
                   -&gt;addAttributeToSelect('*');</pre>
<pre lang="php">//Apenas alguns campos
$colecaoProdutos = Mage::getResourceModel('catalog/product_collection')
                   -&gt;addAttributeToSelect('name')
                   -&gt;addAttributeToSelect('price')
                   -&gt;addAttributeToSelect('description')
                   -&gt;addAttributeToSelect('small_image');</pre>
<pre lang="php">//Alguns campos com uma só chamada
$colecaoProdutos = Mage::getResourceModel('catalog/product_collection')
                   -&gt;addAttributeToSelect(
                         array("name", "price","small_image", "description")
                         );</pre>
</div>
<div style="text-align: justify;">Para mais informações sobre esse método de uma olhada na <a title="Magento Doc" href="http://docs.magentocommerce.com/Mage_Eav/Mage_Eav_Model_Entity_Collection_Abstract.html#addAttributeToSelect" target="_blank">Documentação do Magento</a> .</div>
<ul>
<li><strong><a name="addAttributeToFilter"></a>addAttributeToFilter()</strong></li>
</ul>
<p style="text-align: justify;">O addAttributeToFilter é equivalente ao WHERE de uma query de consulta SQL. Da mesma forma como você pode adicionar operadores de condição em uma query assim se faz com esse método, passando como paramêtro um array com o nome do campo e a condição como segue os exemplos abaixo.</p>
<pre lang="php">//Great than - para valores maiores que 99.99

$colecaoProdutos-&gt;addAttributeToFilter('price', array('gt' =&gt; 99.99));</pre>
<pre lang="php">//Less than or Equals to - para valores maiores ou igual a 99.99

$colecaoProdutos-&gt;addAttributeToFilter('price', array('lteq' =&gt; 99.99));</pre>
<p style="text-align: justify;">Há dois campos do produto, <em>news_from_date</em> e <em>news_to_date</em>, que definem de e até quando ele deve ser considerado novo. Uso também com muita frequência esses dois campos pra selecionar esses novos produtos e colocar um diferencial nele pra chamar a atenção, seja uma borda ou ima imagem com &#8220;Novo&#8221; sobre a imagem do produto. Segue o código</p>
<pre lang="php">//Coleção de produtos novos
$colecaoProdutos-&gt;addAttributeToFilter('news_from_date', array('date' =&gt; true, 'to' =&gt; $todayDate))
                -&gt;addAttributeToFilter('news_to_date', array('or'=&gt;
                                        array(0 =&gt; array('date' =&gt; true, 'from' =&gt; $todayDate),
                                              1 =&gt; array('is' =&gt; new Zend_Db_Expr('null')))
                                             ), 'left');

//Assim como visto em /app/code/core/Mage/Catalog/Block/Product/New.php</pre>
<p style="text-align: justify;">Se quiser saber mais sobre filtros e outros operadores de condição deem uma olhada no post do Adam Moss que aborda com exemplos rápidos e sem baboseira no link <a href="http://www.e-commercewebdesign.co.uk/blog/magento-tips/magento-sql-queries-with-addattributetofilter.php">http://www.e-commercewebdesign.co.uk/blog/magento-tips/magento-sql-queries-with-addattributetofilter.php</a> .</p>
<ul>
<li><strong><a name="addAttributeToSort"></a>addAttributeToSort()</strong></li>
</ul>
<div style="text-align: justify;">Se você estiver familiarizado com SQL sabe que é possível ordenar uma consulta com o ORDER BY nome_campo de forma ASCENDENTE(menor pro maior) ou DESCENTENDE (maior pro menor). Sendo assim o mesmo se aplica com o método <em>addAtributeToSort()</em>. No último caso do <em>addAttributeToFilter()</em> faço uma consulta por produtos marcados como novos de uma data até a outra, só que essa condição vai me trazer todos os produtos não necessariamente ordenados do mais novo para o mais velhos, e também se quissemos que a coleção de produtos fique ordenados dos mais velhos para os mais novos, ou ordenados por preço?</div>
<pre lang="php">//Mais velhos para mais novos
$colecaoProdutos-&gt;addAttributeToFilter('news_from_date', array('date' =&gt; true, 'to' =&gt; $todayDate))
                -&gt;addAttributeToFilter('news_to_date', array('or'=&gt;
                                        array(0 =&gt; array('date' =&gt; true, 'from' =&gt; $todayDate),
                                              1 =&gt; array('is' =&gt; new Zend_Db_Expr('null')))
                                             ), 'left')
                 -&gt;addAttributeToSort('news_from_date','desc');</pre>
<pre lang="php">//Mais baratos para os mais caros
$colecaoProdutos-&gt;addAttributeToFilter('news_from_date', array('date' =&gt; true, 'to' =&gt; $todayDate))
                -&gt;addAttributeToFilter('news_to_date', array('or'=&gt;
                                        array(0 =&gt; array('date' =&gt; true, 'from' =&gt; $todayDate),
                                              1 =&gt; array('is' =&gt; new Zend_Db_Expr('null')))
                                             ), 'left')
                 -&gt;addAttributeToSort('price','asc');</pre>
<p>&nbsp;</p>
<p>Só espero ter sido bem claro e objetivo nesse post. Com esses exemplos já pode fazer uma página de categoria, ou mesmo uma página de promoção para só listar produtos mais novos ou mais antigos com promoção.</p>
<p>Material de referência:<br />
<a href="http://www.e-commercewebdesign.co.uk/blog/magento-tips/magento-sql-queries-with-addattributetofilter.php"> http://www.e-commercewebdesign.co.uk/blog/magento-tips/magento-sql-queries-with-addattributetofilter.php</a><br />
<a href="http://docs.magentocommerce.com/Mage_Eav/Mage_Eav_Model_Entity_Collection_Abstract.html"> http://docs.magentocommerce.com/Mage_Eav/Mage_Eav_Model_Entity_Collection_Abstract.html</a><br />
<a href="http://www.exploremagento.com/magento/some-custom-blocks-to-help-you-show-products.php"> http://www.exploremagento.com/magento/some-custom-blocks-to-help-you-show-products.php</a></p>
<p>The post <a href="https://thiagosantos.com/blog/238/php/magento-colecao-de-produtos-catalogproduct_collection/">Magento &#8211; coleção de produtos / catalog/product_collection</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/238/php/magento-colecao-de-produtos-catalogproduct_collection/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Magento: alterar a quantidade de digitos do número do pedido.</title>
		<link>https://thiagosantos.com/blog/114/php/magento-alterar-a-quantidade-de-digitos-do-numero-do-pedido/</link>
					<comments>https://thiagosantos.com/blog/114/php/magento-alterar-a-quantidade-de-digitos-do-numero-do-pedido/#comments</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Wed, 11 Aug 2010 14:15:39 +0000</pubDate>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[número do pedido]]></category>
		<category><![CDATA[order id]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[Shortening Increment ID length for Orders]]></category>
		<guid isPermaLink="false">http://www.thiagosantos.com/blog/?p=114</guid>

					<description><![CDATA[<p>O Magento originalmente vem com o número do pedido constituido de nove digitos, 100000001, mas as vezes as nove digitos são demais e temos que limitar o número do pedido para menos digitos, no meu caso 7.<br />
Procurei de cima a baixo na configuração do sistema do Magento e não achei uma opção que limita-se a quantidade de digitos.</p>
<p>The post <a href="https://thiagosantos.com/blog/114/php/magento-alterar-a-quantidade-de-digitos-do-numero-do-pedido/">Magento: alterar a quantidade de digitos do número do pedido.</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">O Magento originalmente vem com o número do pedido constituido de nove digitos, 100000001, mas as vezes as nove digitos são demais e temos que limitar o número do pedido para menos digitos, no meu caso 7.<br />
Procurei de cima a baixo na configuração do sistema do Magento e não achei uma opção que limitasse a quantidade de digitos.</p>
<p>A solução?<br />
Fazer na mão!<br />
E olha que foi mais rápido do que o tempo gasto procurando, para essa tarefa levei 2 passos, muita atenção, usei phpMyAdmin.</p>
<p><span id="more-114"></span></p>
<p>observações: Uma vez que na instalação do Magento é possível adicionar um prefixo aos nomes das tabelas, e eu usei, escolhi o xxx. Tirando o prefixo o nome da tabela continua igual, não tem muito erro.</p>
<p style="text-align: justify;"><strong><span style="color: #ff0000;"><span style="color: #000000;">1</span> &#8211; Procure pela tabela xxx_eav_entity_store</span></strong><br />
Visualize o seu conteúdo, nessa tabela fica armazenado o número do pedido da última compra ,o prefixo do número do pedido e o id da sua loja.<br />
Cada registro dessa tabela é relacionado com cada loja que vc tenha na mesma instalação do Magento.<br />
# Altere o incremente_last_id para um valor com sete digitos:<br />
Antes         Depois<br />
100000005    1000005</p>
<p>obs: O entity_type_id dessa tabela é 5, então vamos a tabela xxx_eav_entity_type</p>
<p><a href="http://www.thiagosantos.com/blog/wp-content/2010/08/xxx_eav_entity_store.png"><br />
</a></p>
<figure id="attachment_116" aria-describedby="caption-attachment-116" style="width: 500px" class="wp-caption aligncenter"><a href="http://www.thiagosantos.com/blog/wp-content/2010/08/xxx_eav_entity_store.png" target="_blank"><img loading="lazy" decoding="async" class="size-full wp-image-116" title="xxx_eav_entity_store" src="http://www.thiagosantos.com/blog/wp-content/2010/08/xxx_eav_entity_store.png" alt="xxx_eav_entity_store" width="500" height="222" srcset="https://thiagosantos.com/blog/wp-content/uploads/2010/08/xxx_eav_entity_store.png 759w, https://thiagosantos.com/blog/wp-content/uploads/2010/08/xxx_eav_entity_store-300x133.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-116" class="wp-caption-text">Clique na imagem para ver melhor</figcaption></figure>
<p><strong>2 &#8211; <span style="color: #ff0000;">Procure pela tabela xxx_eav_entity_type</span></strong><br />
Visualize o seu conteúdo, procure pelo entity_type_id igual a 5. Cujo entity_type_code é o order.<br />
Na coluna increment_pad_length o valor deve ser 8, altere para 6.</p>
<figure id="attachment_115" aria-describedby="caption-attachment-115" style="width: 499px" class="wp-caption aligncenter"><a href="http://www.thiagosantos.com/blog/wp-content/2010/08/xxx_eav_entity_type.png"><img loading="lazy" decoding="async" class="size-full wp-image-115" title="xxx_eav_entity_type" src="http://www.thiagosantos.com/blog/wp-content/2010/08/xxx_eav_entity_type.png" alt="xxx_eav_entity_type" width="499" height="183" srcset="https://thiagosantos.com/blog/wp-content/uploads/2010/08/xxx_eav_entity_type.png 1008w, https://thiagosantos.com/blog/wp-content/uploads/2010/08/xxx_eav_entity_type-300x110.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></a><figcaption id="caption-attachment-115" class="wp-caption-text">Clique na imagem para ver melhor</figcaption></figure>
<p>Ah! mas porquê que não altero o valor de 8 para 7, já que eu quero 7 digitos?<br />
Ora, na coluna `xxx_eav_entity_store`.`increment_prefix` já tem um valor que vai ser adicionado ao inicio do numero, somando ao 6 o 1, sendo 7 digitos!</p>
<p>Acho que é isso, os printscreens falam por mim caso eu tenha esquecido de alguma coisa tem sempre a parte de comentários!</p>
<p>Se por acaso você tenha se perdido e não tenha encontrado as tabelas e as colunas, ou não sabe o que está fazendo NÃO MEXA.</p>
<p>Abraço,</p>
<p>The post <a href="https://thiagosantos.com/blog/114/php/magento-alterar-a-quantidade-de-digitos-do-numero-do-pedido/">Magento: alterar a quantidade de digitos do número do pedido.</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/114/php/magento-alterar-a-quantidade-de-digitos-do-numero-do-pedido/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
	</channel>
</rss>
