Php 使用EAN+更新Magento SKU;产品ID
我试图用EAN(破折号)产品ID组成的字符串批量更新我的产品SKU 例如 我很乐意使用PHP或MySQL语句,我可以将它们复制/粘贴到phpMyAdmin中Php 使用EAN+更新Magento SKU;产品ID,php,mysql,magento,skus,Php,Mysql,Magento,Skus,我试图用EAN(破折号)产品ID组成的字符串批量更新我的产品SKU 例如 我很乐意使用PHP或MySQL语句,我可以将它们复制/粘贴到phpMyAdmin中 请尽可能具体,因为你是一个完全的初学者。以下代码应该可以。。。。根据你的喜好调整一下 更新 在magento根文件夹中创建一个文件Updatesku.php 并在该文件中编写下面的代码,然后使用下面的URL执行它 要更新所有letf为空的SKU,请在文件中进行以下更改 <?php require_once('app/Mage.
请尽可能具体,因为你是一个完全的初学者。以下代码应该可以。。。。根据你的喜好调整一下 更新
在magento根文件夹中创建一个文件
Updatesku.php
并在该文件中编写下面的代码,然后使用下面的URL执行它
要更新所有letf为空的SKU
,请在文件中进行以下更改
<?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();
}
}
所有产品的EAN都是固定的吗?不确定您的意思,但每个产品都有制造商提供的自己的EAN编号。事实上,我可能会忘记填写一些EAN数字,所以它可能是空的。出于这个原因,我想最好将SKU格式化为这样的ID-EAN(代替EAN-ID,如果EAN不存在,那么使用没有破折号的ID。例如,44听起来合理吗?我应该将此代码粘贴到记事本中,命名为updatesku.php并运行它吗?抱歉,我不知道我在做什么,,,请查看更新后的答案。您可以将其保存在Magento安装根目录下的php文件中,然后从浏览器运行。您不需要o根据需要填充$EAN和$ID。为了绝对安全,请在备份之前进行DB备份。一旦完成,请删除该文件,或者重命名一个困难的文件名,以解决安全问题。这没有完全起作用。页面长时间处于加载状态,之后所有产品现在都有一个破折号(仅限)对于SKU,您不需要知道EAN属性代码是att_EAN吗?我如何填充EAN和ID?对不起,我不知道php和MySQL这是结果:SQLSTATE[40001]:序列化失败:尝试获取锁时发现1213死锁;尝试重新启动事务,查询是:插入目录产品\u实体\u int
(实体类型id
,属性id
,存储id
,实体id
,值
)值(,在重复密钥更新时,value
=值(value
)…等等。实际上,大多数SKU都按照我的要求进行了修改,但其中一些被保留了下来blank@Pablo检查我的第二个答案。这将以您想要的格式更新所有SKU(保留为空)。
<?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";
}
?>
<?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();
}
}
<?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();
}
}