0
3時間以上の関連トピックを確認しましたが、解決策を見つけることができませんでした。 データベースの一括SKUをcsvファイルから更新しようとしました。 コードは次のとおりです。致命的なエラー:オブジェクトでないオブジェクトのsetsku()を呼び出す
$updates_file="skus.csv";
$sku_entry=array();
$updates_handle=fopen($updates_file, 'r');
if($updates_handle) {
while($sku_entry=fgetcsv($updates_handle, 1000, ",")) {
$old_sku=$sku_entry[0];
$new_sku=$sku_entry[1];
echo "<br>Updating ".$old_sku." to ".$new_sku." - ";
try {
$get_item = $connect->query('SELECT catalog_product_entity FROM skirtbik_mage560->loadByAttribute("sku", $old_sku)');
$get_item = 'SELECT sku FROM catalog_product_entity->loadByAttribute("sku", $old_sku)';
$get_item23 = $connect->query('SELECT sku FROM catalog_product_entity');
if ($get_item) {
$get_item->setsku($new_sku)->save();
echo $get_item;
echo "successful";
} else {
echo "item not found";
}
} catch (Exception $e) {
echo "Cannot retrieve products from Magento: ".$e->getMessage()."<br>";
return;
}
}
}
fclose($updates_handle);
エラーは次のとおりです。
Updating 10001 to 20001 -
Fatal error: Call to a member function setsku() on a non-object in /home/skirtbik/public_html/magento/bulk_skus_update.php on line 25
'$ get_item = ' SELECT sku from catalog_product_entity-> loadByAttribute( "sku"、$ old_sku) ';は変数を上書きします。 – SOFe
また、問題の変数の値を知りたい場合は、 'echo'の代わりに' var_dump'を使います。 – SOFe
$ get_item変数をトレースします。それはあなたが思うものではありません。 – WillardSolutions