jan 26
Como dar desconto para a compra de dois ou mais produtos no Magento

Na página de administração, clique no menu “Promoções” e em “Regras de Preço do Carrinho de Compras“. Em seguida, clique no botão “Acrescentar Nova Regra”.

Na guia “Informação de Regra”:

  • Preencha os campos “Nome da Regra” e “Descrição”
  • Selecione o “Estado (status)” Ativo
  • Selecione os Websites para os quais essa regra se aplica
  • Selecione os Grupos de Clientes para os quais essa regra é válida

Clique na guia “Condições” e siga os passos abaixo:

  1. Clique no botão verde com um sinal de +, o botão Acrescentar.
  2. Escolha a opção “Combinação de Atributos do Produto“.
  3. Clique no botão verde com o sinal de + que apareceu abaixo de “If an item is Found in the cart ….
  4. Escolha o atributo SKU e clique nas reticências ()
  5. Digite o código do produto ou selecione-o clicando no primeiro ícone que apareceu ao lado da caixa de texto, trata-se do botão “abrir selecionador“. Após selecionar o produto, clique novamente no ícone “abrir selecionador” para que a caixa de seleção de produtos se feche.
  6. Para selecionar o outro produto, clique no último botão verde + (acrescentar) e repita os passos 2, 3, 4 e 5. Faça isso para quantos produtos você desejar.

Clique na guia “Ações”:

  • No campo “Aplicar, selecione a forma de cálculo de desconto
  • No campo “Valor de Desconto, digite o  valor que você deseja conceder de desconto. Lembrando que esse valor pode ser percentual ou absoluto, dependendo da opção que foi escolhida no campo “Aplicar”

Para gravar a regra, clique no botão “Gravar Regra” localizado no canto direito superior da página.

Pronto, sempre que todos os produtos selecionados forem comprados juntos, o Magento aplicará um desconto no total do pedido.

jan 12
Sistema de Pagamentos Online

O sistema de Pagamentos Online da Weblibre, LibrePag, é a melhor maneira de receber pagamentos em Lojas Virtuais. Com este sistema o lojista não precisa de intermediários e não paga comissão sobre o valor das transações.

Acesse o site do LibrePag, clique aqui.

Como funciona

Este tipo de sistema também é conhecido como Gateway de Pagamentos. Pois consiste em uma via única de integração entre a Loja Virtual e as operadoras de cartão de crédito e bancos.

O processo de pagamento é totalmente integrado ao mecanismo da Loja Virtual. Possuimos módulos de integração entre o sistema de e-commerce Magento e as operadoras de cartão de crédito Visa, Mastercard, Diners e American Express, o sistema Pagamento Fácil do banco Bradesco e boleto bancário dos bancos Itaú, Banco do Brasil, Caixa Econômica Federal, Bradesco, Unibanco, Real, Santander Banespa e HSBC.

Nosso Gateway está integrado ao sistema de controle de fraudes F-Control do grupo Buscapé (www.fcontrol.com.br).

Acesse o site do LibrePag, clique aqui.

Vantagens

Dentre as principais vantagens de se usar um Gateway ao invés de um intermediário de pagamento são:

  • Confirmação imediata do pagamento
  • Dinheiro direto na conta do estabelecimento
  • Completa integração com a loja virtual
  • Taxas negociadas diretamente com os bancos e operadoras de cartão de crédito*
  • Aceita cartões emitidos no exterior, desde que este recurso esteja liberado pela operadora
  • Parcelamento sem juros no cartão de crédito
  • Parcelamento com juros usando a taxa determinada pelo lojista
  • Atendimento rápido e especializado
  • Autonomia para aprovar ou reprovar vendas

* A taxa cobrada pelas operadoras de cartão de créditos gira em torna de 3,5% do valor da transação. Este valor não é pago à Weblibre, mas diretamente à operadora.

Temos a melhor taxa de serviço, consulte-nos.

Acesse o site do LibrePag, clique aqui.

Quem está usando

DBC Oxigênio

True Friends

Casa de Davi

Gospel Media Store

Rabo de Arraia

