当前位置: 首页>>代码示例>>PHP>>正文


PHP Varien_Object::setQty方法代码示例

本文整理汇总了PHP中Varien_Object::setQty方法的典型用法代码示例。如果您正苦于以下问题:PHP Varien_Object::setQty方法的具体用法?PHP Varien_Object::setQty怎么用?PHP Varien_Object::setQty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Varien_Object的用法示例。


在下文中一共展示了Varien_Object::setQty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: inventoryPush

 /**
  * Update stock data of multiple products at once
  *
  * @param array $itemData
  * @return array
  */
 public function inventoryPush($itemData)
 {
     if (isset($itemData['records'])) {
         $itemData = $itemData['records'];
     }
     $response = array();
     $response['records'] = array();
     $orderItemsCollection = Mage::getResourceModel('retailops_api/api')->getRetailopsReadyOrderItems();
     $orderItems = $this->filterOrderItems($orderItemsCollection);
     $productIds = $this->getProductIds($itemData);
     foreach ($itemData as $item) {
         try {
             $itemObj = new Varien_Object($item);
             Mage::dispatchEvent('retailops_inventory_push_record', array('record' => $itemObj));
             $result = array();
             $result['sku'] = $itemObj->getSku();
             $itemObj->setQty($itemObj->getQuantity());
             // api update accepts qty not quantity parameter
             $qty = $itemObj->getQty();
             if (isset($orderItems[$itemObj->getSku()])) {
                 $qty = $itemObj->getQty() - $orderItems[$itemObj->getSku()];
             }
             $itemObj->setQty($qty);
             Mage::dispatchEvent('retailops_inventory_push_record_qty_processed', array('record' => $itemObj));
             $this->update($productIds[$itemObj->getSku()], $itemObj->getData());
             $result['status'] = RetailOps_Api_Helper_Data::API_STATUS_SUCCESS;
         } catch (Mage_Core_Exception $e) {
             $result['status'] = RetailOps_Api_Helper_Data::API_STATUS_FAIL;
             $result['error'] = array('code' => $e->getCode(), 'message' => $e->getMessage());
         }
         $response['records'][] = $result;
     }
     return $response;
 }
开发者ID:ksawh,项目名称:retailops_magento,代码行数:40,代码来源:Api.php

示例2: testPrepareCartObserverQty

 /**
  * 
  * @loadFixture testPrepareCart
  * @dataProvider provider__testPrepareCartObserverQty
  * The main goul of this test is to check if the error will be araised if items are added one by one
  *
  */
 public function testPrepareCartObserverQty($dealId, $qty, $productId, $expectedPrice, $infoBuyRequest, $count, $uid)
 {
     $deal = Mage::getModel('collpur/deal')->load($dealId);
     /* set deal id in request */
     Mage::app()->getRequest()->setParam('deal_id', $dealId);
     Mage::app()->getRequest()->setParam('product', $productId);
     $observer = new Varien_Object();
     $buyRequest = new Varien_Object();
     $product = Mage::getModel('catalog/product')->load($productId);
     $buyRequest->setQty($qty);
     $observer->setBuyRequest($buyRequest);
     $observer->setProduct($product);
     /* set quote id and replace existing one in session */
     $quote = $this->getModelMock('sales/quote');
     $quoteItemsCollection = array();
     for ($i = 0; $i < $count; $i++) {
         $item = $this->getModelMock('sales/quote_item');
         $optionByCode = new Varien_Object();
         $optionByCode->setValue($infoBuyRequest);
         $item->expects($this->any())->method('getOptionByCode')->will($this->returnValue($optionByCode));
         $item->expects($this->any())->method('getQty')->will($this->returnValue(1));
         $quoteItemsCollection[] = $item;
     }
     $quote->expects($this->any())->method('getId')->will($this->returnValue(1));
     $quote->expects($this->any())->method('getItemsCollection')->will($this->returnValue($quoteItemsCollection));
     Mage::getSingleton('checkout/session')->replaceQuote($quote);
     if ($uid == '002') {
         $this->setExpectedException('Mage_Checkout_Exception');
     }
     Mage::getModel('collpur/observer')->prepareCart($observer);
 }
开发者ID:bigtailbear14,项目名称:rosstheme,代码行数:38,代码来源:Observer.php

示例3: _getProductRequest

 /**
  * Get request for product add to cart procedure
  *
  * @param   mixed $requestInfo
  * @return  Varien_Object
  */
 protected function _getProductRequest($requestInfo)
 {
     if ($requestInfo instanceof Varien_Object) {
         $request = $requestInfo;
     } elseif (is_numeric($requestInfo)) {
         $request = new Varien_Object();
         $request->setQty($requestInfo);
     } else {
         $request = new Varien_Object($requestInfo);
     }
     if (!$request->hasQty()) {
         $request->setQty(1);
     }
     return $request;
 }
