//********product save model*********//
function updateAttribute($id,$values,$attribute,$tablename){
$connection = $this->_getConnection('core_write');
$newvalues = $values;
$productId = $id;
$attributeId = $this->_getAttributeId($attribute);
if($this->_checkIfIdExists($productId)){
$sql = "UPDATE " . $this->_getTableName($tablename) . " cped
SET cped.value = ?
WHERE cped.attribute_id = ?
AND cped.entity_id = ?";
$connection->query($sql, array($newvalues, $attributeId, $productId));
return 1;
}else{
return 0;
}
}
//得到magento的链接,用于操作数据库。
function _getConnection($type = 'core_read'){
return Mage::getSingleton('core/resource')->getConnection($type);
}
//得到table的name
function _getTableName($tableName){
return Mage::getSingleton('core/resource')->getTableName($tableName);
}
//通过code值,得到属性的id
function _getAttributeId($attribute_code){
$connection = $this->_getConnection('core_read');
$sql = "SELECT attribute_id
FROM " .$this->_getTableName('eav_attribute') . "
WHERE
entity_type_id = ?
AND attribute_code = ?";
$entity_type_id = $this->_getEntityTypeId();
return $connection->fetchOne($sql, array($entity_type_id, $attribute_code));
}
//得到eav类型的id
function _getEntityTypeId($entity_type_code = 'catalog_product'){
$connection = $this->_getConnection('core_read');
$sql = "SELECT entity_type_id FROM " . $this->_getTableName('eav_entity_type') . " WHERE entity_type_code = ?";
return $connection->fetchOne($sql, array($entity_type_code));
}
//检查sku是否存在。
function _checkIfIdExists($id){
$connection = $this->_getConnection('core_read');
$sql = "SELECT COUNT(*) AS count_no FROM " . $this->_getTableName('catalog_product_entity') . " WHERE entity_id = ?";
$count = $connection->fetchOne($sql, array($id));
if($count > 0){
return true;
}else{
return false;
}
}
Magento 快速保存产品属性的代码 - 不能更新flat表
最新推荐文章于 2024-10-22 15:11:29 发布