Jump to content


Photo
- - - - -

множитель штук продукта

корзина заказ товар

19 replies to this topic

#1 polmaster

polmaster
  • JBZoo User (rus)
  • User rate: 0
  • posts: 81
  • topics: 19

Posted 16 March 2015 - 13:46

В настоящем опция товара  "Добавить в корзину" имеет стандартный вид: количество выбирается как 1,2,3 и т.д.

Рядом присутствует  значение поля Площадь упаковки:

b9603017d524.gif

 

Возможно ли штатными средствами движка к значению Количество добавить МНОЖИТЕЛЬ "значение конкретного поля" (в данном случае -  Площадь упаковки) так, чтобы вместо единиц выводилась бы произведение, кратное значению выбранного поля?

 

типа:
1 х 2,14496 = 2,14496
2 х 2,14496 = 4, 28992

3 х 2,14496 = и т.д.

 

И если штатными средствами нельзя, то КАК можно?


Edited by polmaster, 16 March 2015 - 13:48.

  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 17 March 2015 - 10:50

Первым делом вам стоит воспользоваться этим рецептом
http://forum.jbzoo.c...go-kolichestva/

Далее посмотрите этот файл
jbuniversal\elements\jbpriceadvance\jbpriceadvance.php
rd8f_200x0.png

        $quantityStep = (float)$this->config->get('quantity_step', 1);
        if ($stepElement = $this->getItem()->getElement('ELEMENT_ID')) {
            $stepData = $stepElement->data();
            $quantityStep = $stepData['value']; // один из вариантов
            $quantityStep = $stepData[0]['value']; // один из вариантов
        }
И сделайте так
is3p_200x0.png

Подобная задача у меня в первой, возможно я не все учел.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 polmaster

polmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 81
  • topics: 19

Posted 17 March 2015 - 12:40

предложенным по ссылке рецептом воспользоваться не вижу возможности:

мой множитель - (общая площадь досок в упаковке) разнится у каждой Категории.

 

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

 

А вот предложенный код обязательно попробую.


Edited by polmaster, 17 March 2015 - 14:44.

  • 0

#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 17 March 2015 - 12:57

Рецепт позволяет работать с дробным количеством, иначе получится только с целочисленными.

2 х 2,14496 = 4, 28992

Кажется вам это и нужно.


А мой код добавляет возможность выбора шага из произвольного поля.
Какое именно поле - указывается через ELEMENT_ID (код поля в панели управления)
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 polmaster

polmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 81
  • topics: 19

Posted 17 March 2015 - 14:48

видимо, я не понял взаимосвязь рецепта и кода. Спасибо.

Но есть проблема - с 420-ой строки код файла у меня отличается от вашего на скриншоте (разные версии?):

 

9dd79758763ac8434baea3c0bfdf3443.gif

 

Что в таком случае я должен изменить?


Edited by polmaster, 17 March 2015 - 20:33.

  • 0

#6 polmaster

polmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 81
  • topics: 19

Posted 18 March 2015 - 11:17

по причине разности кода в указанном файле  jbuniversal\elements\jbpriceadvance\jbpriceadvance.php
- после указанных дополнений (и даже после полной синхронизации участка кода со скриншота с аналогичным участком в моём файле) -

никаких изменений в интерфейсе настройки поля не происходит, очерченных (в рецепте) красной рамкой полей не наблюдается и при выборе количества продукта тоже ничего не меняется (видимо, нужно заменить весь файл?)


Edited by polmaster, 19 March 2015 - 14:41.

  • 0

#7 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 18 March 2015 - 16:05

Код на моем скриншоте взят из файлов рецепта, т.к именно его нужно модифицировать (архив quantity_1_1v.zip)
Вы использовали архив из той темы?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 polmaster

polmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 81
  • topics: 19

Posted 18 March 2015 - 17:51

спасибо. Когда я впервые прочитал, то посмотрел на дату и подумал, что поскольку я скачивал сам JBZoo позже статьи, то стало быть устанавливать не надо... ибо, наверное, эта доработка уже интегрирована  в сборку...


Edited by polmaster, 19 March 2015 - 09:42.

  • 0

#9 polmaster

polmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 81
  • topics: 19

Posted 19 March 2015 - 09:36

рецепт применил:

d028db39c3dd1c7630ec79988370c0b1.gif

 

согласно вашей инструкции сделал замену в коде,

после чего попробовал (потому как не уверен в правильном действии) :

  1. запустить "как есть" (ничего не изменилось)
  2. подставить требуемое значение ID в поле Множитель для количества (подставилось просто как 4 цифры множителя)
  3. заменить в коде  'ELEMENT_ID' требуемым значением (наиболее вероятное действие):

206d7dadc5fa2db4c4adee0d94e2d0df.gif

 

a0909e93a8d9462edda692b78bb6d282.gif

 

но и последняя третья замена  никакого ощутимого результата не дала:

работу текущей версии кода можно посмотреть, например, на этой странице продукта

 

После подстановки значения вместо 'ELEMENT_ID' начинает глючить счётчик в шаблоне FULL.

Но, например, тут, во всплывающем окне (по клику на кнопке "Добавить в корзину"), счетчик работает как обычно.

 

Что я делаю не так?


Edited by polmaster, 19 March 2015 - 10:03.

  • 0

#10 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 20 March 2015 - 12:20

Добрый день,

Скорее всего дело в том, что в программировании десятичный разделитель - это точка, а не запятая. Всегда.

У вас на странице вставляется именно запятая, соответственно количество распознается не правильно.
xo8d_200x0.png

По хорошему, все переменные от пользователя должны отчищаться от посторонних символов.
$var = (float)trim(str_replace(',', '.', $var));
К сожалению, без доступа к коду вашего сайта я не смогу сказать большего.
Можете дать мне временный FTP доступ к вашему сайту?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.






Also tagged with one or more of these keywords: корзина, заказ, товар

Click to return to top of page in style!