开发者ID:cnglobal-sl,项目名称:caterez,代码行数:21,代码来源:Product.php

示例4: estimate

 public function estimate()
 {
     $product = $this->getProduct();
     $addToCartInfo = (array) $product->getAddToCartInfo();
     $addressInfo = (array) $this->getAddressInfo();
     if (!$product instanceof Mage_Catalog_Model_Product || !$product->getId()) {
         Mage::throwException(Mage::helper('webdevlopers_productpageshipping')->__('Please specify a valid product'));
     }
     if (!isset($addressInfo['country_id'])) {
         Mage::throwException(Mage::helper('webdevlopers_productpageshipping')->__('Please specify a country'));
     }
     if (empty($addressInfo['cart'])) {
         $this->resetQuote();
     }
     $shippingAddress = $this->getQuote()->getShippingAddress();
     $shippingAddress->setCountryId($addressInfo['country_id']);
     if (isset($addressInfo['region_id'])) {
         $shippingAddress->setRegionId($addressInfo['region_id']);
     }
     if (isset($addressInfo['postcode'])) {
         $shippingAddress->setPostcode($addressInfo['postcode']);
     }
     if (isset($addressInfo['region'])) {
         $shippingAddress->setRegion($addressInfo['region']);
     }
     if (isset($addressInfo['city'])) {
         $shippingAddress->setCity($addressInfo['city']);
     }
     $shippingAddress->setCollectShippingRates(true);
     if (isset($addressInfo['coupon_code'])) {
         $this->getQuote()->setCouponCode($addressInfo['coupon_code']);
     }
     $request = new Varien_Object($addToCartInfo);
     if ($product->getStockItem()) {
         $minimumQty = $product->getStockItem()->getMinSaleQty();
         if ($minimumQty > 0 && $request->getQty() < $minimumQty) {
             $request->setQty($minimumQty);
         }
     }
     $result = $this->getQuote()->addProduct($product, $request);
     if (is_string($result)) {
         Mage::throwException($result);
     }
     Mage::dispatchEvent('checkout_cart_product_add_after', array('quote_item' => $result, 'product' => $product));
     $this->getQuote()->collectTotals();
     $this->_result = $shippingAddress->getGroupedAllShippingRates();
     return $this;
 }
开发者ID:shakhawat4g,项目名称:MagentoExtensions,代码行数:48,代码来源:Estimate.php

示例5: getBuyRequest

 /**
  * Use our own method to get buyRequest
  * @param Mage_Sales_Model_Quote_Item $salesItem
  * @return Varien_Object
  *
  */
 public function getBuyRequest($salesItem, $option = false)
 {
     if ($option) {
         $option = $salesItem->getOptionByCode('info_buyRequest');
         $buyRequest = new Varien_Object($option && $option->getValue() ? unserialize($option->getValue()) : null);
         $buyRequest->setOriginalQty($buyRequest->getQty())->setQty($salesItem->getQty() * 1);
         return $buyRequest;
     }
     $option = $salesItem->getProductOptionByCode('info_buyRequest');
     if (!$option) {
         $option = array();
     }
     $buyRequest = new Varien_Object($option);
     $buyRequest->setQty($salesItem->getQtyOrdered() * 1);
     return $buyRequest;
 }
开发者ID:bigtailbear14,项目名称:rosstheme,代码行数:22,代码来源:AW_Collpur_Helper_Data.php

示例6: addMaintenanceToSerialized

 /**
  * Called from payperrentals/inventory helper after_booked event of getBooked()
  *
  * Observer that adds maintenance quantity when using specific maintenance dates to
  * the serialized inventory field of the product
  *
  * @param Varien_Event_Observer $observer
  */
 function addMaintenanceToSerialized(Varien_Event_Observer $observer)
 {
     $booked = $observer->getResult()->getBooked();
     $reservedCollection = $observer->getReservedCollection();
     /** @var  $maintenanceColl ITwebexperts_Maintenance_Model_Mysql4_Items_Collection */
     foreach ($booked as $productid => $booking) {
         $maintenanceColl = Mage::getModel('simaintenance/items')->getCollection();
         $maintenanceColl->addFieldToFilter('product_id', $productid);
         foreach ($maintenanceColl as $maintenanceItem) {
             if (is_null($maintenanceItem->getStartDate()) || $maintenanceItem->getSpecificDates()) {
                 continue;
             }
             $start = strtotime($maintenanceItem->getStartDate());
             $end = strtotime($maintenanceItem->getEndDate());
             $usetimes = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productid, 'payperrentals_use_times', Mage::app()->getStore()->getStoreId());
             if (date('H:i:s', $start) != '00:00:00' || date('H:i:s', $end) != '23:59:00' && date('H:i:s', $end) != '23:58:59' || $usetimes == 1) {
                 $configHelper = Mage::helper('payperrentals/config');
                 $timeIncrement = $configHelper->getTimeIncrement() * 60;
             } else {
                 $timeIncrement = 3600 * 24;
             }
             while ($start < $end) {
                 $dateFormatted = date('Y-m-d H:i', $start);
                 if (!isset($booking[$dateFormatted])) {
                     $vObject = new Varien_Object();
                     $vObject->setQty($maintenanceItem->getQuantity());
                     $vObject->setOrders(array('m'));
                     $booking[$dateFormatted] = $vObject;
                 } else {
                     $vObject = $booking[$dateFormatted];
                     $vObject->setQty($vObject->getQty() + $maintenanceItem->getQuantity());
                     $orderArr = $vObject->getOrders();
                     $orderArr = array_merge($orderArr, array('m'));
                     $vObject->setOrders($orderArr);
                 }
                 $booked[$productid][$dateFormatted] = $vObject;
                 $start += $timeIncrement;
             }
         }
     }
     $observer->getResult()->setBooked($booked);
 }
