1

我有一个充满 SKU 的 CSV,我需要将其加载到 Magento 目录之外以进行一些更改。

到目前为止,我有这个:

require_once('bla/bla/../../app/Mage.php');
umask(0);
Mage::app();

$product1 = Mage::getModel('catalog/product')->load(15186);
$productid = Mage::getModel('catalog/product')->getIdBySku('thatsku');
$product2->load($productid);
var_dump($product1);
var_dump($product2);

在这种情况下, $product1 按预期返回产品,但 $product2 返回bool(false)。当我尝试这个时也会发生同样的事情:

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
var_dump ($_product);

$product 也像bool(false)这里一样返回。

知道发生了什么吗?

编辑:对不起,我很笨。数据库中没有 SKU,即使我可以发誓我添加它是为了测试。此代码有效。

4

3 回答 3

1

尝试这个 ,

print_r($product);

有时 var_dump 似乎不会触发属性获取器,因此它们显示为 null

于 2013-11-12T10:42:15.473 回答
1

在这里我可以给你一个替代的解决方案,它会为你工作

创建函数以从 SKU 获取产品 ID,这样会更好

function getProductId($sku)
{

    $write = Mage::getSingleton('core/resource')->getConnection('core_write');
    static $product_ids;
    if (is_object($sku)) {
        $sku = $sku->asArray();
    }
    if (empty($product_ids)) {
        $skus = $write->query('select sku, entity_id from `catalog_product_entity` where type_id="simple"');
        foreach ($skus->fetchAll() as $data) {
            $product_ids[$data['sku']] = $data['entity_id'];
        }
        unset($skus);
        unset($data);
    }
    return isset($product_ids[$sku]) ? $product_ids[$sku] : '';
}

将返回产品 ID,然后您可以使用以下代码轻松找到

$id = getProductId('YOUR SKU GOES HERE');

$product = Mage::getModel('catalog/product')->load($id);

希望这对你有帮助。

于 2013-11-12T10:47:53.530 回答
0

对不起,我很笨。数据库中没有 SKU,即使我可以发誓我添加它是为了测试。此代码有效。

于 2013-11-12T10:55:10.523 回答