Перейти к содержимому


Фотография
* * * * * 1 Голосов

30% Предоплата на сайте


Лучший Ответ mr.varhola , 18 June 2018 - 17:53

В общем все получилось как было задумано, вдруг кому-то пригодится:

 

Задача была сделать 5 разных способов оплаты, 2 из которых должны давать скидку, один 3% а второй 70%, пример на сайте: http://joxi.ru/Vm64OejCD4wRPA(на скрине 3 способа, но основную суть они передают, ещё два выводятся для другого способа доставки.)

 

CB9TOIIIA натолкнул на мысль использовать промокоды, так как мне потребовалось использование по сути трех разных скидок отлично подошел элемент: Разные промо-коды для скидки в одном поле

В админке он выглядит так: http://joxi.ru/8AnbJD1ijz5NDA

 

После того как нужные промокоды были созданны идем в файл \media\zoo\applications\jbuniversal\templates\uikit\renderer\basket\index.php

там скрываем вывод способов оплаты и выводим их муляжи, у меня это выглядит так:

<div class="cp-payment">
    <div class="cpp-variant1 cpp-variant">
        100% Предоплата на сайте онлайн (скидка 3%)
    </div>
    <div class="cpp-variant2 cpp-variant">
        30% Предоплата на сайте онлайн
    </div>
    <div class="cpp-variant3 cpp-variant">
        Оплата по выставленному банковскому счету
    </div>
    <div class="cpp-variant4 cpp-variant">
        Наличными курьеру, после примерки
    </div>
    <div class="cpp-variant5 cpp-variant">
        Банковской картой курьеру, после примерки
    </div>
</div>
<div class="cp-paymentReal" style="display: none;">
    <?php echo $this->partial('basket', 'payment'); ?>
</div>

Далее в конце этого-же файла немного js:

function promo(value1, value2, value3){
    var promocode = value1;
    var curbtn = value2;
    var curship = value3;
    jQuery('.cp-payment >div').removeClass('active');
    jQuery(value2).addClass('active');
    jQuery(value3).click();
    /*--//--*/
    jQuery('input[name*="01bef2fa-8aae-4431-8231-c530c6f68a3a"]').val(promocode);
    setTimeout(function() {
        jQuery('div[class*="01bef2fa-8aae-4431-8231-c530c6f68a3a"] .jsSendCode').click();
    }, 100);            
}
jQuery( document ).ready(function() {
    promo('OPLATA3','.cpp-variant1','#jbcart-baf428c6-e3d8-4f07-a82a-a47d381ab320');
});
jQuery('.cpp-variant1').click(function(){
    promo('OPLATA3','.cpp-variant1','#jbcart-baf428c6-e3d8-4f07-a82a-a47d381ab320');
});
jQuery('.cpp-variant2').click(function(){
    promo('OPLATA30','.cpp-variant2','#jbcart-3dc9c688-8d99-426b-aafb-4d973fff0c94');
});
jQuery('.cpp-variant3').click(function(){
    promo('OPLATA0','.cpp-variant3','#jbcart-52916eee-501c-4469-bf48-f913136ea1b2');
});
jQuery('.cpp-variant4').click(function(){
    promo('OPLATA0','.cpp-variant4','#jbcart-7537ebee-217f-4e60-a564-3f62533546c0');
});
jQuery('.cpp-variant5').click(function(){
    promo('OPLATA0','.cpp-variant5','#jbcart-d1836587-8d21-478b-87a7-821b3efe15b9');
});

В функцию promo() мы передаем нужный промокод и применяем его, передаем класс нажатой кнопки(муляжа) и делаем её активной, передаем id нужного способа оплаты и выбераем его, айдишку можно посмотреть так: http://joxi.ru/brRK1OqtJ7g3Pm

Далее уже просто css

Перейти к сообщению


Сообщений в теме: 8

#1 mr.varhola

mr.varhola

Отправлено 17 June 2018 - 13:48

Задача следующая, сделать на сайте возможность 100% оплаты и дополнительно 30% от суммы, т.е чтобы клиент в момент заказа мог сам выбрать сколько он готов оплатить на сайте, 100% или 30% - возможно ли такое реализовать и как?

 

Если не совсем корректно и понятно спросил, вот наглядно: http://joxi.ru/a2XnqyjH1wYlBr:)


  • 0

#2 CB9TOIIIA

CB9TOIIIA

Отправлено 17 June 2018 - 14:10

может типо промокодом: OPLATA30 - она и виднеться будет... а сделать кликом - клик JS заполняет поле - далее уже пересчет идет.


  • 2

#3 mr.varhola

mr.varhola

Отправлено 17 June 2018 - 14:11

хм, а это мысль)

а в админке потом в заказе будет видно что человек оплатил только 30% ?


  • 0

