コード例 #1
0
ファイル: Data.php プロジェクト: buttasg/cowgirlk
 /**
  * Check qty increments
  *
  * @param int|float                              $qty
  * @param Mage_CatalogInventory_Model_Stock_Item $stockItem
  *
  * @return Varien_Object
  */
 public function checkQtyIncrements($stockItem, $qty)
 {
     $result = new Varien_Object();
     $qtyIncrements = $stockItem->getQtyIncrements();
     if ($qtyIncrements && Mage::helper('core')->getExactDivision($qty, $qtyIncrements) != 0) {
         $result->setHasError(true)->setQuoteMessage(Mage::helper('cataloginventory')->__('Some of the products cannot be ordered in the requested quantity.'))->setErrorCode('qty_increments')->setQuoteMessageIndex('qty');
         $result->setMessage(Mage::helper('cataloginventory')->__('This product is available for purchase in increments of %s only.', $qtyIncrements * 1));
     }
     return $result;
 }
コード例 #2
0
ファイル: Product.php プロジェクト: buttasg/cowgirlk
 /**
  * @param Mage_CatalogInventory_Model_Stock_Item $stockItem
  *
  * @return float|int
  */
 protected function _getStackPriceMultiplicator($stockItem)
 {
     $priceMultiplier = 1;
     if ($stockItem->getEnableQtyIncrements()) {
         $stackQuantity = ceil($stockItem->getQtyIncrements());
         if ($stackQuantity > 1) {
             $priceMultiplier = $stackQuantity;
         }
     }
     return $priceMultiplier;
 }
コード例 #3
0
ファイル: Cart.php プロジェクト: hazaeluz/magento_connect
 /**
  * Checks whether requested quantity is allowed taking into account that some amount already added to quote.
  * Returns TRUE if everything is okay
  * Returns array in below format on error:
  * [
  *  'status' => string (see Enterprise_Checkout_Helper_Data::ADD_ITEM_STATUS_FAILED_* constants),
  *  'qty_max_allowed' => int (optional, if 'status'==ADD_ITEM_STATUS_FAILED_QTY_ALLOWED)
  * ]
  *
  * @param Mage_CatalogInventory_Model_Stock_Item $stockItem
  * @param Mage_Catalog_Model_Product             $product
  * @param float                                  $requestedQty
  * @return array|true
  */
 public function getQtyStatus(Mage_CatalogInventory_Model_Stock_Item $stockItem, Mage_Catalog_Model_Product $product, $requestedQty)
 {
     $result = $stockItem->checkQuoteItemQty($requestedQty, $requestedQty);
     if ($result->getHasError()) {
         $return = array();
         switch ($result->getErrorCode()) {
             case 'qty_increments':
                 $status = Enterprise_Checkout_Helper_Data::ADD_ITEM_STATUS_FAILED_QTY_INCREMENTS;
                 $return['qty_increments'] = $stockItem->getQtyIncrements();
                 break;
             case 'qty_min':
                 $status = Enterprise_Checkout_Helper_Data::ADD_ITEM_STATUS_FAILED_QTY_ALLOWED_IN_CART;
                 $return['qty_min_allowed'] = $stockItem->getMinSaleQty();
                 break;
             case 'qty_max':
                 $status = Enterprise_Checkout_Helper_Data::ADD_ITEM_STATUS_FAILED_QTY_ALLOWED_IN_CART;
                 $return['qty_max_allowed'] = $stockItem->getMaxSaleQty();
                 break;
             default:
                 $status = Enterprise_Checkout_Helper_Data::ADD_ITEM_STATUS_FAILED_QTY_ALLOWED;
                 $return['qty_max_allowed'] = $stockItem->getStockQty();
         }
         $return['status'] = $status;
         $return['error'] = $result->getMessage();
         return $return;
     }
     return true;
 }