1
지난 72 시간 이내의 날짜를 가진 모든 제품을 나열하려고합니다. 스크립트는 400 개가 넘는 제품을 제외하고는 제대로 작동합니다.제품보기 특별 행사 날짜 - Magento 스크립트 최적화
너무 많은 컬렉션을로드하고 있거나 올바르게로드되지 않은 것을 사용하고 있으므로 실제로 최적화에 대한 조언이 필요하다고 생각합니다.
<?php
set_time_limit(0);
require_once 'app/Mage.php';
Mage::app('default');
try
{
$products = Mage::getModel('catalog/product')->getCollection()
->setStoreId(1);
$products->addAttributeToFilter('status', 1);
$products->addAttributeToFilter('visibility', 4);
$products->addAttributeToSelect('*');
$prodIds=$products->getAllIds();
$product_count = 0;
$products_changed = 0;
//$product = Mage::getModel('catalog/product');
echo "Price Changes Last 72 Hours<br><br>";
foreach($prodIds as $productId)
{
$product_count++;
//$products->load($productId);
// load product data
$product = Mage::getModel('catalog/product')->load($productId);
$special_price = round($product->getSpecialprice(),2);
$human_readable_date = $product->getSpecialFromDate();
$sku = $product->getSku();
$specialPriceFromDate = strtotime($human_readable_date);
$time_now = microtime(true);
$product_link = "http://www.mydomain.com.au/".$product->getUrlPath();
$date_array = explode(' ', $human_readable_date);
$short_date = $date_array[0];
if (($time_now - $specialPriceFromDate) < 259200)
{
$products_changed++;
echo "SKU: " . '<a href=' . $product_link . '>' . $sku . '</a>' . " Date Changed: " . $short_date . " New Price $" . $special_price . "<br>";
}
//if ($product_count == 400) exit;
}
}
catch(Exception $e){
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
error_log($e->getMessage(), 1, '[email protected]', $headers);
die($e->getMessage());
}
?>
브릴리언트! 환상적인 작품 :) –