开发者ID:hueyl77,项目名称:fourwindsgear,代码行数:50,代码来源:Observer.php

示例7: initFromOrderItem

 /**
  * Initialize creation data from existing order Item
  *
  * @param Mage_Sales_Model_Order_Item $orderItem
  * @return Mage_Sales_Model_Quote_Item | string
  */
 public function initFromOrderItem(Mage_Sales_Model_Order_Item $orderItem, $qty = 1)
 {
     if (!$orderItem->getId()) {
         return $this;
     }
     $product = Mage::getModel('catalog/product')->setStoreId($this->getSession()->getStoreId())->load($orderItem->getProductId());
     if ($product->getId()) {
         $info = $orderItem->getProductOptionByCode('info_buyRequest');
         $info = new Varien_Object($info);
         $product->setSkipCheckRequiredOption(true);
         $info->setQty($orderItem->getQtyOrdered());
         $item = $this->getQuote()->addProduct($product, $info);
         if (is_string($item)) {
             return $item;
         }
         //$item->setQty($qty);
         if ($additionalOptions = $orderItem->getProductOptionByCode('additional_options')) {
             $item->addOption(new Varien_Object(array('product' => $item->getProduct(), 'code' => 'additional_options', 'value' => serialize($additionalOptions))));
         }
         Mage::dispatchEvent('sales_convert_order_item_to_quote_item', array('order_item' => $orderItem, 'quote_item' => $item));
         return $item;
     }
     return $this;
 }
开发者ID:xiaoguizhidao,项目名称:mydigibits,代码行数:30,代码来源:Create.php

示例8: addProductAdvanced

 public function addProductAdvanced(Mage_Catalog_Model_Product $product, $request = null, $processMode = null)
 {
     if ($request === null) {
         $request = 1;
     }
     if (is_numeric($request)) {
         $request = new Varien_Object(array('qty' => $request));
     }
     if (!$request instanceof Varien_Object) {
         Mage::throwException(Mage::helper('sales')->__('Invalid request for adding product to quote.'));
     }
     switch ($product->getTypeId()) {
         case 'simple':
         case 'virtual':
         case 'downloadable':
         case 'configurable':
         case 'bundle':
             $qty = $request->getQty();
             if ($qty > 1) {
                 $request->setQty(1);
                 for ($i = 1; $i < $qty; $i++) {
                     $lineProduct = clone $product;
                     $lineRequest = clone $request;
                     $this->addProductAdvanced($lineProduct, $lineRequest, $processMode);
                 }
             }
             break;
         case 'grouped':
             $superGroup = $request->getSuperGroup();
             foreach ($superGroup as $productId => $qty) {
                 if ($qty > 1) {
                     for ($i = 1; $i < $qty; $i++) {
                         $customSuperGroup = $request->getSuperGroup();
                         foreach ($customSuperGroup as $customProductId => $customQty) {
                             $customSuperGroup[$customProductId] = $customProductId === $productId ? 1 : 0;
                         }
                         $lineProduct = clone $product;
                         $lineRequest = clone $request;
                         $lineRequest->setSuperGroup($customSuperGroup);
                         $this->addProductAdvanced($lineProduct, $lineRequest, $processMode);
                     }
                 }
                 $superGroup[$productId] = $qty > 0 ? 1 : 0;
             }
             $request->setSuperGroup($superGroup);
             break;
     }
     $cartCandidates = $product->getTypeInstance(true)->prepareForCartAdvanced($request, $product, $processMode);
     /**
      * Error message
      */
     if (is_string($cartCandidates)) {
         return $cartCandidates;
     }
     /**
      * If prepare process return one object
      */
     if (!is_array($cartCandidates)) {
         $cartCandidates = array($cartCandidates);
     }
     $parentItem = null;
     $errors = array();
     $items = array();
     foreach ($cartCandidates as $candidate) {
         // Child items can be sticked together only within their parent
         $stickWithinParent = $candidate->getParentProductId() ? $parentItem : null;
         $candidate->setStickWithinParent($stickWithinParent);
         $item = $this->_addCatalogProduct($candidate, $candidate->getCartQty());
         if ($request->getResetCount() && !$stickWithinParent && $item->getId() === $request->getId()) {
             $item->setData('qty', 0);
         }
         $items[] = $item;
         /**
          * As parent item we should always use the item of first added product
          */
         if (!$parentItem) {
             $parentItem = $item;
         }
         if ($parentItem && $candidate->getParentProductId()) {
             $item->setParentItem($parentItem);
         }
         /**
          * We specify qty after we know about parent (for stock)
          */
         $item->addQty($candidate->getCartQty());
         // collect errors instead of throwing first one
         if ($item->getHasError()) {
             $message = $item->getMessage();
             if (!in_array($message, $errors)) {
                 // filter duplicate messages
                 $errors[] = $message;
             }
         }
     }
     if (!empty($errors)) {
         Mage::throwException(implode("\n", $errors));
     }
     Mage::dispatchEvent('sales_quote_product_add_after', array('items' => $items));
     return $item;
 }
