In some shared server product prices can be updated via Dataflow profiles > import though but this is very slow and requires lots of csv fields(besides sku & price) for updating or it might get sometimes 500 internal server error due to less memory support.
In this post shows how to talk about updating product prices just by using csv with two fields: sku & price(new) which is very fast enough even for thousands of products.
Steps
<?php /** * @category Export / Import */ require_once 'app/Mage.php'; 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'); /***************** 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)); } /***************** FUNCTIONS ********************/ $csv = new Varien_File_Csv(); $data = $csv->getData('/path/to/skus_prices.csv'); //path to csv array_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] . ') doesn\'t exist.<br />'; } $count++; } echo $message; ... ?>
And upload to root path where magento is installed.
Hope it works well for those who looking fast import..!!
©2021. All rights reserved. Terms of Use | Privacy Policy
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
very good post, i certainly love this website, carry on it.
Aw, this was a really nice post. In thought I want to put in writing like this moreover – taking time and actual effort to make an excellent article… but what can I say… I procrastinate alot and in no way seem to get one thing done. http://skyslotsnow.ru
If time is money you’ve made me a weleihtar woman.
There are some attention-grabbing points in time on this article but I don’t know if I see all of them middle to heart. There is some validity however I’ll take hold opinion till I look into it further. Good article , thanks and we want more! Added to FeedBurner as effectively http://orangeslots24.ru
It’s great to read something that’s both enjoyable and provides pramtagisdc solutions.
This is the fitting blog for anyone who needs to search out out about this topic. You understand so much its nearly laborious to argue with you (not that I truly would want…HaHa). You positively put a new spin on a subject thats been written about for years. Nice stuff, simply nice!
Hahaulejll! I needed this-you’re my savior.
An fascinating dialogue is worth comment. I believe that you need to write extra on this topic, it might not be a taboo subject however typically people are not sufficient to talk on such topics. To the next. Cheers
This is the perfect way to break down this information.
This actually answered my problem, thanks!
A big thank you for your article post.Really looking forward to read more. Will read on…
Short, sweet, to the point, FRE-texacEly as information should be!
Thanks, is very use full.