3

データフロー プロファイルを使用していますが、magento から entity_id または製品 ID をエクスポートできません。これは、SKU を使用できないリマーケティング コードを統合するために必要です。データフロー プロファイルを使用して entity_id をエクスポートする方法はありますか。

次に、データフロー プロファイルを 24 時間ごとに実行する必要があります。

よろしく、

ファルーク・カーン

4

1 に答える 1

1

次の URL から製品 ID をエクスポートすることができます http://www.vuleticd.com/2013/01/27/export-product-ids-with-magento-dataflow-advanced-profiles/

データフロー プロファイルを実行するには、24 時間ごとに実行するようにスクリプトを構成する必要があります。

次のコードを使用すると、profileId と csv ファイル名のみを変更する必要があります。

<?php
require_once 'app/Mage.php';

umask(0);

Mage::app();

$profileId = 7; //put your profile id here
$filename = "cronimport.csv"; //file needs to be present in var/import directory  

if (!isset($filename))  {
    die("No file has been set!");
}

$logFileName= $filename.'_'.date('m_d_Y h_i_s_a', time()).'.log';  

$recordCount = 0;

Mage::log("Import Started",null,$logFileName);  

$profile = Mage::getModel('dataflow/profile');

$userModel = Mage::getModel('admin/user');
$userModel->setUserId(1);
Mage::getSingleton('admin/session')->setUser($userModel);

if ($profileId) {
    $profile->load($profileId);
    if (!$profile->getId()) {
      Mage::getSingleton('adminhtml/session')->addError('The profile you are trying to save no longer exists');
    }
}

Mage::register('current_convert_profile', $profile);

$profile->run();

$batchModel = Mage::getSingleton('dataflow/batch');
if ($batchModel->getId()) 
{
    if ($batchModel->getAdapter()) 
    {
        //@mail('EMAIL_ADDRESS','Cron started','Test','');

      $batchId = $batchModel->getId(); 
      $batchImportModel = $batchModel->getBatchImportModel();
      $importIds = $batchImportModel->getIdCollection();  

      $batchModel = Mage::getModel('dataflow/batch')->load($batchId);      
      $adapter = Mage::getModel($batchModel->getAdapter());
      foreach ($importIds as $importId) {
        $recordCount++;
        try{
          $batchImportModel->load($importId);
          if (!$batchImportModel->getId()) {
             $errors[] = Mage::helper('dataflow')->__('Skip undefined row');
             continue;
          }

          $importData = $batchImportModel->getBatchData();

          try {
            $adapter->saveRow($importData);

          } catch (Exception $e) {
            Mage::log($e->getMessage(),null,$logFileName);          
            continue;
          }

          if ($recordCount%20 == 0) {
            //Mage::log($recordCount . ' - Completed!!',null,$logFileName);
          }
        } catch(Exception $ex) {
          Mage::log('Record# ' . $recordCount . ' - SKU = ' . $importData['sku']. ' - Error - ' . $ex->getMessage(),null,$logFileName);        
        }
      }
      foreach ($profile->getExceptions() as $e) {
        Mage::log($e->getMessage(),null,$logFileName);          
      }
    }
}

echo 'Import Completed';
Mage::log("Import Completed",null,$logFileName);
//@mail('YOUR EMAIL','Cron Ended','Test','');
?>
于 2015-08-21T20:18:49.277 に答える