Joomla 1.5 Скидка на 3 позиции в зависимости от цены в корзине(Готовое можно скачать)и прошу помочь!

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

  1. Offline

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

    Регистрация:
    01.10.2010
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Выкладываю уже сделанную корзину и все ниже приведенные строки уже там вписаны
    Брал с разных источников и по логике вещей сделал то что получилось(PhP не знаю)


    Скидка добавляется,Сообщение о скидке выводится(за пределами окна корзины(Сверху)),
    скидка фиксируется до окончания заказа!!!
    но надо ввести все 3 значения в настройках иначе переменным не от куда будет браться.

    1,5,6 шаг не работаю как надо...
    ____________________________
    1) Я совсем не понял куда это вставлять,вставил куда глаза глядели(Прошу объяснить куда надо и как)

    5)что только не пробовал,все впустую - не выдает надпись и все тут...
    Как я понял требуется вывод Переменной $discstate которая в данной сессии уже не присутствует из за этого и не пишет то что требуется
    (прошу помочь)

    6)в Админке в заказе выдается только цена без скидки (Прошу помочь)

    Сделал что мог прошу помочь довести до ума...!




    Шаг 1. Добавляем это в russian.php после 'CHARSET' => 'utf-8', вставляем:
    ==================================================
    'PHPSHOP_GLOBAL_DISCOUNT' => 'Скидка',
    'PHPSHOP_GLOBAL_DISCOUNT_INFO' => 'Введите скидку на товар (только цифры). Т.е. если скидка 10% введите 10',
    'PHPSHOP_GLOBAL_DISCOUNTABOVE' => 'Минимальная сумма для действия скидки',
    'PHPSHOP_GLOBAL_DISCOUNT_ABOVEINFO' => 'Введите минимальную сумму для действия скидки (только цифры)',

    'PHPSHOP_GLOBAL_DISCOUNT2' => 'Скидка',
    'PHPSHOP_GLOBAL_DISCOUNT_INFO2' => 'Введите скидку на товар (только цифры). Т.е. если скидка 10% введите 10',
    'PHPSHOP_GLOBAL_DISCOUNTABOVE2' => 'Минимальная сумма для действия скидки',
    'PHPSHOP_GLOBAL_DISCOUNT_ABOVEINFO2' => 'Введите минимальную сумму для действия скидки (только цифры)',

    'PHPSHOP_GLOBAL_DISCOUNT3' => 'Скидка',
    'PHPSHOP_GLOBAL_DISCOUNT_INFO3' => 'Введите скидку на товар (только цифры). Т.е. если скидка 10% введите 10',
    'PHPSHOP_GLOBAL_DISCOUNTABOVE3' => 'Минимальная сумма для действия скидки',
    'PHPSHOP_GLOBAL_DISCOUNT_ABOVEINFO3' => 'Введите минимальную сумму для действия скидки (только цифры)',



    Шаг 2. В файле ps_config.php (administrator\components\com_virtuemart\classes)
    после строки $my_config_array = array( добавляем:
    ==================================================
    "GLOBAL_DISCOUNT" => "conf_GLOBAL_DISCOUNT",
    "GLOBAL_DISCOUNTABOVE" => "conf_GLOBAL_DISCOUNTABOVE",

    "GLOBAL_DISCOUNT2" => "conf_GLOBAL_DISCOUNT2",
    "GLOBAL_DISCOUNTABOVE2" => "conf_GLOBAL_DISCOUNTABOVE2",

    "GLOBAL_DISCOUNT3" => "conf_GLOBAL_DISCOUNT3",
    "GLOBAL_DISCOUNTABOVE3" => "conf_GLOBAL_DISCOUNTABOVE3",



    Шаг 3. В admin.show_cfg.php (\administrator\components\com_virtuemart\html)
    в конце между $tabs->endTab(); и $tabs->endPane();
    добавляем: (таким образом в глобальной конфигурации виртуемарта добавится ещё одна вкладка, в которой будет задана группа скидка)
    ==================================================
    $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>

    <tr>
    <td class="labelcell"><label for="_VM_GLOBAL_DISCOUNT2"><?php echo $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT2 ?> </label></td>
    <td style="width:100px;"><input style="width:60px;" type="text" name="conf_GLOBAL_DISCOUNT2" class="inputbox" value="<?php echo GLOBAL_DISCOUNT2 ?>" />%</td>
    <td><?php echo mm_ToolTip( $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT_INFO2 ) ?></td>
    </tr>
    <tr>
    <td class="labelcell"><label for="_VM_GLOBAL_DISCOUNTABOVE2"><?php echo $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNTABOVE2 ?> </label></td>
    <td style="width:100px;"><input style="width:60px;" type="text" name="conf_GLOBAL_DISCOUNTABOVE2" class="inputbox" value="<?php echo GLOBAL_DISCOUNTABOVE2 ?>" /></td>
    <td><?php echo mm_ToolTip( $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT_ABOVEINFO2 ) ?></td>
    </tr>

    <tr>
    <td class="labelcell"><label for="_VM_GLOBAL_DISCOUNT3"><?php echo $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT3 ?> </label></td>
    <td style="width:100px;"><input style="width:60px;" type="text" name="conf_GLOBAL_DISCOUNT3" class="inputbox" value="<?php echo GLOBAL_DISCOUNT3 ?>" />%</td>
    <td><?php echo mm_ToolTip( $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT_INFO3 ) ?></td>
    </tr>
    <tr>
    <td class="labelcell"><label for="_VM_GLOBAL_DISCOUNTABOVE3"><?php echo $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNTABOVE3 ?> </label></td>
    <td style="width:100px;"><input style="width:60px;" type="text" name="conf_GLOBAL_DISCOUNTABOVE3" class="inputbox" value="<?php echo GLOBAL_DISCOUNTABOVE3 ?>" /></td>
    <td><?php echo mm_ToolTip( $VM_LANG->_PHPSHOP_GLOBAL_DISCOUNT_ABOVEINFO3 ) ?></td>
    </tr>
    <?php ?>
    </table>
    <?php
    $tabs->endTab();





    Шаг 4. В basket.php (administrator\components\com_virtuemart\htm)
    после $product_rows = Array(); добавляем:
    ==================================================
    $disc = GLOBAL_DISCOUNT;
    $disc2 = GLOBAL_DISCOUNT2;
    $disc3 = GLOBAL_DISCOUNT3;

    $disc_2 = $disc/100;
    $disc_3 = $disc2/100;
    $disc_5 = $disc3/100;

    $disc_1 = 1-$disc_2;
    $disc_4 = 1-$disc_3;
    $disc_6 = 1-$disc_5;

    $discabove = GLOBAL_DISCOUNTABOVE;
    $discabove2 = GLOBAL_DISCOUNTABOVE2;
    $discabove3 = GLOBAL_DISCOUNTABOVE3;
    $discadded=0;
    $discstate="";


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

    if (($total>=$discabove) && ($total < $discabove2)) {
    $total = $total*$disc_1;
    $discadded=1;
    $discstate = "ВЫ ПОЛУЧИЛИ СКИДКУ " . $disc . "%!!";
    }
    else
    {
    $discadded=0;
    $discstate = "При покупке на 1000$ и выше, вы получите " . $disc . "% скидку";
    }

    if (($total>=$discabove2) && ($total < $discabove3)) {
    $total = $total*$disc_4;
    $discadded=1;
    $discstate = "ВЫ ПОЛУЧИЛИ СКИДКУ " . $disc2 . "%";
    }

    if ($total>=$discabove3) {
    $total = $total*$disc_6;
    $discadded=1;
    $discstate = "ВЫ ПОЛУЧИЛИ СКИДКУ " . $disc3 . "%";
    }

    if ($discadded=1) {
    $discadded=1;
    }
    echo $discstate;


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




    Шаг 5. В basket_b2c.html.php (components\com_virtuemart\themes\default\templates\basket)
    после условия <?php if($discount_after) { } ?> добавляем:
    ==================================================
    <tr>
    <td colspan="7" align="center" valign="middle"><h3><strong><?php echo $discstate; ?> </strong></h3></td>
    </tr>


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



    Шаг 6. В файле ps_checkout.php (administrator\components\com_virtuemart\classes)
    перед строкой $order_tax *= $discount_factor; добавляем:
    ==================================================
    if ( $order_total >= GLOBAL_DISCOUNTABOVE ) $order_total -= ($order_total*GLOBAL_DISCOUNT)/100;



    ---------------------------------------------------------------------------------------------------------------------------------
     

    Вложения:

  2.  
  3. Offline

    Алекс2807 Недавно здесь

    Регистрация:
    02.03.2012
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте!
    Прошел все шаги, скидка работает. Но есть НО!

    1. После нажатия Оформить заказ на странице просмотра заказа выводится полная стоимость без скидки.
    2. В админке все равно выводится полная стоимость товара.


    Какие нужно внести изменения, чтобы отображалась сумма со скидкой?
    Также какие изменения нужно внести чтобы сумма со скидкой отображалась в письме, отправляемом покупателю?

    Версии:
    Джумла 1.5.22
    Виртуамарт 1.1.8
     

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

Загрузка...