0

我正在尝试使用由 EAN(破折号)产品 ID 组成的字符串大规模更新我的产品的 SKU。

例如

EAN=1234 & ID=44

Result=1234-44

我很高兴使用可以复制/粘贴到 phpMyAdmin 中的 PHP 或 MySQL 语句。

请尽可能具体,因为您正在与一个初学者打交道。

4

3 回答 3

0

在您的 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();
     }
}
于 2015-06-10T12:46:37.570 回答
0

为了更新所有那些SKUsletf 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();
         }
    }
于 2015-06-11T06:07:43.560 回答
-1

以下代码应该可以......根据自己的喜好调整它......

更新

<?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";
}

?>
于 2015-06-08T10:35:48.080 回答