我正在尝试使用由 EAN(破折号)产品 ID 组成的字符串大规模更新我的产品的 SKU。
例如
EAN=1234 & ID=44
Result=1234-44
我很高兴使用可以复制/粘贴到 phpMyAdmin 中的 PHP 或 MySQL 语句。
请尽可能具体,因为您正在与一个初学者打交道。
在您的 magento 根文件夹中创建一个文件Updatesku.php
并在该文件中写入以下代码,然后使用以下 URL http://www.yourdomain.com/Updatesku.php执行它
<?php
require_once('app/Mage.php');
umask(0);
Mage::app();
$_productCollection = Mage::getModel('catalog/product')
->getCollection()->addAttributeToSelect('*');
foreach($_productCollection as $_product)
{
try
{
$ean = $_product->getAttEan();
$id = $_product->getEntityId();
$newSku = $ean . '-' . $id;
$_product->setSku($newSku);
$_product->save();
}
catch(Exception $e){
echo $e->getMessage();
}
}
为了更新所有那些SKUs
letf blank ,在您的文件中进行以下更改。
<?php
require_once('app/Mage.php');
umask(0);
Mage::app();
$_productCollection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('sku',array('null' => true))
->load();
foreach($_productCollection as $_product)
{
try
{
$ean = $_product->getAttEan();
$id = $_product->getEntityId();
$newSku = $ean . '-' . $id;
$_product->setSku($newSku);
$_product->save();
}
catch(Exception $e){
echo $e->getMessage();
}
}
以下代码应该可以......根据自己的喜好调整它......
<?php
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app();
// Loading products that satisfies the criteria
$productList = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
// ->addAttributeToFilter('sku', array('like' => '%-T')) //if criteria
;
//Writing to Magento Log
$totalString = count($productList)." Products were found.";
Mage::log($totalString, null, 'listProducts.log');
echo $totalString;
if(count($productList)){
foreach($productList as $product){
//updating products now
try{
$EAN = $product->getAttEan(); // sample EAN, eg $EAN = '1234';
$ID = $product->getEntityId(); // sample ID, eg, $ID = $product->getSku();
$newSku = $EAN . '-' . $ID;//build your new custom sku as per need
$product->setSku($newSku);
//update other if you want
$product->save();
$skuString = "Product with SKU : ".$product->getSku()." updated!!";
Mage::log($skuString, null, 'listProducts.log');
echo $skuString;
}catch(Exception $ex){
Mage::log($ex->getMessage(), null, 'listProducts.log');
echo $ex->getMessage();
}
}
echo "Custom Sku has been updated Succesfully";
}
?>