开发者ID:outeredge,项目名称:edge-magento-module-uniquequoteitem,代码行数:100,代码来源:Quote.php

示例9: updateAttQtyAction

 public function updateAttQtyAction()
 {
     $result = array();
     $result['error'] = false;
     $id = (int) $this->getRequest()->getParam('id');
     $result['item_id'] = $id;
     $params = $this->getRequest()->getParams();
     if (!isset($params['options'])) {
         $params['options'] = array();
     }
     $params['super_attribute'] = Zend_Json::decode($params['super_attribute']);
     try {
         $cart = Mage::getSingleton('checkout/cart');
         $quoteItem = $cart->getQuote()->getItemById($id);
         if (!$quoteItem) {
             Mage::throwException($this->__('Quote item is not found.'));
         }
         $params['qty'] = $quoteItem->getQty();
         if (method_exists($cart, 'updateItem')) {
             $item = $cart->updateItem($id, new Varien_Object($params));
         } else {
             $request = new Varien_Object($params);
             $productId = $quoteItem->getProduct()->getId();
             $product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($productId);
             if ($product->getStockItem()) {
                 $minimumQty = $product->getStockItem()->getMinSaleQty();
                 if ($minimumQty && $minimumQty > 0 && $request->getQty() < $minimumQty && !$cart->getQuote()->hasProductId($productId)) {
                     $request->setQty($minimumQty);
                 }
             }
             $item = $cart->getQuote()->addProduct($product, $request);
             if ($item->getParentItem()) {
                 $item = $item->getParentItem();
             }
             if ($item->getId() != $id) {
                 $cart->getQuote()->removeItem($id);
                 $items = $cart->getQuote()->getAllItems();
                 foreach ($items as $_item) {
                     if ($_item->getProductId() == $productId && $_item->getId() != $item->getId()) {
                         if ($item->compare($_item)) {
                             $item->setQty($item->getQty() + $_item->getQty());
                             $this->removeItem($_item->getId());
                             break;
                         }
                     }
                 }
             } else {
                 $item->setQty($request->getQty());
             }
         }
         if (is_string($item)) {
             Mage::throwException($item);
         }
         $cart->save();
         Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
         Mage::dispatchEvent('checkout_cart_update_item_complete', array('item' => $item, 'request' => $this->getRequest(), 'response' => $this->getResponse()));
     } catch (Mage_Core_Exception $e) {
         $success_param = array();
         if ($quoteItem) {
             if ($quoteItem->getProduct()->getTypeInstance(true)->getSpecifyOptionMessage() == $e->getMessage()) {
                 $all_params = $params['super_attribute'];
                 $productCollection = $quoteItem->getProduct()->getTypeInstance(true)->getUsedProductCollection($quoteItem->getProduct());
                 foreach ($all_params as $attribute_id => $value) {
                     $tmp_params = $success_param;
                     $tmp_params[$attribute_id] = $value;
                     $productObject = $quoteItem->getProduct()->getTypeInstance(true)->getProductByAttributes($tmp_params, $quoteItem->getProduct());
                     if ($productObject && $productObject->getId()) {
                         $success_param[$attribute_id] = $value;
                         $productCollection->addAttributeToFilter($attribute_id, $value);
                     } else {
                         $result['update_attribute'] = $attribute_id;
                         $attribute_data = array();
                         $attribute = null;
                         $product = Mage::getModel('catalog/product')->load($quoteItem->getProduct()->getId());
                         $product->getTypeInstance(true)->getUsedProductAttributeIds($product);
                         $usedAttributes = $product->getData('_cache_instance_used_attributes');
                         foreach ($usedAttributes as $key => $_arrtibute) {
                             if ($key == $attribute_id) {
                                 $attribute = $_arrtibute;
                                 break;
                             }
                         }
                         foreach ($productCollection as $_product) {
                             $_product = Mage::getModel('catalog/product')->load($_product->getId());
                             if ($_product->isSaleable()) {
                                 $_key = $_product->getData($attribute->getProductAttribute()->getAttributeCode());
                                 foreach ($attribute->getPrices() as $_v) {
                                     if ($_v['value_index'] == $_key) {
                                         $attribute_data[$_key] = $_v['label'];
                                         break;
                                     }
                                 }
                             }
                         }
                         $result['attribute_data'] = $attribute_data;
                         break;
                     }
                 }
             }
         }
//.........这里部分代码省略.........
开发者ID:chaudhary4k4,项目名称:supershopmagento,代码行数:101,代码来源:IndexController.php

示例10: _addProductsToQuote

 protected function _addProductsToQuote($productInCardList, $paramsArray)
 {
     $productInCardList = $this->_concatenateProductsInQuote($productInCardList);
     foreach ($productInCardList as $productItem) {
         $product = Mage::getModel('catalog/product')->load($productItem['id']);
         if (!$product->getId()) {
             throw new LogicException('Product does not exist. Probably it was deleted.');
         }
         if ($product->getStatus() === Mage_Catalog_Model_Product_Status::STATUS_DISABLED) {
             throw new LogicException('Product is disabled.');
         }
         $productTypeId = $product->getTypeId();
         if ($productTypeId == Ess_M2ePro_Model_MagentoProduct::TYPE_GROUPED) {
             // Grouped product converted to assigned simple
             if (!isset($productItem['options'])) {
                 throw new LogicException('The item does not have options. At the current version, Order Import for grouped product supports only multi variation listing.');
             }
             $product = $this->_getRelatedProductFromGroupedForEbayData($product, $productItem);
             if (is_null($product)) {
                 throw new LogicException('There is no associated products found for grouped product.');
             } else {
                 $productTypeId = $product->getTypeId();
             }
         }
         $productItem['price'] = $this->_getConvertedPrice($productItem['price']);
         $request = new Varien_Object();
         $request->setQty($productItem['qty']);
         switch ($productTypeId) {
             case Ess_M2ePro_Model_MagentoProduct::TYPE_SIMPLE:
                 $haveRequiredOptionsInstant = $product->getTypeInstance(true)->hasRequiredOptions($product);
                 $haveRequiredOptions = $product->hasRequiredOptions();
                 if ($haveRequiredOptions && !$product->getRequiredOptions()) {
                     $haveRequiredOptions = false;
                     // important: possible incorect behavior
                 }
                 if ($haveRequiredOptionsInstant || $haveRequiredOptions || $this->_checkSimpleProductHasRequiredCustomOptions($product)) {
                     $customOptionsData = array();
                     if (isset($productItem['options']) && count($productItem['options'])) {
                         // Have multivariation data for simple product
                         // Use to set Custom Options data
                         $customOptionsData = $this->_getCustomOptionsForEbayData($productItem);
                         $this->_addNotifyMessage('Product has <b>Required Options</b>. Selected Options Values are taken from eBay Multi Variation Data');
                     } else {
                         // No multivariation data, set first required option
                         $customOptionsData = $this->_getRandomCustomOptions($productItem);
                         $this->_addNotifyMessage('Product has <b>Required Options</b>. First option value is selected.');
                     }
                     $request->setOptions($customOptionsData['options']);
                     // Dec price for percent change (after apply percent price inc = need price)
                     $productItem['price'] = $productItem['price'] / (1 + $customOptionsData['price_change_percent'] / 100);
                     // Change for custom options price. price_change_fixed low that 0 when option inc price, more 0 - when inc
                     $productItem['price'] += $customOptionsData['price_change_fixed'] / (1 + $customOptionsData['price_change_percent'] / 100);
                 }
                 // end of $haveRequriedOptions
                 break;
             case Ess_M2ePro_Model_MagentoProduct::TYPE_CONFIGURABLE:
                 if (!isset($productItem['options'])) {
                     throw new LogicException('The item does not have options. At the current version, Order Import for configurable product supports only multi variation listing.');
                 }
                 $configurableOptions = $this->_getConfigurableAttributeForEbayData($productItem);
                 // Set selected attributes
                 $request->setSuperAttribute($configurableOptions['options']);
                 // Each option value can change total price value, remove
                 // this changes for equal: order price = eBay sold price
                 $productItem['price'] += $configurableOptions['price_change'];
                 break;
             case Ess_M2ePro_Model_MagentoProduct::TYPE_BUNDLE:
                 if (!isset($productItem['options'])) {
                     throw new LogicException('The item does not have options. At the current version, Order Import for bundle product supports only multi variation listing.');
                 }
                 $bundleOptions = $this->_getBundleOptionsForEbayData($productItem);
                 $request->setBundleOption($bundleOptions['options']);
                 //                    $bundleQty = array();
                 //                    foreach ($bundleOptions['options'] as $optionId => $optionValue) {
                 //                        $bundleQty[$optionId] = $productItem['qty'];
                 //                    }
                 //                    $request->setBundleOptionQty($bundleQty);
                 //                    $request->setQty(1);
                 $this->_addNotifyMessage('Price for Bundle item is taken from Magento store.');
                 break;
             default:
                 throw new LogicException('At the current version, Order Import does not support product type: ' . $productTypeId . '');
         }
         $product->setPrice($productItem['price']);
         $product->setSpecialPrice($productItem['price']);
         $this->_initProductTaxClassId($product, $paramsArray['taxPercent']);
         $result = $this->_quote->addProduct($product, $request);
         if (is_string($result)) {
             throw new Exception($result);
         }
         // TODO: ugly hack
         //if ($productTypeId == Ess_M2ePro_Model_MagentoProduct::TYPE_BUNDLE ||
         //    Ess_M2ePro_Model_MagentoProduct::TYPE_CONFIGURABLE ||
         //    Ess_M2ePro_Model_MagentoProduct::TYPE_GROUPED) {
         foreach ($paramsArray['products'] as $tempProduct) {
             if ($tempProduct['id'] == $product->getId()) {
                 $tempQuoteItem = $this->_quote->getItemByProduct($product);
                 if ($tempQuoteItem !== false) {
                     $tempQuoteItem->setNoDiscount(1);
                     $tempQuoteItem->setOriginalCustomPrice($this->_getConvertedPrice($tempProduct['price']));
//.........这里部分代码省略.........
开发者ID:par-orillonsoft,项目名称:app,代码行数:101,代码来源:Order.php

示例11: getBuyRequest

 /**
  * Returns formatted buy request - object, holding request received from
  * product view page with keys and options for configured product
  *
  * @return Varien_Object
  */
 public function getBuyRequest()
 {
     $option = $this->getProductOptionByCode('info_buyRequest');
     if (!$option) {
         $option = array();
     }
     $buyRequest = new Varien_Object($option);
     $buyRequest->setQty($this->getQtyOrdered() * 1);
     return $buyRequest;
 }
开发者ID:hazaeluz,项目名称:magento_connect,代码行数:16,代码来源:Item.php

示例12: changeattributecartAction

 public function changeattributecartAction()
 {
     $result = array();
     $result['error'] = false;
     $id = (int) $this->getRequest()->getParam('id');
     $result['item_id'] = $id;
     $params = $this->getRequest()->getParams();
     if (!isset($params['options'])) {
         $params['options'] = array();
     }
     $params['super_attribute'] = Zend_Json::decode($params['super_attribute']);
     try {
         $cart = Mage::getSingleton('checkout/cart');
         $quoteItem = $cart->getQuote()->getItemById($id);
         if (!$quoteItem) {
             Mage::throwException($this->__('Quote item is not found.'));
         }
         $params['qty'] = $quoteItem->getQty();
         if (method_exists($cart, 'updateItem')) {
             $item = $cart->updateItem($id, new Varien_Object($params));
         } else {
             $request = new Varien_Object($params);
             $productId = $quoteItem->getProduct()->getId();
             $product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($productId);
             if ($product->getStockItem()) {
                 $minimumQty = $product->getStockItem()->getMinSaleQty();
                 if ($minimumQty && $minimumQty > 0 && $request->getQty() < $minimumQty && !$cart->getQuote()->hasProductId($productId)) {
                     $request->setQty($minimumQty);
                 }
             }
             $item = $cart->getQuote()->addProduct($product, $request);
             if ($item->getParentItem()) {
                 $item = $item->getParentItem();
             }
             if ($item->getId() != $id) {
                 $cart->getQuote()->removeItem($id);
                 $items = $cart->getQuote()->getAllItems();
                 foreach ($items as $_item) {
                     if ($_item->getProductId() == $productId && $_item->getId() != $item->getId()) {
                         if ($item->compare($_item)) {
                             $item->setQty($item->getQty() + $_item->getQty());
                             $this->removeItem($_item->getId());
                             break;
                         }
                     }
                 }
             } else {
                 $item->setQty($request->getQty());
             }
         }
         if (is_string($item)) {
             Mage::throwException($item);
         }
         $cart->save();
         Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
         Mage::dispatchEvent('checkout_cart_update_item_complete', array('item' => $item, 'request' => $this->getRequest(), 'response' => $this->getResponse()));
     } catch (Mage_Core_Exception $e) {
         $result['error'] = true;
         $result['message'] = $e->getMessage();
     } catch (Exception $e) {
         $result['error'] = true;
         $result['message'] = $e->getMessage();
         Mage::logException($e);
     }
     if (!$result['error']) {
         if ($item_html = $this->getCartItem($item->getId())) {
             $result['item_html'] = $item_html;
             $result['new_item_id'] = $item->getId();
         }
         if ($total = $this->getCartTolal()) {
             $result['total'] = $total;
         }
     } else {
         if ($item_html = $this->getCartItem($result['item_id'])) {
             $result['item_html'] = $item_html;
         }
     }
     $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
 }
开发者ID:shebin512,项目名称:Magento_Zoff,代码行数:79,代码来源:AjaxcartController.php

示例13: _getSimpleShopgateCoupons

 /**
  * @param ShopgateCartBase $order
  * @throws ShopgateLibraryException
  */
 protected function _getSimpleShopgateCoupons(ShopgateCartBase $order)
 {
     if ($order instanceof ShopgateOrder) {
         foreach ($order->getItems() as $item) {
             /** @var ShopgateOrderItem $item */
             if (!$item->isSgCoupon()) {
                 continue;
             }
             if ($this->useTaxClasses) {
                 $itemAmount = $item->getUnitAmount();
             } else {
                 $itemAmount = $item->getUnitAmountWithTax();
             }
             $obj = new Varien_Object();
             $obj->setName($item->getName());
             $obj->setItemNumber($item->getItemNumber());
             $obj->setUnitAmountWithTax($itemAmount);
             $obj->setQty($item->getQuantity());
             $this->_virtualObjectStack[] = $obj;
         }
     }
 }
开发者ID:buttasg,项目名称:cowgirlk,代码行数:26,代码来源:Plugin.php

示例14: addProduct

 /**
  * Add product to current order quote
  *
  * $config can be integer qty (older behaviour, when no product configuration was possible)
  * or it can be array of options (newer behaviour).
  *
  * In case of older behaviour same product ids are not added, but quote item qty is increased.
  * In case of newer behaviour same product ids with different configs are added as separate quote items.
  *
  * @param   mixed $product
  * @param   array|float|int|Varien_Object $config
  * @return  Mage_Adminhtml_Model_Sales_Order_Create
  */
 public function addProduct($product, $config = 1)
 {
     if (is_array($config) || $config instanceof Varien_Object) {
         $config = is_array($config) ? new Varien_Object($config) : $config;
         $qty = (double) $config->getQty();
         $separateSameProducts = true;
     } else {
         $qty = (double) $config;
         $config = new Varien_Object();
         $config->setQty($qty);
         $separateSameProducts = false;
     }
     if (!$product instanceof Mage_Catalog_Model_Product) {
         $productId = $product;
         $product = Mage::getModel('catalog/product')->setStore($this->getStore())->setStoreId($this->getStore()->getId())->load($product);
         if (!$product->getId()) {
             Mage::throwException(Mage::helper('adminhtml')->__('Failed to add a product to cart by id "%s".', $productId));
         }
     }
     if ($product->getStockItem()) {
         if (!$product->getStockItem()->getIsQtyDecimal()) {
             $qty = (int) $qty;
         } else {
             $product->setIsQtyDecimal(1);
         }
     }
     $qty = $qty > 0 ? $qty : 1;
     $item = null;
     if (!$separateSameProducts) {
         $item = $this->getQuote()->getItemByProduct($product);
     }
     if ($item) {
         $item->setQty($item->getQty() + $qty);
     } else {
         $item = $this->getQuote()->addProduct($product, $config);
         if (is_string($item)) {
             Mage::throwException($item);
         }
         $item->checkData();
     }
     $this->setRecollect(true);
     return $this;
 }
开发者ID:hazaeluz,项目名称:magento_connect,代码行数:56,代码来源:Cart.php

示例15: orderAction

 /**
  * Convert quote to order
  *
  * @return $this
  */
 public function orderAction()
 {
     $quoteId = $this->getRequest()->getParam('quote_id');
     try {
         $this->_initQuote('quote_id');
         $r4qQuote = Mage::registry('current_quote');
         if (!$r4qQuote->getId()) {
             throw new Exception($this->__('Wrong Quote ID'));
         }
         $orderSession = Mage::getSingleton('adminhtml/session_quote');
         $orderSession->clear();
         $orderCreateModel = Mage::getSingleton('adminhtml/sales_order_create');
         $importData = array();
         $customerModel = Mage::getModel('customer/customer');
         $websites = Mage::app()->getWebsites();
         foreach ($websites as $website) {
             $customerModel->setWebsiteId($website->getId());
             $customerModel->loadByEmail($r4qQuote->getCustomerEmail());
             if ($customerModel->getId()) {
                 break;
             }
         }
         //here needs to check if on import carries the entity_id. Thats why it might needs so the billing address has the same data as the rfq address
         $billingAddressArray = $r4qQuote->getBillingAddress()->getData();
         unset($billingAddressArray['address_id']);
         $shippingAddressArray = $r4qQuote->getShippingAddress()->getData();
         unset($shippingAddressArray['address_id']);
         if ($customerModel->getId()) {
             $orderSession->setCustomerId($customerModel->getId());
             $importData['order'] = array('account' => array('email' => $r4qQuote->getCustomerEmail()), 'billing_address' => $billingAddressArray);
         } else {
             $orderSession->setCustomerId(0);
             if ($r4qQuote->getCustomerEmail()) {
                 $importData['order'] = array('account' => array('email' => $r4qQuote->getCustomerEmail()), 'billing_address' => $billingAddressArray);
                 $importData['account'] = array('email' => $r4qQuote->getCustomerEmail());
             }
         }
         if ($r4qQuote->getQuoteCurrencyCode()) {
             $orderSession->setCurrencyId($r4qQuote->getQuoteCurrencyCode());
         }
         $orderSession->setStoreId($r4qQuote->getStoreId());
         if ($r4qQuote->getShippingAddress()->getShippingMethod()) {
             $orderSession->setShippingMethod($r4qQuote->getShippingAddress()->getShippingMethod());
         }
         // import order data
         $orderCreateModel->importPostData($importData);
         if ($r4qQuote->getBillingAddress()) {
             $orderCreateModel->setBillingAddress($billingAddressArray);
         }
         if ($r4qQuote->getShippingAddress()) {
             $orderCreateModel->setShippingAddress($shippingAddressArray);
         }
         if (!$r4qQuote->getR4qShippingAsBilling() || $r4qQuote->getR4qShippingAsBilling() == '0') {
             //$orderCreateModel->setShippingAddress($r4qQuote->getBillingAddress());
             $orderCreateModel->setShippingAsBilling(0);
         }
         // add items
         foreach ($r4qQuote->getAllItems() as $item) {
             if ($item->getParentItem()) {
                 continue;
             }
             $product = $item->getProduct();
             if ($product) {
                 $product = Mage::getModel('catalog/product')->setStoreId($r4qQuote->getStoreId())->load($product->getId());
                 $info = $item->getOptionByCode('info_buyRequest');
                 if ($info) {
                     $infoBuyRequest = new Varien_Object(unserialize($info->getValue()));
                 } else {
                     $infoBuyRequest = new Varien_Object(array('qty' => 1));
                 }
                 if (isset($infoBuyRequest['start_date'])) {
                     $infoBuyRequest['start_date'] = date('Y-m-d', strtotime($infoBuyRequest['start_date']));
                 }
                 if (isset($infoBuyRequest['end_date'])) {
                     $infoBuyRequest['end_date'] = date('Y-m-d', strtotime($infoBuyRequest['end_date']));
                 }
                 if (Mage::helper('request4quote')->isOpenendedInstalled()) {
                     $infoBuyRequest[ITwebexperts_Openendedinvoices_Helper_Data::BILLING_PERIOD_CUSTOM_PRICE] = $item->getR4qPriceProposal();
                 }
                 $infoBuyRequest->setQty($item->getQty());
                 $infoBuyRequest->setStockId($item->getStockId());
                 if ($infoBuyRequest->getSelPay() && $infoBuyRequest->getSelPay() == 'recurring') {
                     $infoBuyRequest->setData(ITwebexperts_Request4quote_Model_Quote::PRICE_PROPOSAL_OPTION, 0);
                 } else {
                     $infoBuyRequest->setData(ITwebexperts_Request4quote_Model_Quote::PRICE_PROPOSAL_OPTION, $item->getR4qPriceProposal());
                 }
                 $infoBuyRequest->setData(ITwebexperts_Request4quote_Model_Quote::QUOTE_ID_OPTION, $r4qQuote->getId());
                 $orderCreateModel->addProduct($product, $infoBuyRequest->getData());
             }
         }
         if ($r4qQuote->getCouponCode()) {
             $orderCreateModel->applyCoupon($r4qQuote->getCouponCode());
         }
         $orderCreateModel->saveQuote();
         $this->_redirect('adminhtml/sales_order_create/index');
//.........这里部分代码省略.........
开发者ID:VinuWebtech,项目名称:production267,代码行数:101,代码来源:QuoteController.php


注:本文中的Varien_Object::setQty方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。