Последние темы


Пользовательская (предложенная им) цена.

  • Друзья, доброго времени суток!

    Подскажите, пожалуйста, как реализовать пользовательскую цену (ту, которую он вводит сам).

    Имеются доп параметры param-edit с разными ценами.
    Добавил туда вариант "Свой бюджет" без цены, по клику на неё показываю input type=number , куда предлагаю юзеру ввести свою цену.
    Предполагал, что при добавлении в корзину, параметры цены берутся из value ипнутов param-edit, и сделал так чтобы при изменении поля его значение приклеивается к value "Своей цены". Однако , кликая на сабмит, в корзину передается цена по умолчанию.

    Халп, плиз, понять как передать в корзину кастомную цену!

    <h3>Выберите бюджет</h3>
     <div class="dopPrice vip" style="display: block">	
       [[*dopPrice:replace=`[[+id]]==[[*id]]`]]
    </div>
    <input type="number" id="numbers" placeholder="Ваш вариант"/>
    
    if (chpr.target.value === "6__") {
         $('#numbers').css('display','block').animate({opacity: 1}, 500);
    } 
    else {
      $('#numbers').animate({opacity: 0}, 500, function (){
         $(this).css('display','none');
      });
    }
    
    $( '#numbers' ).change(function() {
     $('div.dopPrice div:last-child input').attr('value', '6__' + $(this).val() );
    });
    

    0_1524506517549_2018-04-23_20-58-19.png

  • Написать плагин на событие "OnSHKgetProductPrice".

  • @Andchir Добрый день! Для указания цены в корзине написал плагин на событие "OnSHKgetProductPrice", как в примере по ссылке выше.
    Вызов в форме:

    <input id="itemprice" name="itemprice" size="30" class="textfield" type="text" value="[[!+fi.itemprice]]" />
    

    При отправке формы использую Formit:

    <form method="post" action="[[~[[*id]]]]" id="shopOrderFormCart">
    ...
    					[[!FormIt?				
    						&hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`
    						&emailTpl=`shopOrderReportCart`
    						&fiarTpl=`shopOrderReportCart`
    						&emailSubject=`...`
    						&fiarSubject=`...`
    						&emailTo=`...`
    						&validate=`itemprice:required,firstname:required,lastname:required,email:required,phone:required`
    						&errTpl=`<br /><span class="error">[[+error]]</span>`
    						&submitVar=`submitorder`								
    						&redirectTo=`498`
    						&store=`1`
    					]]			
    					[[!$shopOrderFormCart]]
    ...
    </form>
    

    В плагине пытаюсь читать значение поля:

    $amount = $_POST['itemprice'];
    

    И … по нулям, значение поля не приходит по какой-то причине. Буду благодарен за идею, спасибо.

  • @Roman-Dorokhov:

    При отправке формы использую Formit...

    Т.е. FormIt для отправки формы с полем пользовательской цены? Это зачем? Сначала надо добавить товар в корзину, для этого FormIt не нужен.

  • @Andchir Смысл в том, что заказчик попросил к сайту прикрутить возможность перевода средств, как "пожертвования". Для "пожертвования" я создал карточку товара с указанным именем и нулевой ценой. Логика работы - пользователь заполняет форму (Имя, Сумма...), нажимает кнопку "Оформить". По нажатию кнопки происходит вызов java-функции SHK.fillCart();.
    При заполнении корзины происходит событие OnSHKgetProductPrice, где мне необходимо передать в корзину введенную пользователем сумму. Далее, по логике работы, формируется заказ (запись в БД Shopkeeper). Затем переадресация в платежную систему.
    Собственно, весь огород ради того, чтобы учитывать в БД и такие переводы средств.

  • @Roman-Dorokhov
    Я так и не понял куда вы добавили поле с ценой.

  • @Andchir На форму оформления "пожертвования". ссылка

  • Похоже, что в этой форме у вас используется FormIt. Но, как я уже писал выше, он там не нужен. Сначала нужно добавить товар в корзину, тогда и будет срабатывать плагин. Формы добавления товара в корзину я у вас не увидел. Далее можно сделать хитрость, добавить форму (можно на этой же странице), где будет кнопка "Подтвердить" и скрытые поля, которые будут заполнены данными из предыдущей формы.
    В общем пока я не увидел даже намека на то, что Вы понимаете что делаете, поэтому дальше я не помощник.

  • @Andchir Спасибо. Получилось.

 

Последние комментарии

  • это какое значение и где его оставить?

    Значение, которое было по умолчанию.

    //Название поля ID родителя $cf_config['parent_field'] = 'resource_id';

    Читать далее
  • Лучше редактировать шаблоны через админку. Там есть чекбокс "Очистить системный кэш".

    0_1566302652339_screenshot_195.png

    Также кэш можно очистить в настройках. Нужно очищать после редактирования шаблонов.

    0_1566302673468_screenshot_196.png

    Ещё в настройках есть параметр "Тема шаблонов". Можно скопировать папку "default" и создать свои шаблоны.

    0_1566302871928_screenshot_197.png

    Читать далее
  • D

    @Andchir
    http://joxi.ru/GrqZwZ5i40xlqm

    "оставьте значение, которое было"

    это какое значение и где его оставить?

    Читать далее
  • K

    Я установил shopkeeper 4.0.6

    В папке templates\default пытаюсь менять шаблоны
    base.html.twig
    category.html.twig
    content-page.html.twig
    и т.д.

    Когда меняю содержимое – ничего не изменяется. Когда удаляю шаблон ошибка - Unable to find template – т.е. я меняю шаблоны в нужной папке

    Есть какой-то кэш? Как им управлять? Как правильно менять шаблоны?

    Читать далее