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


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

Новый параметр к остатку товара

jbpriceadvance

Лучший Ответ SmetDenis , 13 February 2015 - 13:02

Но при этом если у товара цена =0 или >0 товар невозможно положить в корзину.

 

В функции isInStock нужно добавить доп проверку на "-2" по аналогии как это сдеелано внизу.

a6h7_200x0.png

 

return true - даст положить товар в корзину.

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


  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1 Lexx74

Lexx74

Отправлено 11 February 2015 - 15:18

Добрый день

 

в файле jbpriceadvance.php поставил проверку, что если остаток равен -2 тогда выводится текст "под заказ"

где то 2525 строка 
....
                } else if (!$balanceMode && $basicData['balance'] > 0) {

                    return $textYes;



                } else if ($basicData['balance'] == -1) {

                    return $textYes;

                } else if ($basicData['balance'] == -2) {

                    return $text2Yes;



                } else if ($basicData['balance'] == 0) {

                    return $textNo;

                }

            }



        } else if ($type == self::TYPE_SECONDARY) {



            if ($viewMode == self::BALANCE_VIEW_SIMPLE) {

                return $balance == 0 ? $textNo : $textYes;



            } else if ($viewMode == self::BALANCE_VIEW_FULL) {



                if ($balanceMode && $balance > 0) {

                    return '<span class="available">' . 'На складе ' . $balance . JText::_('JBZOO_JBPRICE_BALANCE_TEXT'). '</span>';



                } else if (!$balanceMode && ($balance > 0 || $balance == -1)) {

                    return $textYes;



                } else if ($balance == -1) {

                    return $textYes;

                } else if ($balance == -2) {

                    return $text2Yes;


                } else if ($balance == 0) {

                    return $textNo;

                }

            }

        }

...

Но при этом если у товара цена =0 или >0 товар невозможно положить в корзину.

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

 

1. Как мне дописать проверку, что если остаток -2 и цена =0 или >0, выводился статус "под заказ ($text2Yes)" и этот товар можно было положить в корзину?

 

Спасибо


Сообщение отредактировал Lexx74: 11 February 2015 - 15:21

  • 0

#2 Lexx74

Lexx74

Отправлено 12 February 2015 - 09:38

?
уже как сутки прошли. ответа нет никакого...

Сообщение отредактировал Lexx74: 12 February 2015 - 18:24

  • 0

#3 SmetDenis

SmetDenis

Отправлено 13 February 2015 - 13:02   Лучший Ответ

Но при этом если у товара цена =0 или >0 товар невозможно положить в корзину.

 

В функции isInStock нужно добавить доп проверку на "-2" по аналогии как это сдеелано внизу.

a6h7_200x0.png

 

return true - даст положить товар в корзину.


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



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


#4 Lexx74

Lexx74

Отправлено 13 February 2015 - 14:15

Сделал так

СТрока только у меня не такая как у вас на скрине 3123

...
    public function isInStock($hash, $quantity)

    {

        $data     = $this->getIndexData();

        $mainHash = $this->_getHash();



        if ($mainHash !== $hash) {

            foreach ($data as $variant) {

                if ($hash === $variant['hash']) {



                    if ($variant['balance'] == 0) {

                        return false;

                    }



                    if ($variant['balance'] == -1 || $variant['balance'] >= $quantity) {

                        return true;

                    }

                    if ($variant['balance'] == -2 || $variant['balance'] >= $quantity) {

                        return true;

                    }


.....

не получается. ДОбавил еще сюда проверку на -2

 

строка 3119

    public function balanceReduce($hash, $quantity)

    {

        if ($this->isInStock($hash, $quantity)) {

            $data = $this->data();



            if ($this->_getHash() === $hash) {

                $balance = $data['basic']['balance'];

                if ($balance == 0) {

                    return false;

                }



                if ($balance == -1) {

                    return true;

                }

                if ($balance == -2) {

                    return true;

                }



                if ($balance >= $quantity) {

                    $data['basic']['balance'] -= $quantity;

                }



тоже не получается положить в корзину.


Еще добаивл в 2х местах. Все получилось!


  • 0





Темы с аналогичным тегами jbpriceadvance

Click to return to top of page in style!