快速更新MAGENT产品价格

本文介绍了一种使用PHP脚本和SQL查询来高效批量更新Magento电商平台中产品价格的方法。通过直接操作数据库,避免了繁琐的后台操作,显著提高了处理大量数据时的价格更新效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用后台的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 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] . ') does\'t exist.<br />';
    }
    $count++;
}
echo $message;


上传的csv格式如图:


03-14
### Magnet 协议及其在 IT 领域中的应用 Magnet 协议是一种基于 URI 的标准,用于通过哈希值标识资源并允许客户端从多个来源下载文件。它广泛应用于点对点 (P2P) 文件共享网络中。以下是关于 Magnet 协议的一些重要技术和实现细节: #### 1. Magnet 协议的基础结构 Magnet 链接通常由 `magnet:` 前缀开头,并包含一个或多个参数来描述目标资源。最常见的参数是 `xt` 参数(表示 eXact Topic),其值通常是 `urn:btih:<info-hash>` 形式的 Base32 编码的 SHA-1 散列值[^2]。 #### 2. 动态设置 SSL/TLS 协议的支持 尽管 Magnet 协议本身并不直接涉及 SSL/TLS 设置,但在现代 P2P 应用程序中,动态调整安全协议的能力变得尤为重要。例如,在支持服务器名称指示 (SNI) 的场景下,可以利用类似的机制确保通信的安全性。这种灵活性对于保护数据传输至关重要[^1]。 #### 3. 实现示例 下面是一个简单的 Python 脚本,展示如何解析基本的 Magnet 链接并提取其中的关键信息: ```python from urllib.parse import urlparse, parse_qs def parse_magnet_link(magnet_url): parsed = urlparse(magnet_url) query_components = parse_qs(parsed.query) info_hash_base32 = None display_name = None for key, value in query_components.items(): if key.startswith('xt') and 'btih' in value[0]: info_hash_part = value[0].split(':')[-1] info_hash_base32 = info_hash_part.upper() elif key == 'dn': display_name = value[0] return { "Info Hash (Base32)": info_hash_base32, "Display Name": display_name } example_magnet = "magnet:?xt=urn:btih:ABCDEF1234567890&dn=ExampleFile" parsed_data = parse_magnet_link(example_magnet) print(f"Parsed Info Hash: {parsed_data['Info Hash (Base32)']}") print(f"Display Name: {parsed_data['Display Name']}") ``` 此脚本展示了如何从给定的 Magnet URL 中提取散列值和显示名称。 #### 4. 安全性和隐私考虑 由于 Magnet 链接仅提供资源的唯一标识符而不存储实际位置信息,因此它们天然具备一定的匿名特性。然而,这同时也带来了潜在的风险——恶意行为者可能滥用该功能传播非法内容。为了缓解这些问题,开发者应实施严格的验证流程以及加密措施以增强安全性[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值