在我们的 Magento 1.5.0.1 上,我编写了一个 PHP 脚本来更新我们所有的产品元标题,使其基于每个产品的名称和 SKU。该脚本通过 SSH 调用 PHP 来运行。
运行脚本后,我在 M2E Pro(eBay 同步模块)中注意到每个产品似乎都已被禁用。
查看它们没有被禁用的实际产品,因此看来我的脚本以某种方式伪造了事件。
然而,在我们的 3,000 多种产品中,其中一种被禁用,随后 M2E Pro 从 eBay 上删除了该列表。
这是我的脚本:
<?php
set_time_limit(0);
define('MAGENTO', "/home/discount/public_html");
require_once MAGENTO . '/app/Mage.php';
error_reporting(E_ALL);
ini_set('display_errors', '1');
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$storeId = Mage::app()->getStore('default')->getId();
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('sku')
->addAttributeToSelect('name')
->addAttributeToSelect('meta_title');
$total = count($products);
$count = 1;
foreach ($products as $product)
{
$mt = sprintf("%s [%s]", $product->getName(), $product->getSku());
$sku = $product->getSku();
if ($product->getMetaTitle() != $mt)
{
$percent = $count / $total;
echo $sku." ".$percent."\n";
$product->setMetaTitle($mt);
$product->save();
}
}
?>
我想知道我需要对我的脚本做些什么才能使其正确更新元标题而不引起奇怪的事件?