* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PrestashopFacebook\Provider; use FacebookAds\Object\Values\ProductItemAvailabilityValues; use Product; use StockAvailable; class ProductAvailabilityProvider implements ProductAvailabilityProviderInterface { /** * @param int $productId * @param int $productAttributeId * * @return string * * @throws \PrestaShopDatabaseException * @throws \PrestaShopException */ public function getProductAvailability($productId, $productAttributeId) { $product = new Product($productId); if ((int) StockAvailable::getQuantityAvailableByProduct($productId, $productAttributeId)) { return ProductItemAvailabilityValues::IN_STOCK; } switch ($product->out_of_stock) { case 1: return ProductItemAvailabilityValues::AVAILABLE_FOR_ORDER; case 2: $isAvailable = Product::isAvailableWhenOutOfStock($product->out_of_stock); return $isAvailable ? ProductItemAvailabilityValues::AVAILABLE_FOR_ORDER : ProductItemAvailabilityValues::OUT_OF_STOCK; case 0: default: return ProductItemAvailabilityValues::OUT_OF_STOCK; } } }