скидки в зависимости от суммы заказа

Тема в разделе "Магазины, электронная коммерция", создана пользователем Svetlanina, 05.11.2008.

  1. Offline

    Svetlanina Недавно здесь

    Регистрация:
    06.10.2008
    Сообщения:
    3
    Симпатии:
    0
    Скажите пожалуйста, есть ли возможность в Virtuemart сделать несколько видов скидок, в зависимости от суммы заказа? Например, при заказе на 100 рублей - скидка 5%, при заказе на 200 рублей - 10% и т.д.
     
  2.  
  3. Offline

    bunak Недавно здесь

    Регистрация:
    04.11.2007
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Женский
    тоже интересно
     
  4. Offline

    shpi0nka Недавно здесь

    Регистрация:
    11.11.2007
    Сообщения:
    3
    Симпатии:
    0
    тоже озадачилась вопросом, стандартными средствами никак
    наверно надо что-то править в корзине
     
  5. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской
    да стандартно никак нужно в basket.php править - там сессия корзины. делал когдато такую модификацию.
     
  6. Offline

    FRITZ Недавно здесь

    Регистрация:
    21.03.2008
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Вот мануал как сделать скидку "от суммы заказа". Но тут на одну скидку. На несколько сумм надо немного переделать математическую часть.




    Шаг 1. Добавляем это в russian.php после class vmLanguage extends vmAbstractLanguage {

    /** GLOBAL DISCOUNT **/

    var $_PHPSHOP_GLOBAL_DISCOUNT = 'Скидка';
    var $_PHPSHOP_GLOBAL_DISCOUNT_INFO = 'Введите скидку на товар (только цифры). Т.е. если скидка 10% введите 10.';

    var $_PHPSHOP_GLOBAL_DISCOUNTABOVE = 'Минимальная сумма для действия скидки';
    var $_PHPSHOP_GLOBAL_DISCOUNT_ABOVEINFO = 'Введите минимальную сумму для действия скидки (только цифры).';

    /**End of GLOBAL DISCOUNT **/


    Шаг 2. В файле ps_config.php после строки $my_config_array = array( добавляем:

    /** GLOBAL DISCOUNT **/

    "GLOBAL_DISCOUNT" => "conf_GLOBAL_DISCOUNT",
    "GLOBAL_DISCOUNTABOVE" => "conf_GLOBAL_DISCOUNTABOVE",

    /** End of GLOBAL DISCOUNT **/


    Шаг 3. В admin.show_cfg.php в конце между $tabs->endTab(); и $tabs->endPane(); добавляем: (таким образом в глобальной конфигурации виртуемарта добавится ещё одна вкладка, в которой будет задана скидка)

    /** GLOBAL DISCOUNT **/

    $tabs->startTab( "Скидка \"от суммы заказа\"", "globaldiscount-page");
    ?>
    <table class="adminform">
    <?php ?>
    <tr>
    <td class="labelcell"><label for="_VM_GLOBAL_DISCOUNT"><?php echo $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT ?> </label></td>
    <td style="width:100px;"><input style="width:60px;" type="text" name="conf_GLOBAL_DISCOUNT" class="inputbox" value="<?php echo GLOBAL_DISCOUNT ?>" />%</td>
    <td><?php echo mm_ToolTip( $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT_INFO ) ?></td>
    </tr>

    <tr>
    <td class="labelcell"><label for="_VM_GLOBAL_DISCOUNTABOVE"><?php echo $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNTABOVE ?> </label></td>
    <td style="width:100px;"><input style="width:60px;" type="text" name="conf_GLOBAL_DISCOUNTABOVE" class="inputbox" value="<?php echo GLOBAL_DISCOUNTABOVE ?>" /></td>
    <td><?php echo mm_ToolTip( $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT_ABOVEINFO ) ?></td>
    </tr>

    <?php ?>
    </table>
    <?php
    $tabs->endTab();

    /** End of GLOBAL DISCOUNT **/


    Шаг 4. В basket.php после $product_rows = Array(); добавляем:

    /** GLOBAL DISCOUNT **/
    $disc = GLOBAL_DISCOUNT;
    $disc_2 = $disc/100;
    $disc_1 = 1-$disc_2;
    $discabove = GLOBAL_DISCOUNTABOVE;
    $discadded=0;
    $discstate="";
    /** End of GLOBAL DISCOUNT **/


    а после } // End of for loop through the Cart добавляем:

    /** GLOBAL DISCOUNT **/
    if ($total>=$discabove) {
    $total = $total*$disc_1;
    $discadded=1;
    $discstate = "ВЫ ПОЛУЧИЛИ СКИДКУ " . $disc . "%!!";
    }
    /** End of GLOBAL DISCOUNT **/


    перед строкой $tax_total += $shipping_tax; добавляем:

    /** GLOBAL DISCOUNT **/
    if ($discadded = 1) {
    $tax_total = $tax_total*$disc_1;
    }
    /** End of GLOBAL DISCOUNT **/


    такие же изменения надо сделать с файлом ro_basket.php


    Шаг 5. В basket_b2c.html.php после условия <?php if($discount_after) { } ?> добавляем:

    <?php /** GLOBAL DISCOUNT **/ ?>
    <tr>
    <td colspan="7" align="center" valign="middle"><h3><strong><?php echo $discstate; ?> </strong></h3></td>
    </tr>
    <?php /** End of GLOBAL DISCOUNT **/ ?>


    такие же изменения надо сделать с файлом ro_basket_b2c.html.php


    Мой Дополнительный 6й Шаг. Для того, чтобы в заказах (в админке) сумма была со скидкой.

    В файле ps_checkout.php перед строкой $order_tax *= $discount_factor; добавляем:


    /** GLOBAL DISCOUNT **/

    if ( $order_total >= GLOBAL_DISCOUNTABOVE ) $order_total -= ($order_total*GLOBAL_DISCOUNT)/100;

    /** End of GLOBAL DISCOUNT **/
     
  7. Offline

    FRITZ Недавно здесь

    Регистрация:
    21.03.2008
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Вот ссылка где я выложил мануал как сделать скидку "от суммы заказа". Но тут на одну скидку. На несколько сумм надо немного переделать математическую часть.

    http://joomla-support.ru/showthread.php?p=65688#post65688
     
  8. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской
    есть вариант расчета доставки в зависимости от веса)))).меняем вес на сумму заказа в этом варианте и подменяем вес на сумму в checkout.index...должно работать)) и несколько вариантов на "от и до".
     
  9. Offline

    Petrovich123 Пользователь

    Регистрация:
    24.02.2009
    Сообщения:
    84
    Симпатии:
    1
    Пол:
    Мужской
    А не в курсе что нужно дописать, чтобы эта скидка распространялась на покупателей которые отнесены ТОЛЬКО к группе -default-???
     
  10. Offline

    radugamn Недавно здесь

    Регистрация:
    07.05.2010
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Женский
    Уважаемые форумчане!

    Я сделала скидку в зависимости от суммы заказа через правку файла basket.php, и для первых 3х этапов оформления заказа итоговая сумма замечательно считается с учетом скидки.
    Однако на самом последнем шаге, который называется "Завершить заказ", сумма вновь становится прежней, без скидки!!! =O
    Понимаю, что это где-то в отдельном файле php правится, не в basket.php и не в basket_b2c.html.php (там лежат только табличные "шаблоны").

    Вопрос: где это может находиться? Может кто-то уже сталкивался...


    Вопрос снимается - оказывается, надо было исправить файл ro_basket.php тоже - невнимательно прочла инструкцию.

    :)
     
    Последнее редактирование: 31.05.2010

Поделиться этой страницей

Загрузка...