本文整理汇总了PHP中Mage_Sales_Model_Quote_Item::save方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Quote_Item::save方法的具体用法?PHP Mage_Sales_Model_Quote_Item::save怎么用?PHP Mage_Sales_Model_Quote_Item::save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Quote_Item
的用法示例。
在下文中一共展示了Mage_Sales_Model_Quote_Item::save方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: save
/**
* Save model plus its options
* Ensures saving options in case when resource model was not changed
*/
public function save()
{
$hasDataChanges = $this->hasDataChanges();
$this->_flagOptionsSaved = false;
parent::save();
if ($hasDataChanges && !$this->_flagOptionsSaved) {
$this->_saveItemOptions();
}
}
示例2: _assignOptionsToItem
/**
* Assign options to item
*
* @param Mage_Sales_Model_Quote_Item $item
* @param array $options
*/
protected function _assignOptionsToItem(Mage_Sales_Model_Quote_Item $item, $options)
{
if ($optionIds = $item->getOptionByCode('option_ids')) {
foreach (explode(',', $optionIds->getValue()) as $optionId) {
$item->removeOption('option_' . $optionId);
}
$item->removeOption('option_ids');
}
if ($item->getOptionByCode('additional_options')) {
$item->removeOption('additional_options');
}
$item->save();
if (!empty($options['options'])) {
$item->addOption(new Varien_Object(array('product' => $item->getProduct(), 'code' => 'option_ids', 'value' => implode(',', array_keys($options['options'])))));
foreach ($options['options'] as $optionId => $optionValue) {
$item->addOption(new Varien_Object(array('product' => $item->getProduct(), 'code' => 'option_' . $optionId, 'value' => $optionValue)));
}
}
if (!empty($options['additional_options'])) {
$item->addOption(new Varien_Object(array('product' => $item->getProduct(), 'code' => 'additional_options', 'value' => serialize($options['additional_options']))));
}
return $this;
}
示例3: removeCatalogRedemptionsFromItem
/**
* Removes all applicable rules to the item's rule hash.
* Returns false if no changes were made.
*
* @param Mage_Sales_Model_Quote_Item $item
* @param array $rule_id_list
* @param integer $inst_id redemption instance id (this comes out of the item redemptions hash)
* @return boolean
*/
public function removeCatalogRedemptionsFromItem(&$item, $rule_id_list, $inst_id = 0)
{
//Check to make sure we can load the redeem points hash alright
if (!$item->getRedeemedPointsHash()) {
throw new Exception($this->__("Unable to load the redeem points hash"));
}
$catalog_redemptions = Mage::helper('rewards')->unhashIt($item->getRedeemedPointsHash());
foreach ($catalog_redemptions as $key => $redemption) {
$catalog_redemptions[$key] = (array) $redemption;
}
$doSave = false;
foreach ($rule_id_list as $rule_id) {
$rule = Mage::getModel('rewards/catalogrule_rule')->load($rule_id);
$foundRuleIdIndex = false;
foreach ($catalog_redemptions as $index => $redemption) {
$rule_id_is_same = $redemption[TBT_Rewards_Model_Catalogrule_Rule::POINTS_RULE_ID] == $rule_id;
$inst_id_is_same = $inst_id == 0 ? true : $redemption[TBT_Rewards_Model_Catalogrule_Rule::POINTS_INST_ID] == $inst_id;
if ($rule_id_is_same && $inst_id_is_same) {
$foundRuleIdIndex = $index;
}
}
if ($foundRuleIdIndex === false) {
throw new Exception("The rule entitled '" . $rule->getName() . "' is not applied to this product.");
} else {
unset($catalog_redemptions[$foundRuleIdIndex]);
$item->setRedeemedPointsHash(Mage::helper('rewards')->hashIt($catalog_redemptions));
$doSave = true;
}
}
if ($doSave) {
$item->save();
return true;
} else {
return false;
}
}