내 솔루션에 가깝다고 느낍니다.하지만 내 운을 아는 방법이 될 수 있습니다. Magento 내의 특정 카테고리의 모든 가격을 업데이트하는 간단한 PHP 스크립트를 작성하려고합니다. 아래 코드는 제발 도와주세요. 문제는 결과를 반환하지 않는다는 것입니다. 카테고리를 구체적으로 언급하는 섹션을 꺼내면 모든 제품에 대해 잘 실행됩니다.Magento - 카테고리의 모든 가격 업데이트
<?php
require 'app/Mage.php'; Mage::app();
$products = Mage::getModel('catalog/product')->getCollection()
->addStoreFilter()
->addAttributeToSelect('name')
->addAttributeToSelect('price')
;
$_products = Mage::getModel('catalog/product')->load($productId);
$_category = $_products->getCategoryId();
if($_category == 5){
foreach ($products as $product) {
echo $product->getName() .'<br>';
echo "old: " . $product->getPrice() .'<br>';
$newPrice = ($product->getPrice() * 1.3);
$product->setPrice($newPrice);
$product->save();
echo "new: " . $product->getPrice();
echo '<br><br><br><br>';
}
} else { echo "No Results";
}
?>
최신 수정. 위의 코드에서 쓰레기를 제거하고 아직 뭔가가 누락되었습니다. 나는 이것에 대한 답을 찾기 위해 온통 검색했다. if 문이 제거되면 다시 작동합니다. 고마워요
<?php
require 'app/Mage.php'; Mage::app();
$products = Mage::getModel('catalog/category')
->load($category_id)
->getProductCollection()
->addAttributeToSelect('*');
if($category_id == 5){
foreach($products as $product) {
echo $product->getName() .'<br>';
echo "old: " . $product->getPrice() .'<br>';
$newPrice = ($product->getPrice() * 1.3);
$product->setPrice($newPrice);
$product->save();
echo "new: " . $product->getPrice();
echo '<br><br><br><br>';
}
} else { echo "No Results";
}
?>
첫 번째 문제는 '$ productId'가 표시되고 여기에 정의하지 않았기 때문입니다. – Jason
아마 필요하지 않습니다. 나는 그걸 가지고 도구를 만들고 그것을 제거하는 것을 잊어 버렸습니다. – Jordan