2015-09-28 98 views
0

問題與慢查詢

我有Magento的店,這家店運行同步聯網產品和存儲中的腳本問題,這個腳本運行每個1個小時,我的服務器管理員阻止網站訪問,因爲這個劇本是得到緩慢的查詢。

問題

我的劇本剛剛看了一個CSV文件,因爲如果SKU已經註冊的每一行檢查時,如果已經更新重量,股票和價格,有更好的方法來做到這一點?

這是我的腳本。

$produto = Mage::getModel('catalog/product'); 
$productId = $produto->getIdBySku($sku); 
$produto->load($productId); 

if ($produto->getId()) { 
    $stock = $produto->getStockData(); 
    $stock['qty'] = $quantidade; 
    $stock['is_in_stock'] = $this->initStock($quantidade); 
    $stock['manage_stock'] = 1; 
    $stock['use_config_manage_stock'] = 1; 
    $produto->setData('price', $preco); 
    if ($altura > 0) 
     $produto->setData('volume_altura', $altura); 
    if ($comprimento > 0) 
     $produto->setData('volume_comprimento', $comprimento); 
    if ($largura > 0) 
     $produto->setData('volume_largura', $largura); 
    $produto->setData('weight', $this->initWeight($peso)); 
    $produto->setStockData($stock); 

    $produto->save(); 
} else { 
    $produto = Mage::getModel('catalog/product'); 
    $produto->setTypeId('simple'); 
    $produto->setAttributeSetId(4); 
    $produto->setData('tax_class_id', 0); 
    $produto->setVisibility(1); 
    $produto->setStatus(1); 
    $produto->setData('sku', $sku); 
    $produto->setData('color', $cor); 
    $produto->setData('name', utf8_encode($descricao)); 
    $produto->setData('marca', $this->initAttribute(148, $marca)); 
    $produto->setData('codigo_barra', $codBarra); 
    $produto->setData('price', $preco); 
    if ($altura > 0) 
     $produto->setData('volume_altura', $altura); 
    if ($comprimento > 0) 
     $produto->setData('volume_comprimento', $comprimento); 
    if ($largura > 0) 
     $produto->setData('volume_largura', $largura); 
    $produto->setData('cost', $custo); 
    $stock['qty'] = $quantidade; 
    $stock['is_in_stock'] = $this->initStock($quantidade); 
    $stock['manage_stock'] = 1; 
    $stock['use_config_manage_stock'] = 1; 
    $produto->setStockData($stock); 
    $produto->setData('weight', $this->initWeight($peso)); 

    $produto->save(); 
} 

回答

1

有什麼辦法可以減少CSV文件中的項目數量嗎?我的意思是,如果每次發送所有項目併爲每個項目發出查詢,則查詢的次數和腳本完成的時間將會過長。

我建議您只與商店同步新項目或具有更新值的項目,它會減少CSV中的行數和查詢數量,而且,如果您在CSV文件中包含a帶有標誌的字段已更新/新建或類似的內容,您可以避免第一個查詢來檢查在找到「新」標誌的情況下產品是否存在。

我希望它有幫助。

+0

嗯,csv只是新的和更新的產品,我會嘗試創建一個標誌。 – gabrielbuzzi