Via Paris Perfumaria

HN Brindes

Acesse o site do LibrePag, clique aqui.

jan 11
Magento: Como alterar a quantidade dos produtos via Excel
icon1 admin | icon2 Magento | icon4 11 01 2010| icon3Não há comentários »

Quando há a necessidade de corrigir o estoque de muitos produtos no catálogo, a forma mais ágil é fazer via Excel.

Para tal, siga os passos a baixo:

  • Exportar dados para um arquivo
    1. No Admin, vá em Sistema->Importar/Exportar -> Perfis
    2. Clique em “Export Product Stocks”
    3. No menu do lado esquerdo, clique na opção “Executar Perfil”
    4. Em seguida, clique no botão “Executar Perfil em Pop-up”
    5. O arquivo será exportado para o diretório var/export do Magento
    6. Via FTP, baixe este arquivo para o seu computador
    7. Abra-o no Excel e modifique os valores da coluna “QTY”
  • Importar arquivo para o banco de dados do Magento
    1. Ainda em Sistema->Importar/Exportar -> Perfis, clique em “Import Product Stocks”
    2. No menu da esquerda, clique na opção “Carregar Arquivo” ou então faça upload, via FTP, para a pasta var/import
    3. Clique na opção “Executar Perfil”, no menu da esquerda e selecione o arquivo do qual deseja importar os dados
    4. Fara finalizar, clique no botão “Executar Perfil em Pop-up”

Pronto, as quantidades dos produtos foram atualizadas no banco de dados. Confira no catálogo de produtos.

jan 11
Criar campo Rg no Magento

Primeiramente você deve abrir o arquivo:

app/design/frontend/default/seutema/customer/widget/taxvat.phtml

No início do arquivo insira o seguinte conteúdo:

<?php
   //Este bloco de script deve ser rodado apenas uma vez. Após a primeira execução, comente-o.
   //Ele é responsável pela criação dos campos referentes ao RG no banco de dados.
      $setup = new Mage_Eav_Model_Entity_Setup(’core_setup’);
   $setup->addAttribute(’customer’, ‘rg’, array(
    ’label’    => ‘Rg’,
    ’visible’  => true,
    ’required’ => false,
    ’position’ => 1,
   ));

   $setup->addAttribute(’quote’, ‘customer_rg’, array(’type’ => ’static’, ‘visible’ => false));
   $setup->addAttribute(’order’, ‘customer_rg’, array(’type’ => ‘varchar’, ‘visible’ => false));

   $setup->getConnection()->addColumn(
    $setup->getTable(’sales_flat_quote’),
    ’customer_rg’,
    ’varchar(255) NULL DEFAULT NULL AFTER `customer_taxvat`’
   );
  ?>

<?php
   $rg = $this->getRg();
   if (empty($rg)) {
    $rg = $this->getCustomer()->getRg();
   }
  ?>

Agora essa parte você deve inserir após o bloco <div class=”input box taxvat”>

<div>
   <label for=”<?php echo $this->getFieldId(’rg’)?>”>
    <?php echo $this->__(’RG / Insc. Estadual’) ?>
    <?php if ($this->isRequired()):?><span>*</span><?php endif ?>
   </label>
   <input type=”text” id=”<?php echo $this->getFieldId(’rg’)?>” name=”<?php echo $this->getFieldName(’rg’)?>” value=”<?php echo $this->htmlEscape($rg) ?>” <?php echo $this->getFieldParams() ?> />
  </div>

Pronto, o campo Rg vai aparecer ao lado do CPF/CNPJ.

jan 4
Portlet Lista de Aniversariantes – Liferay
icon1 lucas | icon2 Liferay | icon4 04 01 2010| icon3Não há comentários »

Para realizar a criação do portlet “Lista de Aniversários” primeiramente devemos ter o ambiente de criação de plugins SDK do liferay devidamente configurado.

Em ambiente Windows, podemos criar um portlet a partir de um exemplo, para tanto execute o programa “create.bat” localizado na pasta {diretorioSDK}/portlet/ , esse programa irá criar a estrutura básica de um portlet de Liferay.