#4 CB9TOIIIA

CB9TOIIIA

Отправлено 17 June 2018 - 14:12

хм, а это мысль)

а в админке потом в заказе будет видно что человек оплатил только 30% ?

 

ну в промокод то попадает - а в адмике я  так думаю возможно почти везде сделать условие проверки промокода и ЖИРНЫМ ЖЕЛТЫМ написать ПРЕДОПЛАТА 30%


  • 1

#5 mr.varhola

mr.varhola

Отправлено 17 June 2018 - 14:28

Согласен)


  • 0

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 17 June 2018 - 14:31

отлично :) как сделаете поделитесь рецептом)


  • 0

#7 mr.varhola

mr.varhola

Отправлено 17 June 2018 - 14:44

обязательно))


  • 0

#8 mr.varhola

mr.varhola

Отправлено 18 June 2018 - 17:53   Лучший Ответ

В общем все получилось как было задумано, вдруг кому-то пригодится:

 

Задача была сделать 5 разных способов оплаты, 2 из которых должны давать скидку, один 3% а второй 70%, пример на сайте: http://joxi.ru/Vm64OejCD4wRPA(на скрине 3 способа, но основную суть они передают, ещё два выводятся для другого способа доставки.)

 

CB9TOIIIA натолкнул на мысль использовать промокоды, так как мне потребовалось использование по сути трех разных скидок отлично подошел элемент: Разные промо-коды для скидки в одном поле

В админке он выглядит так: http://joxi.ru/8AnbJD1ijz5NDA

 

После того как нужные промокоды были созданны идем в файл \media\zoo\applications\jbuniversal\templates\uikit\renderer\basket\index.php

там скрываем вывод способов оплаты и выводим их муляжи, у меня это выглядит так:

<div class="cp-payment">
    <div class="cpp-variant1 cpp-variant">
        100% Предоплата на сайте онлайн (скидка 3%)
    </div>
    <div class="cpp-variant2 cpp-variant">
        30% Предоплата на сайте онлайн
    </div>
    <div class="cpp-variant3 cpp-variant">
        Оплата по выставленному банковскому счету
    </div>
    <div class="cpp-variant4 cpp-variant">
        Наличными курьеру, после примерки
    </div>
    <div class="cpp-variant5 cpp-variant">
        Банковской картой курьеру, после примерки
    </div>
</div>
<div class="cp-paymentReal" style="display: none;">
    <?php echo $this->partial('basket', 'payment'); ?>
</div>

Далее в конце этого-же файла немного js:

function promo(value1, value2, value3){
    var promocode = value1;
    var curbtn = value2;
    var curship = value3;
    jQuery('.cp-payment >div').removeClass('active');
    jQuery(value2).addClass('active');
    jQuery(value3).click();
    /*--//--*/
    jQuery('input[name*="01bef2fa-8aae-4431-8231-c530c6f68a3a"]').val(promocode);
    setTimeout(function() {
        jQuery('div[class*="01bef2fa-8aae-4431-8231-c530c6f68a3a"] .jsSendCode').click();
    }, 100);            
}
jQuery( document ).ready(function() {
    promo('OPLATA3','.cpp-variant1','#jbcart-baf428c6-e3d8-4f07-a82a-a47d381ab320');
});
jQuery('.cpp-variant1').click(function(){
    promo('OPLATA3','.cpp-variant1','#jbcart-baf428c6-e3d8-4f07-a82a-a47d381ab320');
});
jQuery('.cpp-variant2').click(function(){
    promo('OPLATA30','.cpp-variant2','#jbcart-3dc9c688-8d99-426b-aafb-4d973fff0c94');
});
jQuery('.cpp-variant3').click(function(){
    promo('OPLATA0','.cpp-variant3','#jbcart-52916eee-501c-4469-bf48-f913136ea1b2');
});
jQuery('.cpp-variant4').click(function(){
    promo('OPLATA0','.cpp-variant4','#jbcart-7537ebee-217f-4e60-a564-3f62533546c0');
});
jQuery('.cpp-variant5').click(function(){
    promo('OPLATA0','.cpp-variant5','#jbcart-d1836587-8d21-478b-87a7-821b3efe15b9');
});

В функцию promo() мы передаем нужный промокод и применяем его, передаем класс нажатой кнопки(муляжа) и делаем её активной, передаем id нужного способа оплаты и выбераем его, айдишку можно посмотреть так: http://joxi.ru/brRK1OqtJ7g3Pm

Далее уже просто css


Сообщение отредактировал mr.varhola: 18 June 2018 - 17:55

  • 3

#9 CB9TOIIIA

CB9TOIIIA

Отправлено 18 June 2018 - 17:56

Крутяк :)


  • 0




Click to return to top of page in style!