직접 SQL을 사용하는 스크립트에서 magento 모델 및 컬렉션을 사용하는 스크립트를 변환 할 수있는 방법이 있습니까?SQL로 변환 Magento 모델 기반 스크립트
나는 모든 것이 가능하다는 것을 알고있다. :) 질문은 내 스크립트에서 쿼리를 가져 와서 직접 DB 스크립트에서 다시 사용할 수있는 쉽고 직관적 인 방법에 관한 질문이다.
왜? 더 빠른 스크립트가 있기를 바랍니다.
코드 예?
이 스크립트를 가정 :function getProd() {
$collection = Mage::getModel('catalog/product')
->getCollection()
->addTierPriceData();
return $collection;
}
function getTier($prod) {
$t_1 = false;
$_tierPrices = $prod->getTierPrice();
if ($_tierPrices) {
$_firstTier = array_slice($_tierPrices, 0, 1);
if (isset($_firstTier[0]))
$t_1 = $_firstTier[0]['price'];
}
return $t_1;
}
function exec() {
$collection = getProd();
$i = 0;
foreach ($collection as $prod) {
$class = ($i % 2 == 0) ? '' : 'class="odd"';
$t1 = 0;
if ($t1 = getTier($prod)) {
$prod = mage::getModel('catalog/product')->load($prod->getId());
$prod->setPrice($t1);
$prod->save();
if ($safe)
set_time_limit(60);
}
}
}
exec();
은 기본적으로 내가 계층의 가격이 모든 제품을 처리하고 계층 가격으로 제품의 주요 가격을 대체하고 싶습니다.
이 스크립트는 12000 개 제품에서 9 시간 이상 소요되므로 SQL 접근 방식은 빠를 수 있지만 DB 구조를 연구해야한다고 생각합니다.
중 하나는 당신이 필요로하는 모두가 볼 수있는 간단한 오프 솔루션의 경우
죄송합니다. 질문을 업데이트하기 만하면됩니다. 그냥 $ collection-> getSelect()보다 좀 더 구조적으로 대답하십시오. wellcome입니다 ... 예를 들어 업데이트 쿼리는 어떻습니까? – WonderLand