快速更新MAGENT产品价格

来源:互联网 发布:奥巴马医改利弊 知乎 编辑:程序博客网 时间:2024/06/02 15:15

用后台的magento上传功能, 只是要更新价格而已, 是不是只有几百条或几千条数据要更新几百年

google后, 找到一个更新价格的方面比较快的方法是, 直接操作sql

<?php/** * @author      MagePsycho <info@magepsycho.com> * @website     http://www.magepsycho.com * @category    Export / Import */$mageFilename = 'app/Mage.php';require_once $mageFilename;Mage::setIsDeveloperMode(true);ini_set('display_errors', 1);umask(0);Mage::app('admin');Mage::register('isSecureArea', 1);Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); set_time_limit(0);ini_set('memory_limit','1024M'); /***************** UTILITY FUNCTIONS ********************/function _getConnection($type = 'core_read'){    return Mage::getSingleton('core/resource')->getConnection($type);} function _getTableName($tableName){    return Mage::getSingleton('core/resource')->getTableName($tableName);} function _getAttributeId($attribute_code = 'price'){    $connection = _getConnection('core_read');    $sql = "SELECT attribute_id                FROM " . _getTableName('eav_attribute') . "            WHERE                entity_type_id = ?                AND attribute_code = ?";    $entity_type_id = _getEntityTypeId();    return $connection->fetchOne($sql, array($entity_type_id, $attribute_code));} function _getEntityTypeId($entity_type_code = 'catalog_product'){    $connection = _getConnection('core_read');    $sql        = "SELECT entity_type_id FROM " . _getTableName('eav_entity_type') . " WHERE entity_type_code = ?";    return $connection->fetchOne($sql, array($entity_type_code));} function _getIdFromSku($sku){    $connection = _getConnection('core_read');    $sql        = "SELECT entity_id FROM " . _getTableName('catalog_product_entity') . " WHERE sku = ?";    return $connection->fetchOne($sql, array($sku)); } function _checkIfSkuExists($sku){    $connection = _getConnection('core_read');    $sql        = "SELECT COUNT(*) AS count_no FROM " . _getTableName('catalog_product_entity') . " WHERE sku = ?";    $count      = $connection->fetchOne($sql, array($sku));    if($count > 0){        return true;    }else{        return false;    }} function _updatePrices($data){    $connection     = _getConnection('core_write');    $sku            = $data[0];    $newPrice       = $data[1];    $productId      = _getIdFromSku($sku);    $attributeId    = _getAttributeId();     $sql = "UPDATE " . _getTableName('catalog_product_entity_decimal') . " cped                SET  cped.value = ?            WHERE  cped.attribute_id = ?            AND cped.entity_id = ?";    $connection->query($sql, array($newPrice, $attributeId, $productId));}/***************** UTILITY FUNCTIONS ********************/ $csv                = new Varien_File_Csv();$data               = $csv->getData('prices.csv'); //path to csvarray_shift($data); $message = '';$count   = 1;foreach($data as $_data){    if(_checkIfSkuExists($_data[0])){        try{            _updatePrices($_data);            $message .= $count . '> Success:: While Updating Price (' . $_data[1] . ') of Sku (' . $_data[0] . '). <br />';         }catch(Exception $e){            $message .=  $count .'> Error:: While Upating  Price (' . $_data[1] . ') of Sku (' . $_data[0] . ') => '.$e->getMessage().'<br />';        }    }else{        $message .=  $count .'> Error:: Product with Sku (' . $_data[0] . ') does\'t exist.<br />';    }    $count++;}echo $message;


上传的csv格式如图:


0 0
原创粉丝点击