Sign in to follow this  
403 - Forbiddeen

Corrigindo o Sub Total do cupom de desconto no Magento 1 - PHP 7

Recommended Posts

Corrigindo o Sub Total do cupom de desconto no Magento 1 - PHP 7


Se você criou um cupom de desconto e notou que o valor do desconto não é calculado corretamente ao sub total, saiba é simples resolver. Isso acontece em especial quando usamos o PHP 7 para rodar no Magento. Existe duas formas para resolver isso. A primeira é trocar o PHP no CPANEL, porém não recomendo muito, já que pode afetar outras aplicações. O segundo método é atualizar um arquivo no source, foi o que fiz e deu certo. 1. Acesse o FTP e localize: app/code/core/Mage/Sales/Model/Config/Ord

 


⭐⭐Como ganhar uma licença de jogo para PC (Steam) participando do GGames!⭐⭐

sign-war-403.png

SETUP: i7 8700k + Deepcool Captain 360 / Gigabyte Aorus Gaming 5 / 16Gbs de Memória DDR4 HyperX RGB 2933MHz / GTX 1080 TI EVGA FTW3 ICX / Fonte 1000W EVGA G2 / SSD 120Gb Samsung / 2 HD (1TB + 2TB) / Gabinete CM STORM Stryker / Mouse EVGA TORQ X5 / Headset Corsair Gaming Storm Void / Mousepad Razer BF4 / Teclado CM STORM Aluminum Mech / Monitor LG 29' Ultra Wide 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By 403 - Forbiddeen
      Se você criou um cupom de desconto e notou que o valor do desconto não é calculado corretamente ao sub total, saiba é simples resolver. Isso acontece em especial quando usamos o PHP 7 para rodar no Magento. Existe duas formas para resolver isso. A primeira é trocar o PHP no CPANEL, porém não recomendo muito, já que pode afetar outras aplicações. O segundo método é atualizar um arquivo no source, foi o que fiz e deu certo.
      1. Acesse o FTP e localize: app/code/core/Mage/Sales/Model/Config/Ordered.php
      2. Comente esse código
       
      /** * Aggregate before/after information from all items and sort totals based on this data * * @return array */ protected function _getSortedCollectorCodes() { if (Mage::app()->useCache('config')) { $cachedData = Mage::app()->loadCache($this->_collectorsCacheKey); if ($cachedData) { return unserialize($cachedData); } } $configArray = $this->_modelsConfig; // invoke simple sorting if the first element contains the "sort_order" key reset($configArray); $element = current($configArray); if (isset($element['sort_order'])) { uasort($configArray, array($this, '_compareSortOrder')); } else { foreach ($configArray as $code => $data) { foreach ($data['before'] as $beforeCode) { if (!isset($configArray[$beforeCode])) { continue; } $configArray[$code]['before'] = array_unique(array_merge( $configArray[$code]['before'], $configArray[$beforeCode]['before'] )); $configArray[$beforeCode]['after'] = array_merge( $configArray[$beforeCode]['after'], array($code), $data['after'] ); $configArray[$beforeCode]['after'] = array_unique($configArray[$beforeCode]['after']); } foreach ($data['after'] as $afterCode) { if (!isset($configArray[$afterCode])) { continue; } $configArray[$code]['after'] = array_unique(array_merge( $configArray[$code]['after'], $configArray[$afterCode]['after'] )); $configArray[$afterCode]['before'] = array_merge( $configArray[$afterCode]['before'], array($code), $data['before'] ); $configArray[$afterCode]['before'] = array_unique($configArray[$afterCode]['before']); } } uasort($configArray, array($this, '_compareTotals')); } $sortedCollectors = array_keys($configArray); if (Mage::app()->useCache('config')) { Mage::app()->saveCache(serialize($sortedCollectors), $this->_collectorsCacheKey, array( Mage_Core_Model_Config::CACHE_TAG ) ); } return $sortedCollectors; } 3. Cole logo em seguida esse código.
       
      /**** Note: While applying coupon code, Totals are not updating due to uasort not working in php7 then modified the _getSortedCollectorCodes() function as shown below. ****/ protected function _getSortedCollectorCodes() { if (Mage::app()->useCache('config')) { $cachedData = Mage::app()->loadCache($this->_collectorsCacheKey); if ($cachedData) { return unserialize($cachedData); } } $configArray = $this->_modelsConfig; // invoke simple sorting if the first element contains the "sort_order" key reset($configArray); $element = current($configArray); Mage::log(var_export($element,true)); if (isset($element['sort_order'])) { uasort($configArray, array($this, '_compareSortOrder')); } else { foreach ($configArray as $code => $data) { foreach ($data['before'] as $beforeCode) { if (!isset($configArray[$beforeCode])) { continue; } $configArray[$code]['before'] = array_unique(array_merge( $configArray[$code]['before'], $configArray[$beforeCode]['before'] )); $configArray[$beforeCode]['after'] = array_merge( $configArray[$beforeCode]['after'], array($code), $data['after'] ); $configArray[$beforeCode]['after'] = array_unique($configArray[$beforeCode]['after']); } foreach ($data['after'] as $afterCode) { if (!isset($configArray[$afterCode])) { continue; } $configArray[$code]['after'] = array_unique(array_merge( $configArray[$code]['after'], $configArray[$afterCode]['after'] )); $configArray[$afterCode]['before'] = array_merge( $configArray[$afterCode]['before'], array($code), $data['before'] ); $configArray[$afterCode]['before'] = array_unique($configArray[$afterCode]['before']); } } foreach ($configArray as $code => $data) { $largest_small = $smallest_large = 0; foreach ($data['after'] as $afterCode) { if(isset($configArray[$afterCode]['sort_order']) && $largest_small < $configArray[$afterCode]['sort_order']) $largest_small = $configArray[$afterCode]['sort_order']; } foreach ($data['before'] as $beforeCode) { if(isset($configArray[$beforeCode]['sort_order']) && ($smallest_large == 0 || $configArray[$beforeCode]['sort_order'] < $smallest_large)) $smallest_large = $configArray[$beforeCode]['sort_order']; } if($smallest_large <= $largest_small+1){ $add = $largest_small+1-$largest_small; if($smallest_large == 0) $smallest_large = $largest_small+1; foreach ($configArray as $code1 => $data1) { if(!isset($data1['sort_order'])) break; if($smallest_large <= $data1['sort_order']) $configArray[$code1]['sort_order'] += $add; } } $configArray[$code]['sort_order'] = $largest_small+1; } uasort($configArray, array($this, '_compareSortOrder')); } $sortedCollectors = array_keys($configArray); if (Mage::app()->useCache('config')) { Mage::app()->saveCache(serialize($sortedCollectors), $this->_collectorsCacheKey, array( Mage_Core_Model_Config::CACHE_TAG ) ); } return $sortedCollectors; } 4. É só salvar e enviar. Se tiver com preguiça de fazer, só baixar o arquivo anexado ao tutorial. 

      Créditos ao site Stackexchange, eu apenas traduzi as instruções.
      Ordered.php
    • By 403 - Forbiddeen
      Uma forma eficiente de garantida de trocar o logo dos emails transacionais no Magento, aqueles emails de boas vindas, pedido etc. É você fazer o seguinte;

      1. Crie uma imagem com no máximo 165px de largura com a sua identidade visual. 
      2. Salve a imagem com o nome logo_email.gif e fundo transparente.
      3. Via FTP, envie para a pasta /skin/frontend/base/default/images/
      4. Prontinho, agora seu email tem o logo personalizado.
    • By 403 - Forbiddeen
      Trocando o logo dos emails transacionais no Magento 1
      Uma forma eficiente de garantida de trocar o logo dos emails transacionais no Magento, aqueles emails de boas vindas, pedido etc. É você fazer o seguinte; 1. Crie uma imagem com no máximo 165px de largura com a sua identidade visual.  2. Salve a imagem com o nome logo_email.gif e fundo transparente. 3. Via FTP, envie para a pasta /skin/frontend/base/default/images/ 4. Prontinho, agora seu email tem o logo personalizado. Autor 403 - Forbiddeen Categoria Magento | Woocommerce | Shopify Enviado 13-02-2019 14:39  
    • By 403 - Forbiddeen
      Se você está em fase final de desenvolvimento da sua loja virtual, saiba que é importante alertar seus visitantes que aquela loja ainda não foi lançada.
      No tutorial de hoje irei ensinar como colocar uma barra no topo do site informando que qualquer venda realizada na loja, não será honrada e também como personalizar essa frase.
      1. Vá em Sistemas > Configurações, lá no final localize Geral > Visual.
      2. Em cabeçalho, marque SIM a opção EXIBIR MENSAGEM LOJA TESTE.

      3. É só limpar o cache que a mensagem será exibida na home page.

      Extras!
      Para personalizar a mensagem é tranquilo, ainda em configurações, vá em AVANÇADO > DESENVOLVEDOR, habilite a opção traduzir inline. Escreva o conteúdo desejado, aperte submit e depois desative a tradução inline. Limpe o cache para exibir imediatamente.

      Resultado:

  • Recently Browsing   0 members

    No registered users viewing this page.