Allexb10 Posted November 21, 2013 Share Posted November 21, 2013 Olá, Estou desenvolvendo uma loja para atacado. E para que funcione corretamente(sem custos), tive que alterar inúmeras coisas. Uma das alterações foi: Esta loja terá apenas como forma de pagamento, o boleto bancário. Porém tem alguns requisitos: * mínimo para compras de R$1.000,00 reais. * à cvista = 9% de desconto. * 30 dias = 8% de desconto. * 30/60 = 7% de desconto. * 30/60/90 = 6% de desconto. Ou seja somente em até 3 vezes com parcela mínima de R$1.000,00 reais. Outra questão é que realizado pelo usuário apenas o Pedido, ou seja, O Boleto será gerado manualmente pela empresa após validação dos dados informados Pelo cliente, e repassados a ele quando aprovado. Resumindo, este módulo informa o valor de acordo com o prazo de parcelamento, Informa ao cliente para selecionar uma destas formas, captura as informações do cliente e mostra No painel de controle para aprovação do cadastro. Para isto, tive que alterar um módulo já existente, o creditcard. segue algumas alterações que fiz para fazer os cálculos: {foreach key=key from=$bandeira.parcelas item=parcela name=parcelasdiscovery} {if $total < 1100}{l s='Seu pedido minimo de ser maior de R$ 1.100,00 reais'} {elseif ($total > 1100) AND ($total < 2200)} <div id="corpo" class="parcelamento"> <span class="corpo parcela "> <input type="radio" name="cardParcels" id="cardParcels" value="{if $key === 1}{$parcela.1 = $parcela.2 - ($parcela.2 * 10 / 100)}{elseif $key === 2} {$parcela.1 = ($parcela.2 - ($parcela.2 * 8 / 100)) / 2}{elseif $key === 3}{$parcela.1 = ($parcela.2 -($parcela.2 * 6 / 100))/3}{/if}{if $key === 1}{$parcela.2 = $parcela.2 - ($parcela.2 * 10 / 100)}{elseif $key === 2}{$parcela.2 = $parcela.2 - ($parcela.2 * 8 / 100)}{elseif $key === 3}{$parcela.2 = $parcela.2 -($parcela.2 * 6 / 100)}{/if}{$parcela.0} x {$parcela.1} =R${$parcela.2}" {if $smarty.foreach.parcelasdiscovery.first}checked="checked"{/if}/> {$parcela.0} x R$ {$parcela.1} {if $key === 1}<span style="float:right;">Com 10% de desconto</span>{/if}</span> <span class="corpo valor ">= R$ {$parcela.2}</span> {if ($key) eq 1}{break}{/if} {elseif ($total > 2200) AND ($total < 3300)} <div id="corpo" class="parcelamento"> <span class="corpo parcela "> <input type="radio" name="cardParcels" id="cardParcels" value="{if $key === 1}{$parcela.1 = $parcela.2 - ($parcela.2 * 10 / 100)}{elseif $key === 2} {$parcela.1 = ($parcela.2 - ($parcela.2 * 8 / 100)) / 2}{elseif $key === 3}{$parcela.1 = ($parcela.2 -($parcela.2 * 6 / 100))/3}{/if}{if $key === 1}{$parcela.2 = $parcela.2 - ($parcela.2 * 10 / 100)}{elseif $key === 2}{$parcela.2 = $parcela.2 - ($parcela.2 * 8 / 100)}{elseif $key === 3}{$parcela.2 = $parcela.2 -($parcela.2 * 6 / 100)}{/if}{$parcela.0} x {$parcela.1} =R${$parcela.2}" {if $smarty.foreach.parcelasdiscovery.first}checked="checked"{/if}/> {$parcela.0} x R$ {$parcela.1} {if $key === 1}<span style="float:right;">Com 10% de desconto</span>{elseif $key === 2}<span style="float:right;">Com 8% de desconto</span>{/if}</span> <span class="corpo valor ">= R$ {$parcela.2}</span>{if ($key) eq 2}{break}{/if} {elseif $total > 3300} <div id="corpo" class="parcelamento"> <span class="corpo parcela "> <input type="radio" name="cardParcels" id="cardParcels" value="{if $key === 1}{$parcela.1 = $parcela.2 - ($parcela.2 * 10 / 100)}{elseif $key === 2} {$parcela.1 = ($parcela.2 - ($parcela.2 * 8 / 100)) / 2}{elseif $key === 3}{$parcela.1 = ($parcela.2 -($parcela.2 * 6 / 100))/3}{/if}{if $key === 1}{$parcela.2 = $parcela.2 - ($parcela.2 * 10 / 100)}{elseif $key === 2}{$parcela.2 = $parcela.2 - ($parcela.2 * 8 / 100)}{elseif $key === 3}{$parcela.2 = $parcela.2 -($parcela.2 * 6 / 100)}{/if}{$parcela.0} x {$parcela.1} =R${$parcela.2}" {if $smarty.foreach.parcelasdiscovery.first}checked="checked"{/if}/> {$parcela.0} x R$ {$parcela.1} {if $key === 1}<span style="float:right;">Com 10% de desconto</span>{elseif $key === 2}<span style="float:right;">Com 8% de desconto</span>{elseif $key === 3}<span style="float:right;">Com 6% de desconto</span>{/if}</span> <span class="corpo valor ">= R$ {$parcela.2}</span>{if ($key) eq 3}{break}{/if} {/if} <div class="clear"></div> {if ($key) eq $bandeira.dividir OR $smarty.foreach.parcelasdiscovery.last} </div> {/if} {/foreach} ... Está funcionando certo, porém, na tela de compras do cliente no admin, está aparecendo o valor total sem o desconto. E também está enviando no e-mail, o valor sem o desconto. A pergunta é: Como posso passar o valor que calculo no módulo para o carrinho? Ou como passo o valor do desconto para o desconto do carrinho, para que calcule automaticamente? Desculpe se não fui claro... Link to comment Share on other sites More sharing options...
guest* Posted November 21, 2013 Share Posted November 21, 2013 Em vez de alterar o código seria melhor criar overrides. Vc. alterando o código acaba bloqueando o cliente de fazer um upgrade do core. Veja se te server este tutorial aqui: http://doc.prestashop.com/display/PS15/Diving+into+PrestaShop+Core+development#DivingintoPrestaShopCoredevelopment-DivingintoPrestaShopCoredevelopment Link to comment Share on other sites More sharing options...
guest* Posted November 21, 2013 Share Posted November 21, 2013 Um schema do banco de dados e variáveis vc. encontra aqui: http://doc.prestashop.com/display/PS15/Fundamentals#Fundamentals-Databaseschema Link to comment Share on other sites More sharing options...
Allexb10 Posted November 21, 2013 Author Share Posted November 21, 2013 Ok, Sei que seria a forma correta para fazer, mas como não tenho experiencia, foi o que consegui. Mas os overrides são apenas uma classe estendida do módulo, é isso? Se for, isso resolve o problema de atualizações, mas não o da questão do valor no carrinho. Quando fizer atualizações, basta copiar a pasta do módulo que estará certo(desde que o módulo seja compatível, é claro). Acontece que esta será a única forma de pagamento que a loja aceitará. Então, como setar a variavel do carrinho com o valor total do módulo? Link to comment Share on other sites More sharing options...
Daniel - PrestaBR Posted November 21, 2013 Share Posted November 21, 2013 Recomendo que pesquise como incluir um cupom de desconto automaticamente ao pedido, de acordo com o % de desconto do pedido. Pode ainda verificar o funcionamento dos módulos de depósito bancário com desconto (bankwireplus ou bankwirediscount). Se não me engano, eles são gratuitos. Boa sorte. Link to comment Share on other sites More sharing options...
Allexb10 Posted November 26, 2013 Author Share Posted November 26, 2013 Não posso incluir um cupom de desconto, pois o valor do desconto muda de acordo com as parcelas que escolher e de acordo com o valor também. Só preciso setar a variável global do desconto do carrinho. Alguém sabe qual é? Link to comment Share on other sites More sharing options...
Daniel - PrestaBR Posted November 26, 2013 Share Posted November 26, 2013 Não existe uma variável global para isso. Os descontos são incluídos por cupons ou diretamente no banco de dados. Existem funções da classe Cart: Cart::addCartRule(); Cart::getCartRules(); Porque não adquire um módulo pronto? Você provavelmente terá muito trabalho desenvolvendo uma solução. Acredito que este módulo pode atender à sua necessidade: http://addons.prestashop.com/pt/descontos-promocoes-prestashop-modulo/3462-maxi-promos-offres-commerciales.html Boa sorte Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now