Para começar a criação do nosso portlet, primeiramente precisamos editar o arquivo view.jsp que é a primeira classe a ser carregada quando o portlet é executado.

Nele iremos realizar todas as nossas modificações.

O portlet funciona basicamente da seguinte maneira:

> O usuário deve pertencer a organização pai para que possa ver a lista de aniversariantes

> A lista de aniversariantes deve conter apenas usuários que pertençam a comunidade pai.

> A listagem precisa ser ordenada por dia

O Algoritmo:

A seqüência de atividades que devemos fazer para implementar essa listagem é:

1) Recuperar o ID do usuário atual:

Para que possamos listar apenas para usuários pertencentes a comunidade pai, por exemplo.

2) Recuperar o ID das organizações a qual o usuário pertencem

Fazendo dessa maneira, se o usuário pertencer a organização pai, poderemos encontrá-la.

3) Recuperar o ID da organização pai

É a partir desse ID que recuperaremos todos os usuários que precisaremos para a listagem.

4) Recuperar os usuários pertencentes a Organização:

Recuperamos os usuários e já testamos se eles fazem aniversário no mês atual ou no próximo. Armazenamos em duas listas, uma com os aniversariantes do mês atual e outra com os aniversariantes do mês seguinte.

5) Ordenação da lista de usuários por dia do mês

6) Realizamos a listagem:

De ambos os meses, intercalando cores escuras e claras entre as linhas, o que facilita a leitura.

Trechos interessantes do Código:

Recuperar o userID pela classe renderRequest:



String remoteUserId = renderRequest.getRemoteUser();
User userId = UserServiceUtil.getUserById(Long.parseLong(remoteUserId));

Recuperar a lista de organizações a partir do id do usuário

organizations = OrganizationLocalServiceUtil.getUserOrganizations(userId.getUserId());

Recuperar a organização pai das organizações que o usuário participa:

for (int> i = 0; i < organizations.size(); i++) {
if (organizations != nul && organizations.size() != 0) {
Organization organization = (Organization) organizations.get(i);
if (organization.isRoot()){
orgID = organization.getOrganizationId()
}
}
}

Ordenar a lista de usuários pelo dia de aniversário

Collections.sort(mesAtual, new Comparator() {
public int compare(Object o1, Object o2) {
int ret = 0;
User d1 = (User) o1;
User d2 = (User) o2;
if(d1.getBirthday().getDate() < d2.getBirthday().getDate()) {
ret = -1;
}
else if (d1.getBirthday().getDate() > d2.getBirthday().getDate()) {
ret = 1;
}
else {
ret = d1.getFirstName().compareTo(d2.getFirstName());
}

return ret;
}
});

Recuperar um atributo personalizado do usuário:

str = (String[])mesSeguinte.get(i).getExpandoBridge().getAttribute("NomeAtributoPersonalizado");

É importante lembrar que por padrão esse atributo personalizado não fica habilitado para ser exibido.
Para alterar é necessário acessar a opção de permissões dos atributos personalizados presente na aba Usuários do Painel de Controle. Setar como visualização para os usuários.

jan 4
Liferay – Melhorias nos Portlets usando jQuery
icon1 lucas | icon2 Liferay | icon4 04 01 2010| icon3Não há comentários »

Uma modificação muito prática e que tem um efeito visual muito bonito é a utilização do jQuery para a listagem do portlet Categories Navigation.

Originalmente o portlet exibe as categorias em forma de Arvore, pois no Liferay é possível essa ramificação. Podemos criar uma relação de hierarquia entre as categorias.

O problema é que o portlet carrega todas as categorias, pais e filhas, ocupando muitas vezes um espaço desnecessário no portal.

Uma maneira simples de utilizar o jQuery para resolver esse problema é inserir os seguinte código na classe docroot/themes/classic/javascript/javascript.js:

jQuery("ul.treeview").treeview({
animated: "fast",
collapsed: true
});

isso fará que o jQuery interprete a tag já existente na formatação ul.treeview como palavra-chave para executar a sua ação.

Simples e funcional.

