Example #1
0
 /**
  * Assign group prices to product data
  *
  * @param Mage_Catalog_Model_Abstract $object
  * @return $this
  */
 public function afterLoad($object)
 {
     $data = $this->_getResource()->loadProfileData($object->getId(), $object->getEntityTypeId());
     $object->setData($this->getAttribute()->getName(), $data);
     $object->setOrigData($this->getAttribute()->getName(), $data);
     return $this;
 }
 /**
  * Update attribute value for specific store
  *
  * @param Mage_Catalog_Model_Abstract $object
  * @param object $attribute
  * @param mixed $value
  * @param int $storeId
  * @return Mage_Catalog_Model_Resource_Abstract
  */
 protected function _updateAttributeForStore($object, $attribute, $value, $storeId)
 {
     $adapter = $this->_getWriteAdapter();
     $table = $attribute->getBackend()->getTable();
     $entityIdField = $attribute->getBackend()->getEntityIdField();
     $select = $adapter->select()->from($table, 'value_id')->where('entity_type_id = :entity_type_id')->where("{$entityIdField} = :entity_field_id")->where('store_id = :store_id')->where('attribute_id = :attribute_id');
     $bind = array('entity_type_id' => $object->getEntityTypeId(), 'entity_field_id' => $object->getId(), 'store_id' => $storeId, 'attribute_id' => $attribute->getId());
     $valueId = $adapter->fetchOne($select, $bind);
     /**
      * When value for store exist
      */
     if ($valueId) {
         $bind = array('value' => $this->_prepareValueForSave($value, $attribute));
         $where = array('value_id = ?' => (int) $valueId);
         $adapter->update($table, $bind, $where);
     } else {
         $bind = array($idField => (int) $object->getId(), 'entity_type_id' => (int) $object->getEntityTypeId(), 'attribute_id' => (int) $attribute->getId(), 'value' => $this->_prepareValueForSave($value, $attribute), 'store_id' => (int) $storeId);
         $adapter->insert($table, $bind);
     }
     return $this;
 }
Example #3
0
 /**
  * Update attribute value for specific store
  *
  * @param   Mage_Catalog_Model_Abstract $object
  * @param   object $attribute
  * @param   mixed $value
  * @param   int $storeId
  * @return  Mage_Catalog_Model_Resource_Eav_Mysql4_Abstract
  */
 protected function _updateAttributeForStore($object, $attribute, $value, $storeId)
 {
     $entityIdField = $attribute->getBackend()->getEntityIdField();
     $select = $this->_getWriteAdapter()->select()->from($attribute->getBackend()->getTable(), 'value_id')->where('entity_type_id=?', $object->getEntityTypeId())->where("{$entityIdField}=?", $object->getId())->where('store_id=?', $storeId)->where('attribute_id=?', $attribute->getId());
     /**
      * When value for store exist
      */
     if ($valueId = $this->_getWriteAdapter()->fetchOne($select)) {
         $this->_getWriteAdapter()->update($attribute->getBackend()->getTable(), array('value' => $this->_prepareValueForSave($value, $attribute)), 'value_id=' . $valueId);
     } else {
         $this->_getWriteAdapter()->insert($attribute->getBackend()->getTable(), array($entityIdField => $object->getId(), 'entity_type_id' => $object->getEntityTypeId(), 'attribute_id' => $attribute->getId(), 'value' => $this->_prepareValueForSave($value, $attribute), 'store_id' => $storeId));
     }
     return $this;
 }