Problemas com a quantidade de itens no carrinho

Trabalhando junto com um cliente fizemos a atualização da versão do seu Magento da 1.7 para a 1.9. Fora um ou outro pequeno contratempo podemos dizer que a atualização correu de forma limpa. No entanto, eis que nos deparamos com um problema, que até então eu nunca tinha visto, a quantidade de itens no carrinho de nenhum produto era atualizado!

Toda a atualização correu bem e apesar de todos os testes que fizemos essa passou em branco. Acontece que desde a versão 1.8 do Magento ele trás um mecanismo de proteção contra CSRF em alguns formulários. Logo se você tem o Magento e o seu tema utiliza uma página de carrinho própria ( cart.phtml ) e você está enfrentando o mesmo problema com a quantidade de itens que não são atualizadas no carrinho você pode seguir os seguintes passos: Continue lendo

Diferenças entre aspas duplas (“) e simples (‘) no PHP

Nós desenvolvedores em geral trabalhamos muito com string usando aspas, na verdade o dia todo trabalhamos fazendo conversões, concatenação, trabalhando com strings vindas do banco de dados relacional, de um XML, de diversas fontes de dados. Na maioria das linguagens " e ' tem um comportamento similar, determinam o inicio e o fim de uma string. Resolvi então escrever esse post para não me deixar esquecer das diferenças entre aspas no PHP.

No PHP as aspas duplas (") e a aspas simples (') assim como outras linguagens também definem uma string, mas há diferenças entre elas. As strings de formadas por aspas duplas são dinâmicas, ou seja o seu conteúdo é alterado conforme o valor de uma variável dentro do contexto, caso tenha uma variável é claro. Enquanto as aspas simples são estáticas e não fornecem mecanismos para a variação do seu conteúdo mesmo que tenha uma variável definida nela. Exemplos. Continue lendo

Alterar a quantidade minima de compra de todos os produtos

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 seja 1, 5 ou mesmo N ? Há duas formas de controlar essa quantidade minima. Continue lendo

Parte 1 – “echo print var_dump print_r”

Para inicio de conversa, vamos ao básico: "cuspir informação na tela". Nesse post serão mostrados com exemplos as principais "funções" que utilizo para a impressão de informação na tela, e qual delas podem ser úteis no debug.

echo e print

Aos apressados, rápido exemplo de utilização.

  1. <?php
  2.  
  3. echo "Olá Thiago";
  4. echo 'Olá Thiago';
  5. echo ("Olá Thiago");
  6. echo "Olá ", "Thiago";
  7. echo ("Olá", "Thiago");
  8. print "Olá Thiago";
  9. print ("Olá Thiago");
  10. //a saída para os "echos" e os print serão
  11. //Olá Thiago;
  12.  
  13. ?>

O uso do echo tem um comportamento diferenciado e requer certa atenção. O echo não é uma função do PHP e sim um construtor da linguagem. Por conta dessa característica o echo dispensa o uso de parênteses. Logo é possível usá-lo passando uma string diretamente (linhas 3, 4 e 5). Para saber mais sobre os construtores da linguagem PHP de uma olhada nesse link.

Continue lendo

identificador_cadeia_ou_numero_esperado

Javascript – IE – Identificador, cadeia ou número esperado

Se você estiver trabalhando com Javascript e se deparar com essa mensagem de erro enquanto debuga o seu código saiba que a solução é simples!

Quando você faz uma lista baseado em um objeto literal é comum esquecermos uma virgula no final, como segue o exemplo abaixo, os navegadores de verdade ignoram o último elemento enquanto o IE 7 fica aguarda por uma outra propriedade que não existe, por isso ocorre a mensagem de erro. Reparem ao final do valor 4000 da propriedade auto, há uma virgula!

Para resolver isso basta tirar a virgula depois da última propriedade.

  1. jQuery(".class_nivoslider_videos").simplecarousel({
  2. width:296,
  3. height:194,
  4. visible: 1,
  5. auto: 4000,
  6. });

 

adicionar_produtos_magento

Adicionar um ou multiplos produtos com apenas um link no Magento

Cria-se uma forma diante da necessidade, ou simplesmente descobre que essa forma já existe. Diferente do que há pela internet aqui eu compartilho uma forma realmente muito fácil de adicionar diversos produtos simples ao mesmo tempo via query string.

Usando o metodo ADD do próprio checkout/cart, passando os IDs do produto. Criei abaixo uma lista com quatro produtos fictícios apenas para mostrar com exemplos como a coisa funciona.

ID - 5584 - DVD UFC 2093
ID - 5506 - CD Thiago Santos Sertanejo Caipira Ao Vivo
ID - 5376 - Livro Minha Praia é o Shell
ID - 5247 - e-Book Alo alo Marcianos! Continue lendo

mysql_innodb_error_pthread_create_returned_11

MySQL fora do ar com InnoDB: Error: pthread_create returned 11

Hoje pela manhã recebi algumas notificações, do Magento, dizendo que ele não conseguia se conectar ao MySQL. Como é de praxe, e sempre que acontece isso eu reinicio o MySQL no MK01 e tudo volta ao normal.

Dessa vez, não foi assim. O MySQL estava falhando a cada tentativa minha de iniciar ele, o log abaixo, do arquivo /var/log/syslog, é o da primeira tentativa de reiniciar o MySQL:

Jun  4 09:48:29 mk01 mysqld: 130604  9:48:29 [Note] /usr/sbin/mysqld: Normal shutdown
Jun  4 09:48:29 mk01 mysqld:
Jun  4 09:48:29 mk01 mysqld: 130604  9:48:29 [Note] Event Scheduler: Purging the queue. 0 events
Jun  4 09:48:29 mk01 mysqld: 130604  9:48:29  InnoDB: Starting shutdown...
Jun  4 09:48:29 mk01 mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql Continue lendo

Workaround para o modulo do PedroTeixeira/Correios

Um amigo me relatou no dia de ontem (1/12/2012) que o retorno das informações do frete dos correios estavam retornando a mesma mensagem: Houve um erro inesperado, por favor entre em contato. Erro ao calcular o prazo, teste novamente mais tarde.(Cod. 99).

 

Mensagem de retorno dos Correios.

Continue lendo

PHP-CGI query string parameters vulnerabitily

Uma massa de emails que lotou o espaço em disco do HD de um dos servidores da empresa em qual trabalho foi o que motivou esse post. Na verdade o fim do espaço em disco me levou a encontrar um BUG no PHP-CGI 5.2.6 que levava a execução de código arbitrário a partir dos parâmetros de linha de comando. Ou seja com o comando

http://localhost/index.php?-s

Você obtém o conteúdo do código PHP. Isso é muito bizarro!

1. O que estava acontecendo?

Uma massa de emails de spam estavam sendo enviados como sendo da Fedex, identificamos esses emails e paramos o Postfix. No momento em que paramos, observamos a crescente fila de email e o decrescente espaço em disco.

Localizamos o foco da invasão, um dos sites que administramos estava com permissão na pasta e nos arquivos de usuário e grupo para o www-data. E o spammer havia criado um arquivo chamado pagenews.php e umas variações de w98089n.php (w[0-9]{1,8}n.php, mais ou menos isso).
Continue lendo