Bem vindo ao brockdev.com, não seja tímido compartilhe suas duvidas e conhecimento. :D

Método motoboy

brunowdbrunowd Usuário
Alguém sabe como faço pra altera para drop-down as opções?
Obrigado.


ESSE É O MODULO!

https://github.com/tresloukadu/treslouk ... oy-magento
«1

Comentários

  • Tentei alterar no shipping.phtml

    na div class="sp-methods", tentei alterar o type=radio, e o class=radio mas não rolou.

     <form id=\"co-shipping-method-form\" action=\"<?php echo $this->getUrl('checkout/cart/estimateUpdatePost') ?>\">
    <dl class=\"sp-methods\">
    <?php foreach ($_shippingRateGroups as $code => $_rates): ?>
    <dt><?php echo $this->escapeHtml($this->getCarrierName($code)) ?></dt>
    <dd>
    <ul>
    <?php foreach ($_rates as $_rate): ?>
    <li<?php if ($_rate->getErrorMessage()) echo ' class=\"error-msg\"';?>>
    <?php if ($_rate->getErrorMessage()): ?>
    <?php echo $this->escapeHtml($_rate->getErrorMessage()) ?>
    <?php else: ?>
    <input name=\"estimate_method\" type=\"radio\" value=\"<?php echo $this->escapeHtml($_rate->getCode()) ?>\" id=\"s_method_<?php echo $_rate->getCode() ?>\"<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked=\"checked\"' ?> class=\"radio\" />
    <label for=\"s_method_<?php echo $_rate->getCode() ?>\"><?php echo $this->escapeHtml($_rate->getMethodTitle()) ?>
    <?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
    <?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
    <?php echo $_excl; ?>
    <?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
    (<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
    <?php endif; ?>
    </label>
    <?php endif ?>
    </li>
    <?php endforeach; ?>
    </ul>
    </dd>
    <?php endforeach; ?>
    </dl>
    <div class=\"buttons-set\">
    <button type=\"submit\" title=\"<?php echo $this->__('Update Total') ?>\" class=\"button\" name=\"do\" value=\"<?php echo $this->__('Update Total') ?>\"><span><span><?php echo $this->__('Update Total') ?></span></span></button>
    </div>
    </form>
  • Jonatan Machado Moderador Global, Administrador
    Ola Bruno
    Quais opções você quer mudar para dropdown?
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • disse:

    Ola Bruno
    Quais opções você quer mudar para dropdown?

    As opções para selecionar o bairro.
  • disse:

    Ola Bruno
    Quais opções você quer mudar para dropdown?


    Oi Joanatan o módulo é esse

    https://github.com/tresloukadu/tresloukadu-motoboy-magento
  • Jonatan Machado Moderador Global, Administrador
    A forma mais facil que eu achei foi alterando o available.phtml

    Vai ficar mais ou menos assim

    <?php
    /**
    * Magento
    *
    * NOTICE OF LICENSE
    *
    * This source file is subject to the Academic Free License (AFL 3.0)
    * that is bundled with this package in the file LICENSE_AFL.txt.
    * It is also available through the world-wide-web at this URL:
    * http://opensource.org/licenses/afl-3.0.php
    * If you did not receive a copy of the license and are unable to
    * obtain it through the world-wide-web, please send an email
    * to license@magentocommerce.com so we can send you a copy immediately.
    *
    * DISCLAIMER
    *
    * Do not edit or add to this file if you wish to upgrade Magento to newer
    * versions in the future. If you wish to customize Magento for your
    * needs please refer to http://www.magentocommerce.com for more information.
    *
    * @category design
    * @package base_default
    * @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
    * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
    */
    ?>
    <?php /** @var $this Mage_Checkout_Block_Onepage_Shipping_Method_Available */ ?>
    <?php $_shippingRateGroups = $this->getShippingRates(); ?>
    <?php if (!$_shippingRateGroups): ?>
    <p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
    <?php else: ?>
    <dl class=\"sp-methods\">
    <?php $shippingCodePrice = array(); ?>
    <?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?>
    <dt><?php echo $this->escapeHtml($this->getCarrierName($code)) ?></dt>
    <dd>
    <ul>
    <li>
    <select name=\"shipping_method\" class=\"radio\"/>
    <?php $_sole = $_sole && count($_rates) == 1; foreach ($_rates as $_rate): ?>
    <?php $shippingCodePrice[] = \"'\".$_rate->getCode().\"':\".(float)$_rate->getPrice(); ?>

    <?php if ($_rate->getErrorMessage()): ?>
    <ul class=\"messages\"><li class=\"error-msg\"><ul><li><?php echo $this->escapeHtml($_rate->getErrorMessage()) ?></li></ul></li></ul>
    <?php else: ?>
    <?php if ($_sole) : ?>
    <span class=\"no-display\"><select name=\"shipping_method\" value=\"<?php echo $_rate->getCode() ?>\" id=\"s_method_<?php echo $_rate->getCode() ?>\" checked=\"checked\" /></span>
    <?php else: ?>



    <?php $_rate->getCode() === $this->getAddressShippingMethod() ?>
    <script type=\"text/javascript\">
    //<![CDATA[
    lastPrice = <?php echo (float)$_rate->getPrice(); ?>;
    //]]>
    </script>
    <option for=\"s_method_<?php echo $_rate->getCode() ?>\"><?php echo $this->escapeHtml($_rate->getMethodTitle()) ?>
    <?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
    <?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
    <?php echo $_excl; ?>
    <?php $this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl ?>
    (<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)

    </option>

    <?php endif; ?>

    <?php endif ?>

    <?php endforeach; ?>
    </select>
    </li>
    </ul>
    </dd>
    <?php endforeach; ?>
    </dl>
    <script type=\"text/javascript\">
    //<![CDATA[
    <?php if (!empty($shippingCodePrice)): ?>
    var shippingCodePrice = {<?php echo implode(',',$shippingCodePrice); ?>};
    <?php endif; ?>

    $$('input[type=\"radio\"][name=\"shipping_method\"]').each(function(el){
    Event.observe(el, 'click', function(){
    if (el.checked == true) {
    var getShippingCode = el.getValue();
    <?php if (!empty($shippingCodePrice)): ?>
    var newPrice = shippingCodePrice[getShippingCode];
    if (!lastPrice) {
    lastPrice = newPrice;
    quoteBaseGrandTotal += newPrice;
    }
    if (newPrice != lastPrice) {
    quoteBaseGrandTotal += (newPrice-lastPrice);
    lastPrice = newPrice;
    }
    <?php endif; ?>
    checkQuoteBaseGrandTotal = quoteBaseGrandTotal;
    return false;
    }
    });
    });
    //]]>
    </script>
    <?php endif; ?>
    teste
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • disse:

    A forma mais facil que eu achei foi alterando o available.phtml

    Vai ficar mais ou menos assim

    <?php
    /**
    * Magento
    *
    * NOTICE OF LICENSE
    *
    * This source file is subject to the Academic Free License (AFL 3.0)
    * that is bundled with this package in the file LICENSE_AFL.txt.
    * It is also available through the world-wide-web at this URL:
    * http://opensource.org/licenses/afl-3.0.php
    * If you did not receive a copy of the license and are unable to
    * obtain it through the world-wide-web, please send an email
    * to license@magentocommerce.com so we can send you a copy immediately.
    *
    * DISCLAIMER
    *
    * Do not edit or add to this file if you wish to upgrade Magento to newer
    * versions in the future. If you wish to customize Magento for your
    * needs please refer to http://www.magentocommerce.com for more information.
    *
    * @category design
    * @package base_default
    * @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
    * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
    */
    ?>
    <?php /** @var $this Mage_Checkout_Block_Onepage_Shipping_Method_Available */ ?>
    <?php $_shippingRateGroups = $this->getShippingRates(); ?>
    <?php if (!$_shippingRateGroups): ?>
    <p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
    <?php else: ?>
    <dl class=\"sp-methods\">
    <?php $shippingCodePrice = array(); ?>
    <?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?>
    <dt><?php echo $this->escapeHtml($this->getCarrierName($code)) ?></dt>
    <dd>
    <ul>
    <li>
    <select name=\"shipping_method\" class=\"radio\"/>
    <?php $_sole = $_sole && count($_rates) == 1; foreach ($_rates as $_rate): ?>
    <?php $shippingCodePrice[] = \"'\".$_rate->getCode().\"':\".(float)$_rate->getPrice(); ?>

    <?php if ($_rate->getErrorMessage()): ?>
    <ul class=\"messages\"><li class=\"error-msg\"><ul><li><?php echo $this->escapeHtml($_rate->getErrorMessage()) ?></li></ul></li></ul>
    <?php else: ?>
    <?php if ($_sole) : ?>
    <span class=\"no-display\"><select name=\"shipping_method\" value=\"<?php echo $_rate->getCode() ?>\" id=\"s_method_<?php echo $_rate->getCode() ?>\" checked=\"checked\" /></span>
    <?php else: ?>



    <?php $_rate->getCode() === $this->getAddressShippingMethod() ?>
    <script type=\"text/javascript\">
    //<![CDATA[
    lastPrice = <?php echo (float)$_rate->getPrice(); ?>;
    //]]>
    </script>
    <option for=\"s_method_<?php echo $_rate->getCode() ?>\"><?php echo $this->escapeHtml($_rate->getMethodTitle()) ?>
    <?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
    <?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
    <?php echo $_excl; ?>
    <?php $this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl ?>
    (<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)

    </option>

    <?php endif; ?>

    <?php endif ?>

    <?php endforeach; ?>
    </select>
    </li>
    </ul>
    </dd>
    <?php endforeach; ?>
    </dl>
    <script type=\"text/javascript\">
    //<![CDATA[
    <?php if (!empty($shippingCodePrice)): ?>
    var shippingCodePrice = {<?php echo implode(',',$shippingCodePrice); ?>};
    <?php endif; ?>

    $$('input[type=\"radio\"][name=\"shipping_method\"]').each(function(el){
    Event.observe(el, 'click', function(){
    if (el.checked == true) {
    var getShippingCode = el.getValue();
    <?php if (!empty($shippingCodePrice)): ?>
    var newPrice = shippingCodePrice[getShippingCode];
    if (!lastPrice) {
    lastPrice = newPrice;
    quoteBaseGrandTotal += newPrice;
    }
    if (newPrice != lastPrice) {
    quoteBaseGrandTotal += (newPrice-lastPrice);
    lastPrice = newPrice;
    }
    <?php endif; ?>
    checkQuoteBaseGrandTotal = quoteBaseGrandTotal;
    return false;
    }
    });
    });
    //]]>
    </script>
    <?php endif; ?>
    teste

    ok vou testar! Obrigado.
  • Editei para o avaliable.phtml do base... ficou com as opções em drop-down ,mas opção de frete por motoboy não aparece em lugar algum. :?
  • Pessoal, eu alterei somente os bairros e deu erro no checkout :/

    Esse é do módulo original:

    <?php 
    /**
    * Carlos Eduardo da Silva (aka Tresloukadu).
    *
    * NOTICE OF LICENSE
    *
    *
    * The MIT License
    *
    * Copyright (c) 2012 TRESLOUKADU
    *
    * http://www.tresloukadu.com.br/category/php/magento/
    *
    * Permission is hereby granted, free of charge, to any person obtaining a copy
    * of this software and associated documentation files (the \"Software\"), to deal
    * in the Software without restriction, including without limitation the rights
    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    * copies of the Software, and to permit persons to whom the Software is
    * furnished to do so, subject to the following conditions:
    *
    * The above copyright notice and this permission notice shall be included in
    * all copies or substantial portions of the Software.
    *
    * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    * THE SOFTWARE.
    *
    *
    *
    * @category Tresloukadu
    * @package Tresloukadu_Motoboy
    * @copyright Copyright (c) 2013 Carlos Eduardo da Silva (http://www.tresloukadu.com.br)
    * @author Carlos Eduardo da Silva <carlosedasilva@gmail.com>
    * @license http://opensource.org/licenses/MIT
    */


    /**
    * Tresloukadu_Motoboy_Model_Carrier_MotoboyMethod
    *
    * @category Tresloukadu
    * @package Tresloukadu_Motoboy
    * @author Carlos Eduardo da Silva <carlosedasilva@gmail.com>
    */
    class Tresloukadu_Motoboy_Model_Carrier_MotoboyMethod extends Mage_Shipping_Model_Carrier_Abstract implements Mage_Shipping_Model_Carrier_Interface
    {

    /**
    * Unique internal shipping method id.
    * @var string
    */
    protected $_code = 'tresloukadu_motoboy';


    /**
    * Collect Rates for this shipping method based on information in $request
    *
    * @param Mage_Shipping_Model_Rate_Request $request
    * @return Mage_Shipping_Model_Rate_Result
    */
    public function collectRates(Mage_Shipping_Model_Rate_Request $request)
    {
    if (!$this->getConfigFlag('active'))
    {
    Mage::log('Tresloukadu_Motoboy: Disabled');
    return false;
    }

    //entregas gratis e produtos virtuais
    $freeBoxes = 0;
    if ($request->getAllItems()) {
    foreach ($request->getAllItems() as $item) {
    if ($item->getFreeShipping() && !$item->getProduct()->isVirtual()) {
    $freeBoxes+=$item->getQty();
    }
    }
    }
    $this->setFreeBoxes($freeBoxes);


    /**
    * @todo Precisa trazer estes dados do banco de dados ou de um arquivo xml. O usuário deve
    * fornecer estes dados no admin e depois armazenar no banco/xml.
    */
    $bairros = array(
    'Armacao'=>'50.00',
    'Area Industrial de sao Jose'=>'17.00',
    'Agronomica'=>'25.00',
    'Alto Aririu'=>'25.00',
    'Aeroporto'=>'35.00',
    'Av. das Torres'=>'20.00',
    'Abraao'=>'17.00',
    'Aririu'=>'25.00',
    'Areias'=>'17.00',
    'Area Ind. da Palhoca'=>'20.00',
    'Barreiros'=>'17.00',
    'Bela Vista'=>'15.00',
    'Bela Vista da Palhoca'=>'20.00',
    'Balneario do estreito'=>'17.00',
    'Biguacu'=>'25.00',
    'Barra da Lagoa'=>'40.00',
    'Barra do Aririu'=>'25.00',
    'Centro'=>'20.00',
    'Corrego Grande'=>'30.00',
    'Coloninha'=>'17.00',
    'Campeche'=>'30.00',
    'Cacupe'=>'35.00',
    'Canasvieiras'=>'50.00',
    'Ceniro Martins'=>'12.00',
    'Colonia Santana'=>'25.00',
    'Costeira'=>'25.00',
    'Caminho Novo'=>'25.00',
    'Centro de Sao Jose'=>'15.00',
    'Campinas'=>'15.00',
    'Carvoeira'=>'25.00',
    'Capoeiras'=>'17.00',
    'Coqueiros'=>'17.00',
    'Cachoeira do bom Jesus'=>'50.00',
    'Forquilinhas'=>'10.00',
    'Forquilhas'=>'15.00',
    'Floresta'=>'12.00',
    'Fazenda do Max'=>'15.00',
    'Ingleses'=>'50.00',
    'Itacorobi'=>'25.00',
    'jardim el Dourado'=>'15.00',
    'Joao Paulo'=>'30.00',
    'Jurere'=>'45.00',
    'Janaina'=>'25.00',
    'Kobrassol'=>'15.00',
    'Lisboa'=>'10.00',
    'Palhoca(centro)'=>'17.00',
    'Ponta de baixo'=>'15.00',
    'Ponte do Imaruim'=>'15.00',
    'Pantanal'=>'25.00',
    'Rocado'=>'12.00',
    'Rio Tavares'=>'30.00',
    'Ratones'=>'45.00',
    'Serraria'=>'20.00',
    'Sertao do Imaruim'=>'15.00',
    'Saco grande'=>'30.00',
    'Santa Monica'=>'30.00',
    'Santo Antonio de Lisboa'=>'35.00',
    'Sao Sebastiao'=>'30.00',
    'Sao Pedro de Alcantara'=>'40.00',
    'Santo Amaro'=>'35.00',
    'Tapera'=>'45.00',
    'Trindade'=>'25.00',
    'Vila Formosa'=>'12.00',
    'Zanelato'=>'20.00');

    $result = Mage::getModel('shipping/rate_result');

    foreach($bairros as $chave => $valor )
    {
    $shippingPrice = $valor;

    $shippingPrice = $this->getFinalPriceWithHandlingFee($shippingPrice);

    $method = Mage::getModel('shipping/rate_result_method');

    $method->setCarrier($this->_code);
    $method->setCarrierTitle($this->getConfigData('title'));
    $method->setMethod($chave);
    $method->setMethodTitle($chave);
    if ($request->getFreeShipping() === true || $request->getPackageQty() == $this->getFreeBoxes()) {
    $shippingPrice = '0.00';
    }
    $method->setPrice($shippingPrice);
    $method->setCost($shippingPrice);

    $result->append($method);
    }

    return $result;
    }



    public function getAllowedMethods()
    {
    return array($this->_code => $this->getConfigData('title'));
    }

    }






    esse está com os bairros de Port Alegre com seus valores
    <?php 
    /**
    * Carlos Eduardo da Silva (aka Tresloukadu).
    *
    * NOTICE OF LICENSE
    *
    *
    * The MIT License
    *
    * Copyright (c) 2012 TRESLOUKADU
    *
    * http://www.tresloukadu.com.br/category/php/magento/
    *
    * Permission is hereby granted, free of charge, to any person obtaining a copy
    * of this software and associated documentation files (the \"Software\"), to deal
    * in the Software without restriction, including without limitation the rights
    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    * copies of the Software, and to permit persons to whom the Software is
    * furnished to do so, subject to the following conditions:
    *
    * The above copyright notice and this permission notice shall be included in
    * all copies or substantial portions of the Software.
    *
    * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    * THE SOFTWARE.
    *
    *
    *
    * @category Tresloukadu
    * @package Tresloukadu_Motoboy
    * @copyright Copyright (c) 2013 Carlos Eduardo da Silva (http://www.tresloukadu.com.br)
    * @author Carlos Eduardo da Silva <carlosedasilva@gmail.com>
    * @license http://opensource.org/licenses/MIT
    */


    /**
    * Tresloukadu_Motoboy_Model_Carrier_MotoboyMethod
    *
    * @category Tresloukadu
    * @package Tresloukadu_Motoboy
    * @author Carlos Eduardo da Silva <carlosedasilva@gmail.com>
    */
    class Tresloukadu_Motoboy_Model_Carrier_MotoboyMethod extends Mage_Shipping_Model_Carrier_Abstract implements Mage_Shipping_Model_Carrier_Interface
    {

    /**
    * Unique internal shipping method id.
    * @var string
    */
    protected $_code = 'tresloukadu_motoboy';


    /**
    * Collect Rates for this shipping method based on information in $request
    *
    * @param Mage_Shipping_Model_Rate_Request $request
    * @return Mage_Shipping_Model_Rate_Result
    */
    public function collectRates(Mage_Shipping_Model_Rate_Request $request)
    {
    if (!$this->getConfigFlag('active'))
    {
    Mage::log('Tresloukadu_Motoboy: Disabled');
    return false;
    }

    //entregas gratis e produtos virtuais
    $freeBoxes = 0;
    if ($request->getAllItems()) {
    foreach ($request->getAllItems() as $item) {
    if ($item->getFreeShipping() && !$item->getProduct()->isVirtual()) {
    $freeBoxes+=$item->getQty();
    }
    }
    }
    $this->setFreeBoxes($freeBoxes);


    /**
    * @todo Precisa trazer estes dados do banco de dados ou de um arquivo xml. O usuário deve
    * fornecer estes dados no admin e depois armazenar no banco/xml.
    */
    $bairros = array(
    'Aberta dos Morros'=>'40.00',
    'Agronomia'=>'20.00',
    'Anchieta '=>'12.00',
    'Aparício Borges '=>'15.00',
    'Assunção'=>'18.00',
    'Auxiliadora'=>'10.00',
    'Azenha'=>'12.00',
    'Bela Vista'=>'10.00',
    'Belém Novo'=>'27.00',
    'Boa Vista'=>'10.00',
    'Bom Fim'=>'10.00',
    'Bom Jesus'=>'12.00',
    'Camaquã'=>'18.00',
    'Cascata'=>'18.00',
    'Cavalhada'=>'17.00',
    'Cefer'=>'15.00',
    'Centro'=>'10.00',
    'Chácara das Pedras'=>'10.00',
    'Cidade Baixa'=>'10.00',
    'Cristal'=>'15.00',
    'Cristal (Barra Shoppping)'=>'18.00',
    'Cristo Redentor'=>'10.00',
    'Eduardo Prado'=>'22.00',
    'Espírito Santo'=>'25.00',
    'Floresta'=>'10.00',
    'Glória'=>'14.00',
    'Guarujá'=>'25.00',
    'Higienópolis'=>'10.00',
    'Hípica'=>'25.00',
    'Humaitá'=>'10.00',
    'Ilha da Pintada'=>'19.00',
    'Independencia'=>'10.00',
    'Ipanema'=>'22.00',
    'Partenon Puc'=>'15.00',
    'Pedra Redonda'=>'20.00',
    'Petrópolis'=>'10.00',
    'Ponta Grossa'=>'35.00',
    'Praia de Belas'=>'10.00',
    'Restinga'=>'35.00',
    'Rio Branco'=>'10.00',
    'Rubem Berta'=>'18.00',
    'Safira'=>'18.00',
    'Santa Cecília'=>'10.00',
    'Santa Tereza'=>'12.00',
    'Santana'=>'10.00',
    'Santo Agostinho'=>'15.00',
    'Santo Antônio'=>'10.00',
    'São Geraldo'=>'10.00',
    'São João'=>'10.00',
    'São José'=>'16.00',
    'Jardim Planalto'=>'12.00',
    'Jardim Protásio Alves'=>'15.00',
    'Juca Batista'=>'26.00',
    'Juca Batista Terra Ville'=>'35.00',
    'Lindóia'=>'10.00',
    'Lami'=>'45.00',
    'Lomba do Pinheiro pda 10'=>'22.00',
    'Lomba do Pinheiro pda 21'=>'26.00',
    'Medianeira'=>'12.00',
    'Menino Deus'=>'12.00',
    'Moinhos'=>'10.00',
    'Mont Serrat'=>'25.00',
    'Navegantes'=>'10.00',
    'Nonoai'=>'15.00',
    'Parque dos Maias'=>'17.00',
    'Passo da Areia'=>'10.00',
    'Partenon'=>'12.00',
    'Itu Sabará'=>'14.00',
    'Jardim Botânico'=>'10.00',
    'Jardim Carvalho'=>'15.00',
    'Jardim Europa'=>'10.00',
    'Jardim Floresta'=>'10.00',
    'Jardim Lindóia'=>'10.00',
    'Jardim Leopoldina'=>'15.00',
    'Jardim do Salso'=>'10.00',
    'São Sebastião'=>'10.00',
    'Sarandi'=>'12.00',
    'Serraria'=>'30.00',
    'Teresópolis'=>'14.00',
    'Três Figueiras'=>'10.00',
    'Vila Nova'=>'20.00',
    'Tristeza'=>'17.00',
    'Vila Ipiranga'=>'10.00',
    'Vila Jardim'=>'12.00');


    $result = Mage::getModel('shipping/rate_result');

    foreach($bairros as $chave => $valor )
    {
    $shippingPrice = $valor;

    $shippingPrice = $this->getFinalPriceWithHandlingFee($shippingPrice);

    $method = Mage::getModel('shipping/rate_result_method');

    $method->setCarrier($this->_code);
    $method->setCarrierTitle($this->getConfigData('title'));
    $method->setMethod($chave);
    $method->setMethodTitle($chave);
    if ($request->getFreeShipping() === true || $request->getPackageQty() == $this->getFreeBoxes()) {
    $shippingPrice = '0.00';
    }
    $method->setPrice($shippingPrice);
    $method->setCost($shippingPrice);

    $result->append($method);
    }

    return $result;
    }



    public function getAllowedMethods()
    {
    return array($this->_code => $this->getConfigData('title'));
    }

    }
  • Alessandra Moderador Global
    Após a alteração você reindexou os índices novamente? Limpou o cache?
  • disse:

    Após a alteração você reindexou os índices novamente? Limpou o cache?

    Sim sim rsrs
  • Jonatan Machado Moderador Global, Administrador
    Que erro que deu? se você coltar o original persiste?
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • disse:

    Que erro que deu? se você coltar o original persiste?

    Oi Jonatan ,tudo certo?

    Seguinte com o original funciona com os radio buttons, mas quando eu edito os bairros e os valores nenhuma opção aparece no checkout para escolher o tipo de frete.
  • Jonatan Machado Moderador Global, Administrador
    Coloque o original e apenas modifique o primeiro bairro e veja se o erro ocorre.
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Alessandra Moderador Global
    Fiz o teste aqui e dá erro quando se usa caracteres especiais.
  • Jonatan Machado Moderador Global, Administrador
    disse:

    Fiz o teste aqui e dá erro quando se usa caracteres especiais.

    Legal, Se utilizar caracteres-especiais em html funciona?

    http://www.caracteresespeciais.com/2009 ... -html.html
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Alessandra Moderador Global
    disse:

    disse:

    Fiz o teste aqui e dá erro quando se usa caracteres especiais.

    Legal, Se utilizar caracteres-especiais em html funciona?

    http://www.caracteresespeciais.com/2009 ... -html.html

    Isso que eu ia falar agora, com os caracteres em html funciona!
  • Acho que primeiro tentar colocar ele em drop-down como na imagem:

  • Jonatan Machado Moderador Global, Administrador
    Aquele que te mostrei funciona no dropdow mais você terá que fazer um script para atualizar os valores quando selecionar o método de envio pois no padrão do magento ele atualiza apenas no radio button
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • disse:

    Aquele que te mostrei funciona no dropdow mais você terá que fazer um script para atualizar os valores quando selecionar o método de envio pois no padrão do magento ele atualiza apenas no radio button

    Tá e se eu não mostrar o valor frontend,deixar somente o bairro,depois cobramos por fora?
  • Jonatan Machado Moderador Global, Administrador
    disse:

    disse:

    Aquele que te mostrei funciona no dropdow mais você terá que fazer um script para atualizar os valores quando selecionar o método de envio pois no padrão do magento ele atualiza apenas no radio button

    Tá e se eu não mostrar o valor frontend,deixar somente o bairro,depois cobramos por fora?
    Você teria que fazer a mesma coisa porque ele tem que actualizar a método de envio não só o valor do envio.
    outra forma seria fazer com jquery eu nao testei mais acho que da certo porem acho que tambem vai ter que fazer um script para atualizar
    http://jsfiddle.net/kkk7J/2/
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • disse:

    disse:

    disse:

    Fiz o teste aqui e dá erro quando se usa caracteres especiais.

    Legal, Se utilizar caracteres-especiais em html funciona?

    http://www.caracteresespeciais.com/2009 ... -html.html

    Isso que eu ia falar agora, com os caracteres em html funciona!
    Não rolou, já coloquei com caracteres especiais.
  • disse:

    disse:

    disse:

    Aquele que te mostrei funciona no dropdow mais você terá que fazer um script para atualizar os valores quando selecionar o método de envio pois no padrão do magento ele atualiza apenas no radio button

    Tá e se eu não mostrar o valor frontend,deixar somente o bairro,depois cobramos por fora?
    Você teria que fazer a mesma coisa porque ele tem que actualizar a método de envio não só o valor do envio.
    outra forma seria fazer com jquery eu nao testei mais acho que da certo porem acho que tambem vai ter que fazer um script para atualizar
    http://jsfiddle.net/kkk7J/2/

    Bah smile_shake tem como eu conseguir fazer isso,não daria pra eu fazer com o http://www.magentocommerce.com/magento-connect/webshopapps-matrixrate-1-multiple-table-rates-extension.html um "módulo motoboy"?
  • Jonatan Machado Moderador Global, Administrador
    Na verdade não tenho certeza mais creio que seja possível fazer mais no final vai ter que fazer a mesma coisa criar o dropdown e o script de atualizaçao

    Acho se voce utilizar o checkout padrado do magento nao precise fazer o script mais faz um teste ai
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • Alessandra Moderador Global
    Como ficou o seu arquivo?
  • disse:

    Como ficou o seu arquivo?


    Qual arquivo?
  • Alessandra Moderador Global
    O que você alterou os bairros...
  • disse:

    O que você alterou os bairros...


    Assim:

    <?php 
    /**
    * Carlos Eduardo da Silva (aka Tresloukadu).
    *
    * NOTICE OF LICENSE
    *
    *
    * The MIT License
    *
    * Copyright (c) 2012 TRESLOUKADU
    *
    * http://www.tresloukadu.com.br/category/php/magento/
    *
    * Permission is hereby granted, free of charge, to any person obtaining a copy
    * of this software and associated documentation files (the \"Software\"), to deal
    * in the Software without restriction, including without limitation the rights
    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    * copies of the Software, and to permit persons to whom the Software is
    * furnished to do so, subject to the following conditions:
    *
    * The above copyright notice and this permission notice shall be included in
    * all copies or substantial portions of the Software.
    *
    * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    * THE SOFTWARE.
    *
    *
    *
    * @category Tresloukadu
    * @package Tresloukadu_Motoboy
    * @copyright Copyright (c) 2013 Carlos Eduardo da Silva (http://www.tresloukadu.com.br)
    * @author Carlos Eduardo da Silva <carlosedasilva@gmail.com>
    * @license http://opensource.org/licenses/MIT
    */


    /**
    * Tresloukadu_Motoboy_Model_Carrier_MotoboyMethod
    *
    * @category Tresloukadu
    * @package Tresloukadu_Motoboy
    * @author Carlos Eduardo da Silva <carlosedasilva@gmail.com>
    */
    class Tresloukadu_Motoboy_Model_Carrier_MotoboyMethod extends Mage_Shipping_Model_Carrier_Abstract implements Mage_Shipping_Model_Carrier_Interface
    {

    /**
    * Unique internal shipping method id.
    * @var string
    */
    protected $_code = 'tresloukadu_motoboy';


    /**
    * Collect Rates for this shipping method based on information in $request
    *
    * @param Mage_Shipping_Model_Rate_Request $request
    * @return Mage_Shipping_Model_Rate_Result
    */
    public function collectRates(Mage_Shipping_Model_Rate_Request $request)
    {
    if (!$this->getConfigFlag('active'))
    {
    Mage::log('Tresloukadu_Motoboy: Disabled');
    return false;
    }

    //entregas gratis e produtos virtuais
    $freeBoxes = 0;
    if ($request->getAllItems()) {
    foreach ($request->getAllItems() as $item) {
    if ($item->getFreeShipping() && !$item->getProduct()->isVirtual()) {
    $freeBoxes+=$item->getQty();
    }
    }
    }
    $this->setFreeBoxes($freeBoxes);


    /**
    * @todo Precisa trazer estes dados do banco de dados ou de um arquivo xml. O usuário deve
    * fornecer estes dados no admin e depois armazenar no banco/xml.
    */
    $bairros = array(
    'Aberta dos Morros'=>'40.00',
    'Agronomia'=>'20.00',
    'Anchieta '=>'12.00',
    'Aparício Borges '=>'15.00',
    'Assunção'=>'18.00',
    'Auxiliadora'=>'10.00',
    'Azenha'=>'12.00',
    'Bela Vista'=>'10.00',
    'Belém Novo'=>'27.00',
    'Boa Vista'=>'10.00',
    'Bom Fim'=>'10.00',
    'Bom Jesus'=>'12.00',
    'Camaquã'=>'18.00',
    'Cascata'=>'18.00',
    'Cavalhada'=>'17.00',
    'Cefer'=>'15.00',
    'Centro'=>'10.00',
    'Chácara das Pedras'=>'10.00',
    'Cidade Baixa'=>'10.00',
    'Cristal'=>'15.00',
    'Cristal (Barra Shoppping)'=>'18.00',
    'Cristo Redentor'=>'10.00',
    'Eduardo Prado'=>'22.00',
    'Espírito Santo'=>'25.00',
    'Floresta'=>'10.00',
    'Glória'=>'14.00',
    'Guarujá'=>'25.00',
    'Higien&oacutepolis'=>'10.00',
    'Hípica'=>'25.00',
    'Humaitá'=>'10.00',
    'Ilha da Pintada'=>'19.00',
    'Independência'=>'10.00',
    'Ipanema'=>'22.00',
    'Partenon Puc'=>'15.00',
    'Pedra Redonda'=>'20.00',
    'Petrópolis'=>'10.00',
    'Ponta Grossa'=>'35.00',
    'Praia de Belas'=>'10.00',
    'Restinga'=>'35.00',
    'Rio Branco'=>'10.00',
    'Rubem Berta'=>'18.00',
    'Safira'=>'18.00',
    'Santa Cecília'=>'10.00',
    'Santa Tereza'=>'12.00',
    'Santana'=>'10.00',
    'Santo Agostinho'=>'15.00',
    'Santo Antônio'=>'10.00',
    'São Geraldo'=>'10.00',
    'São João'=>'10.00',
    'São José'=>'16.00',
    'Jardim Planalto'=>'12.00',
    'Jardim Protásio Alves'=>'15.00',
    'Juca Batista'=>'26.00',
    'Juca Batista Terra Ville'=>'35.00',
    'Lindóia'=>'10.00',
    'Lami'=>'45.00',
    'Lomba do Pinheiro pda 10'=>'22.00',
    'Lomba do Pinheiro pda 21'=>'26.00',
    'Medianeira'=>'12.00',
    'Menino Deus'=>'12.00',
    'Moinhos'=>'10.00',
    'Mont Serrat'=>'25.00',
    'Navegantes'=>'10.00',
    'Nonoai'=>'15.00',
    'Parque dos Maias'=>'17.00',
    'Passo da Areia'=>'10.00',
    'Partenon'=>'12.00',
    'Itu Sabará'=>'14.00',
    'Jardim Botânico'=>'10.00',
    'Jardim Carvalho'=>'15.00',
    'Jardim Europa'=>'10.00',
    'Jardim Floresta'=>'10.00',
    'Jardim Lindóia'=>'10.00',
    'Jardim Leopoldina'=>'15.00',
    'Jardim do Salso'=>'10.00',
    'São Sebastião'=>'10.00',
    'Sarandi'=>'12.00',
    'Serraria'=>'30.00',
    'Teresópolis'=>'14.00',
    'Três Figueiras'=>'10.00',
    'Vila Nova'=>'20.00',
    'Tristeza'=>'17.00',
    'Vila Ipiranga'=>'10.00',
    'Vila Jardim'=>'12.00');



    $result = Mage::getModel('shipping/rate_result');

    foreach($bairros as $chave => $valor )
    {
    $shippingPrice = $valor;

    $shippingPrice = $this->getFinalPriceWithHandlingFee($shippingPrice);

    $method = Mage::getModel('shipping/rate_result_method');

    $method->setCarrier($this->_code);
    $method->setCarrierTitle($this->getConfigData('title'));
    $method->setMethod($chave);
    $method->setMethodTitle($chave);
    if ($request->getFreeShipping() === true || $request->getPackageQty() == $this->getFreeBoxes()) {
    $shippingPrice = '0.00';
    }
    $method->setPrice($shippingPrice);
    $method->setCost($shippingPrice);

    $result->append($method);
    }

    return $result;
    }



    public function getAllowedMethods()
    {
    return array($this->_code => $this->getConfigData('title'));
    }

    }
  • Alessandra Moderador Global
    Bruno, o problema está na linha:

                'Assunção'=>'18.00',


    Aonde você não trocou o ç pelo caractere em html.
  • disse:

    Bruno, o problema está na linha:

                'Assunção'=>'18.00',


    Aonde você não trocou o ç pelo caractere em html.
    Oque uma simples letra não faz com o nosso código :lol: funcionou aqui! Valeu, percebi que ele não atualiza os valores do carrinho,estranho :shock:
  • Jonatan Machado Moderador Global, Administrador
    Acho que você não poderá utilizar caracteres especiais, por isso que alguns não atualiza o valor, ou terq que modificar o modulo para rodar com caracteres
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
Entre ou Registre-se para fazer um comentário.