Jump to content


Photo
- - - - -

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

jbpriceadvance

Best Answer SmetDenis , 13 February 2015 - 13:02

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

 

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

a6h7_200x0.png

 

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

Go to the full post


  • This topic is locked This topic is locked
3 replies to this topic

#1 Lexx74

Lexx74
  • JBZoo User (rus)
  • User rate: 0
  • posts: 73
  • topics: 20

Posted 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)" и этот товар можно было положить в корзину?

 

Спасибо


Edited by Lexx74, 11 February 2015 - 15:21.

  • 0

#2 Lexx74

Lexx74
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 73
  • topics: 20

Posted 12 February 2015 - 09:38

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

Edited by Lexx74, 12 February 2015 - 18:24.

  • 0

#3 SmetDenis

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

Posted 13 February 2015 - 13:02   Best Answer

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

 

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

a6h7_200x0.png

 

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


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



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


#4 Lexx74

Lexx74
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 73
  • topics: 20

Posted 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





Also tagged with one or more of these keywords: jbpriceadvance

Click to return to top of page in style!