Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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 在不知道ID的情况下在magento目录外获取产品_Php_Magento - Fatal编程技术网

Php 在不知道ID的情况下在magento目录外获取产品

Php 在不知道ID的情况下在magento目录外获取产品,php,magento,Php,Magento,我有一个CSV的SKU的,我需要加载以外的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')

我有一个CSV的SKU的,我需要加载以外的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,我甚至认为我可以发誓我添加它是为了测试。这段代码有效。

试试这个

print_r($product);

有时var_dump似乎不会触发属性getter,因此它们显示为null。在这里,我可以给您一个替代解决方案,它对您有效

创建从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);

希望这一定会对你有所帮助。

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

哦,该死。我可以发誓我是为了测试才加的。我仔细检查了一下,但它不在那里。不确定发生了什么,但这是问题的症结所在。我现在觉得自己很笨!谢谢你的提示!始终欢迎..我已在本地服务器上试用了您的代码。我已经面临这个问题了。。因此,我刚刚尝试了print_r()。它工作得很好。感谢函数,它确实工作得很好。我以后肯定会用的。但我的问题不同,你可以看到编辑。