Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用EAN+更新Magento SKU;产品ID_Php_Mysql_Magento_Skus - Fatal编程技术网

Php 使用EAN+更新Magento SKU;产品ID

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.

我试图用EAN(破折号)产品ID组成的字符串批量更新我的产品SKU

例如

我很乐意使用PHP或MySQL语句,我可以将它们复制/粘贴到phpMyAdmin中


请尽可能具体,因为你是一个完全的初学者。

以下代码应该可以。。。。根据你的喜好调整一下

更新
在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();
         }
    }