jan 4
Exibir um conteúdo de um portal maximizado no Liferay
icon1 lucas | icon2 Liferay | icon4 04 01 2010| icon3Não há comentários »

Quando desejamos maximizar um conteúdo em um portlet do Liferay, uma maneira bem simples é a utilização do método setWindowState(WindowState.MAXIMIZED) presente na classe PortletURL.

Ele pode ser utilizado sem muita dificuldade. Um exemplo prático:

Desejamos que o conteúdo listado no portlet Asset Publisher contenha um link para o conteúdo completo e esse conteúdo seja exibido maximizado na janela do portal.
Primeiramente necessitamos encontrar o momento no qual o Asset Publisher faz a listagem dos artigos para que possamos setar essa opção maximizada.

O Asset Publisher utiliza a classe {amb_extensao}/docroot/html/portlet/asset_publisher/display/table.jsp para exibir os conteúdos que serão listados.

Para modificar o modo como deve ser exibido o conteúdo de um link, encontre onde ele cria o link e insira a opção:

articleURL.setWindowState(WindowState.MAXIMIZED);

Dessa maneira o artigo será listado na forma maximizada.

Mais informações podem ser encontradas no forum da Liferay, como por exemplo no tópico abaixo:

http://www.liferay.com/web/guest/community/forums/-/message_boards/message/941261

jan 4
Remover item do menu do Liferay – Problema “minha Comunidade”
icon1 lucas | icon2 Liferay | icon4 04 01 2010| icon31 comentário »

Para modificar os itens do menu principal do portal Liferay (Menu Bem Vindo),  existem alguns meios, feitos de maneiras e em arquivos diferentes de acordo com a necessidade.

Uma modificação é a remoção do acesso as páginas pessoais do usuário, através do submenu “Meus Locais”.

Essa modificação é feita no arquivo {amb_extensao}/docroot/taglib/ui/my_places/page.jsp

Esse arquivo controla o que é exibido no Submenu “Meus Locais” e como não queremos que ele exiba as páginas pessoais, devemos modificá-lo da seguinte maneira:

Dentro do FOR que seleciona as comunidades que irão ser exibidas:


for (Group myPlace : myPlaces) {

Devemos inserir as seguintes variáveis:


//testa se é uma organização
boolean organizationCommunity = myPlace.isOrganization();
//testa se é uma comunidade
boolean regularCommunity = myPlace.isCommunity();
//testa se é uma se o usuário é administrados da comunidade
boolean userCommunity = myPlace.isUser();

Logo após, devemos inserir uma condição antes de testar se é uma comunidade ou uma organização,da seguinte maneira:


Organization organization = null;
// condição adicionada
if (!userCommunity) {
String publicAddPageHREF = null;
String privateAddPageHREF = null;

Dessa maneira somente lista essa comunidade pessoal se o usuário for administrador do sistema.

Para a finalidade que gostaríamos, essa modificação já basta, mas esse arquivo pode ser alterado em outros locais para ajustar melhor ao problema.

jan 4
Como arrumar BUG de permissões de download no Liferay
icon1 lucas | icon2 Liferay | icon4 04 01 2010| icon31 comentário »

Um BUG conhecido na versão 5.2.3 do Liferay acontece quando desejamos por algum motivo que os usuários não possuam páginas pessoais, uma das maneiras de realizar essa alteração é inserir as seguintes informações no arquivo portal-ext.properties:


layout.user.private.layouts.enabled=false
layout.user.public.layouts.enabled=false

Essa modificação realmente retira as opções dos usuários comuns de terem as páginas pessoais, seu efeito colateral é um problema que ocorre quando o usuário, não administrador do sistema, tenta realizar o download de um arquivo que ele tenha permissão. O usuário é automaticamente redirecionado a página inicial e o download não é realizado. A mesma ação volta a funcionar se eliminarmos as linhas que alteramos no arquivo portal-ext.properties.

Esse bug ainda não foi corrigido e uma alternativa caso o que queira é apenas que o usuário não consiga, por meio do portal, acessar as suas páginas pessoais está descrito no tutorial que fizemos, clique aqui para conferir.