Navigation Menu

Magento + Бесплатная доставка

Июл 12, 2011

Вполне возможно что в магазине может быть предусмотрена бесплатная доставка, и в случае если данный вариант активен, целесообразно что бы Magento показала только этот способ доставки. Под катом исходный код и немного текста Для начала открой файл app/design/frontend/YOUR_THEME/template/checkout/onepage/shipping/method/available.phtml Я буду рассказываю пример на основе дефолтного файла взятого по адресу app/design/frontend/base/default/template/checkout/onepage/shipping/method/available.phtml И так, Мы определим доступна ли бесплатная доставка, и если да то сделаем её по умолчанию Если доступна бесплатная доставка, то остальные методы доставки отображены не будут. Ну и собственно сам код который это реализует: [code lang=»php»] <?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: * * 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 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 for more information. * * @category    design * @package     base_default * @copyright   Copyright (c) 2010 Magento Inc. ( * @license  Academic Free License (AFL 3.0) */ ?> <?php if (!($_shippingRateGroups = $this->getShippingRates())): ?> <p><?php echo $this->__(‘Sorry, no quotes are available for this order at this time.’) ?></p> <?php else: ?> <dl> <?php $shippingMe = array(); ?> <?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?> <dt><?php echo $this->getCarrierName($code) ?></dt> <dd> <ul> <?php $_sole = $_sole &amp;amp;amp;amp;&amp;amp;amp;amp; count($_rates) == 1; foreach ($_rates as $_rate): ?> <?php // cheking for free shippimg method $shipping_method_is_free = false; if ($_rate->getCode() == ‘freeshipping_freeshipping’) { $this->getAddress()->setShippingMethod($_rate->getCode()); $shipping_method_is_free = true; }; ?> <?php $shippingMe[] = "’".$_rate->getCode()."’:".(float)$_rate->getPrice(); ?> <li> <?php if ($_rate->getErrorMessage()): ?> <ul><li><ul><li><?php echo $_rate->getErrorMessage() ?></li></ul></li></ul> <?php else: ?> <?php if ($_sole) : ?> <span><input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>" checked="checked" /></span> <?php else: ?> <input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>"...