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


Фотография
- - - - -

Настройка логики кол-ва для каждого товара: min, max, шаг


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

#11 demfi

demfi

Отправлено 10 May 2016 - 09:31

дополнение: я сделал копию всего каталога Catalog, переименовал его (в amo) и настроил новое приложение на его шаблон.


  • 0

#12 Cheren-dow

Cheren-dow

Отправлено 10 May 2016 - 21:18

Но как только перехожу в корзину, то блок кол-во начинает прибавлять по 1, а не по 10. Глюк?

Элемент кол-ва на странице корзины - это совершенно другой элемент и ни как не относится к таким шаблонам как тизер или фул, для данного элемента все товары в заказе одного типа. Придется делать хак, и вручную устанавливать минимальные значения. Откройте файл:

\media\zoo\applications\jbuniversal\framework\classes\cart\jborder.php

найдите:

if ($editMode) {
    $itemHtml['quantityEdit'] = $jbhtml->quantity($quantity, $cartItem->find('params._quantity', array()));
}

И замените на это код:

if ($editMode) {
    $options = $cartItem->find('params._quantity', array());

    switch ($cartItem->item->type) {
        case 'phone': // для типа с псевдонимом phone
            $options['step'] = 10;
            break;

        case 'auto': // для типа с псевдонимом auto
            $options['step'] = 18;
            break;
    }

    $itemHtml['quantityEdit'] = $jbhtml->quantity($quantity, $options);
}

  • 0
Изображение
 

#13 demfi

demfi

Отправлено 11 May 2016 - 10:11

Спасибо. Заработало!

Сейчас приходится настраивать элемент кол-ва в 3-х местах: тизер, фул и корзина (\media\zoo\applications\jbuniversal\framework\classes\cart\jborder.php) у каждого типа, что несколько расстраивает :-(

Планируется ли доработки, чтобы настроил в одном типе этот элемент и забыл ?

 

Т.к. мне требовался не только шаг в корзине поправить, но и минимум, то итоговый код такой:

if ($editMode) {
                $options = $cartItem->find('params._quantity', array());
             
                switch ($cartItem->item->type) {
                    case 'shockadspartstype100x10': // для типа с псевдонимом shockadspartstype100x10
                        $options['step'] = 10;
                        $options['min'] = 100;
                        break;
             
                    case 'shockadspartstype1500x500': // для типа с псевдонимом shockadspartstype1500x500
                        $options['step'] = 500;
                        $options['min'] = 1500;
                        break;
                }
             
                $itemHtml['quantityEdit'] = $jbhtml->quantity($quantity, $options);
            }

Сообщение отредактировал demfi: 11 May 2016 - 10:12

  • 0

#14 Cheren-dow

Cheren-dow

Отправлено 11 May 2016 - 10:19

demfi, каждый шаблон имеет свой набор элементов - поэтому в каждом шаблоне необходимо делать настройки. Что касается элемента на странице корзины, то это совершенно другой элемент об этом я писал выше. Это можно было бы настраивать как минимум внутри, при заполнении материала, но для этого нужно изменять не одну строку кода элемента (PHP + API JBZoo) + хак для корзины.


  • 0
Изображение
 

#15 demfi

demfi

Отправлено 11 May 2016 - 11:49

В элементе кол-во заметил особенность, если мышкой по кнопкам +/- щёлкать, то всё нормально, а вот если руками вбить цифру, например 1800 и нажать Купить, то в корзину добавляется 1800, что не приемлемо для меня, у меня стоит шаг 500, мин: 1500, т.е. м.б. либо 1500, либо 2000, либо 2500 и т.д.

Это можно поправить?


  • 0

#16 Cheren-dow

Cheren-dow

Отправлено 11 May 2016 - 12:26

Это можно поправить?

Есть 2 варианта. 1- это дописывать JS код что бы при ручном вводе элемент правильно реагировал. Второй и простой - это через CSS скрыть форму от ручного ввода, примерно так:

jmje_200x0.jpg

opacity: 0 important; - так лучше

и тут:

 2ms5_200x0.jpg


  • 0
Изображение
 




Click to return to top of page in style!