/** * Bind gift rule to customer group(s) and website(s). * Save rule's associated store labels. * Save product attributes used in rule. * * @param Mage_Core_Model_Abstract $object * * @return Mage_SalesRule_Model_Resource_Rule */ protected function _afterSave(Mage_Core_Model_Abstract $object) { if ($object->hasStoreLabels()) { $this->saveStoreLabels($object->getId(), $object->getStoreLabels()); } if ($object->hasWebsiteIds()) { $websiteIds = $object->getWebsiteIds(); if (!is_array($websiteIds)) { $websiteIds = explode(',', (string) $websiteIds); } $this->bindRuleToEntity($object->getId(), $websiteIds, 'website'); } if ($object->hasCustomerGroupIds()) { $customerGroupIds = $object->getCustomerGroupIds(); if (!is_array($customerGroupIds)) { $customerGroupIds = explode(',', (string) $customerGroupIds); } $this->bindRuleToEntity($object->getId(), $customerGroupIds, 'customer_group'); } if ($object->hasProductIds()) { $productIds = $object->getProductIds(); if (!is_array($productIds)) { $productIds = explode(',', (string) $productIds); } $this->bindRuleToEntity($object->getId(), $productIds, 'product'); } // Save product attributes used in rule $ruleProductAttributes = array_merge($this->getProductAttributes(serialize($object->getConditions()->asArray())), $this->getProductAttributes(serialize($object->getActions()->asArray()))); if (count($ruleProductAttributes)) { $this->setActualProductAttributes($object, $ruleProductAttributes); } return parent::_afterSave($object); }
/** * Bind reminder rule to and website(s). * Save store templates data. * * @param Mage_Core_Model_Abstract $rule * @return Enterprise_Reminder_Model_Resource_Rule */ protected function _afterSave(Mage_Core_Model_Abstract $rule) { if ($rule->hasWebsiteIds()) { $websiteIds = $rule->getWebsiteIds(); if (!is_array($websiteIds)) { $websiteIds = explode(',', (string) $websiteIds); } $this->bindRuleToEntity($rule->getId(), $websiteIds, 'website'); } if ($rule->hasData('store_templates')) { $this->_saveStoreData($rule); } parent::_afterSave($rule); return $this; }
/** * Bind catalog rule to customer group(s) and website(s). * Update products which are matched for rule. * * @param Mage_Core_Model_Abstract $object * * @return Mage_CatalogRule_Model_Resource_Rule */ protected function _afterSave(Mage_Core_Model_Abstract $object) { if ($object->hasWebsiteIds()) { $websiteIds = $object->getWebsiteIds(); if (!is_array($websiteIds)) { $websiteIds = explode(',', (string) $websiteIds); } $this->bindRuleToEntity($object->getId(), $websiteIds, 'website'); } if ($object->hasCustomerGroupIds()) { $customerGroupIds = $object->getCustomerGroupIds(); if (!is_array($customerGroupIds)) { $customerGroupIds = explode(',', (string) $customerGroupIds); } $this->bindRuleToEntity($object->getId(), $customerGroupIds, 'customer_group'); } parent::_afterSave($object); return $this; }
/** * Bind sales rule to customer group(s) and website(s). * Save rule's associated store labels. * Save product attributes used in rule. * * @param Mage_Core_Model_Abstract $object * * @return Mage_SalesRule_Model_Resource_Rule */ protected function _afterSave(Mage_Core_Model_Abstract $object) { if ($object->hasStoreLabels()) { $this->saveStoreLabels($object->getId(), $object->getStoreLabels()); } if ($object->hasWebsiteIds()) { $websiteIds = $object->getWebsiteIds(); if (!is_array($websiteIds)) { $websiteIds = explode(',', (string) $websiteIds); } $this->bindRuleToEntity($object->getId(), $websiteIds, 'website'); } if ($object->hasCustomerGroupIds()) { $customerGroupIds = $object->getCustomerGroupIds(); if (!is_array($customerGroupIds)) { $customerGroupIds = explode(',', (string) $customerGroupIds); } $this->bindRuleToEntity($object->getId(), $customerGroupIds, 'customer_group'); } // Save product attributes used in rule $ruleProductAttributes = array_merge($this->getProductAttributes(serialize($object->getConditions()->asArray())), $this->getProductAttributes(serialize($object->getActions()->asArray()))); if (count($ruleProductAttributes)) { $this->setActualProductAttributes($object, $ruleProductAttributes); } // Update auto geterated specific coupons if exists if ($object->getUseAutoGeneration() && $object->hasDataChanges()) { Mage::getResourceModel('Mage_SalesRule_Model_Resource_Coupon')->updateSpecificCoupons($object); } return parent::_afterSave($object); }
/** * Save all website Ids associated to specified segment * * @deprecated after 1.11.2.0 use $this->bindRuleToEntity() instead * * @param Mage_Core_Model_Abstract|Enterprise_CustomerSegment_Model_Segment $segment * * @return Enterprise_CustomerSegment_Model_Resource_Segment */ protected function _saveWebsiteIds($segment) { if ($segment->hasWebsiteIds()) { $websiteIds = $segment->getWebsiteIds(); if (!is_array($websiteIds)) { $websiteIds = explode(',', (string) $websiteIds); } $this->bindRuleToEntity($segment->getId(), $websiteIds, 'website'); } return $this; }