本文整理汇总了PHP中Mage_Sales_Model_Quote_Item::setData方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Quote_Item::setData方法的具体用法?PHP Mage_Sales_Model_Quote_Item::setData怎么用?PHP Mage_Sales_Model_Quote_Item::setData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Quote_Item
的用法示例。
在下文中一共展示了Mage_Sales_Model_Quote_Item::setData方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: unstashLineItemData
/**
* @param Mage_Sales_Model_Quote_Item $lineItem
* @param Vbw_Punchout_Model_Sales_Stash $stash
* @param Mage_Checkout_Model_Cart $cartObj
* @param $options
*/
public function unstashLineItemData($lineItem, $stash, $cartObj, $options)
{
$customData = Mage::getStoreConfig('vbw_punchout/order/stash_item_list');
$customData = unserialize($customData);
if (!empty($customData)) {
foreach ($customData as $datum) {
$info = $stash->stash($datum['key']);
if (!empty($info) || is_numeric($info)) {
if (preg_match('/^([^\\/]+)\\/([^\\/]+)$/', $datum['key'], $s)) {
$src = $s[1];
$code = $s[2];
switch ($src) {
case "option":
$option = array('code' => $code, 'value' => $info);
$lineItem->addOption($option);
}
} else {
$lineItem->setData($datum['key'], $info);
}
}
}
}
Mage::dispatchEvent('punchout_cart_item_unstash', array('stash_item' => $stash, 'item' => $lineItem, 'cart' => $cartObj, 'options' => $options));
Mage::helper('vbw_punchout')->debug('unstash item ' . print_r(Mage::helper('vbw_punchout/debug')->debugData($lineItem->getData()), true));
}
示例2: checkQuoteItemQty
/**
* Check Quote item qty. If qty is not enougth for order, error flag and message added to $quote item
*
* @param Mage_Sales_Model_Quote_Item $quoteItem
*/
protected function checkQuoteItemQty($quoteItem)
{
$qty = $quoteItem->getQty();
if (($options = $quoteItem->getQtyOptions()) && $qty > 0) {
$qty = $quoteItem->getProduct()->getTypeInstance(true)->prepareQuoteItemQty($qty, $quoteItem->getProduct());
$quoteItem->setData('qty', $qty);
foreach ($options as $option) {
$optionQty = $qty * $option->getValue();
$increaseOptionQty = ($quoteItem->getQtyToAdd() ? $quoteItem->getQtyToAdd() : $qty) * $option->getValue();
$stockItem = $option->getProduct()->getStockItem();
/* @var $stockItem Mage_CatalogInventory_Model_Stock_Item */
if (!$stockItem instanceof Mage_CatalogInventory_Model_Stock_Item) {
$quoteItem->setHasError(true)->setMessage('Stock item for Product in option is not valid');
return;
}
$result = $stockItem->checkQuoteItemQty($optionQty, $optionQty, $option->getValue());
if ($result->getHasError()) {
$quoteItem->setHasError(true)->setMessage($result->getQuoteMessage());
}
}
} else {
$stockItem = $quoteItem->getProduct()->getStockItem();
/* @var $stockItem Mage_CatalogInventory_Model_Stock_Item */
if (!$stockItem instanceof Mage_CatalogInventory_Model_Stock_Item) {
Mage::throwException(Mage::helper('cataloginventory')->__('Stock item for Product is not valid'));
}
/**
* When we work with subitem (as subproduct of bundle or configurable product)
*/
if ($quoteItem->getParentItem()) {
$rowQty = $quoteItem->getParentItem()->getQty() * $qty;
/**
* we are using 0 because original qty was processed
*/
$qtyForCheck = 0;
} else {
$increaseQty = $quoteItem->getQtyToAdd() ? $quoteItem->getQtyToAdd() : $qty;
$rowQty = $qty;
$qtyForCheck = $qty;
}
$result = $stockItem->checkQuoteItemQty($rowQty, $qtyForCheck, $qty);
if ($result->getHasError()) {
$quoteItem->setHasError(true)->setMessage($result->getQuoteMessage());
}
}
}
示例3: loadCatalogData
/**
* Loads all relevant product and category data for the item
*
* @param Mage_Sales_Model_Order_Item|Mage_Sales_Model_Quote_Item $item
* @param int $orderStoreId
* @param int $websiteId
* @param int $maxLimit
*/
public function loadCatalogData($item, $storeId, $websiteId, $maxLimit = 10)
{
$product = null;
$categories = array();
$related = array();
$upsells = array();
// load product details
if ($item->getProductId()) {
$product = Mage::getModel('catalog/product')->load($item->getProductId());
// deleted
if (!$product->getId()) {
$product = null;
}
if ($product) {
$relatedCollection = $product->getRelatedProductCollection()->addAttributeToSelect('name')->addAttributeToSelect('sku')->addAttributeToSelect('url_path')->addAttributeToSelect('image')->addAttributeToSelect('visibility')->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)->setPageSize($maxLimit);
foreach ($relatedCollection as $p) {
$websiteIds = $p->getWebsiteIds();
if (in_array($websiteId, $websiteIds)) {
$related[$p->getId()] = $this->convertAttributeData($p);
}
}
$upsellCollection = $product->getUpSellProductCollection()->addAttributeToSelect('name')->addAttributeToSelect('sku')->addAttributeToSelect('url_path')->addAttributeToSelect('image')->addAttributeToSelect('visibility')->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)->setPageSize($maxLimit);
foreach ($upsellCollection as $p) {
$websiteIds = $p->getWebsiteIds();
if (in_array($websiteId, $websiteIds)) {
$upsells[$p->getId()] = $this->convertAttributeData($p);
}
}
$categoryCollection = $product->getCategoryCollection()->addAttributeToSelect('name')->addAttributeToSelect('is_active')->addAttributeToSelect('url_path')->addAttributeToFilter('level', array('gt' => 1))->setPageSize($maxLimit);
foreach ($categoryCollection as $category) {
$storeIds = $category->getStoreIds();
if (in_array($storeId, $storeIds)) {
$categories[$category->getId()] = $this->convertAttributeData($category);
}
}
$product->setRelatedProducts($related);
$product->setUpSellProducts($upsells);
}
$item->setData('product', $product);
$item->setCategories($categories);
}
}