} elseif (($inStock == self::COUNT_AVAILABLE_NO) || ($inStock == self::COUNT_REQUEST)) { return false;
На:
} elseif (($inStock == self::COUNT_AVAILABLE_NO) || ($inStock == self::COUNT_REQUEST)) { return true;
Примечание:
Проверял на наличие ошибок следующее:
1. Возможность положить в корзину товар, цена которого имеет свойство "Под заказ";
2. Правильное уменьшение остатков товара, цена которого имеет свойство "Точный остаток"
3. Невозможность положить в корзину товар, цена которого имеет свойство "Нет в наличии";
4. Возможность положить в корзину товар, цена которого имеет свойство "Бесконечный";
Практика показала, что всё правильно отрабатывает.
P.S.
Просто поделился опытом ... но интуиция подсказывает, что в чем-то ошибаюсь. Например, разделение сценария покупки для товара со статусом "Под заказ" и "Нет в наличии" выглядит логичным, однако это приходится делать таким сомнительным способом (fix) почему?