2014-01-28 5 views
0

после долгих поисков я наконец решил спросить:Magento Cronjob для обновления запасов

Мне нужен Cronjob для Magento, который обновляет атрибут продукта «акции» в «на складе» один раз в день.

Есть ли возможность поймать этот атрибут и изменить его с помощью кроны?

Спасибо

ответ

0

Я создаю пользовательские расширения для этого, пожалуйста, используйте этот Cron запускается каждые 15 мин.

 Please create config.xml under app/code/local/Amit/CustomStockUpdate/etc/  
     <?xml version="1.0"?> 
      <config> 
       <modules> 
       <Amit_CustomStockUpdate> 
        <version>0.1.0</version> 
       </Amit_CustomStockUpdate> 
       </modules> 
       <global> 
        <models> 
         <customstockupdate> 
          <class>Amit_CustomStockUpdate_Model</class> 
         </customstockupdate> 
        </models> 
       <helpers> 
        <customstockupdate> 
        <class>Amit_CustomStockUpdate_Helper</class> 
        </customstockupdate> 
       </helpers> 
       </global> 
        <crontab> 
         <jobs> 
          <customstockupdate_setting> 
          <schedule><cron_expr>*/15 * * * *</cron_expr></schedule> 
          <run><model>customstockupdate/observer::autostockupate</model></run> 
         </customstockupdate_setting> 
         </jobs> 
        </crontab> 

      </config> 

     create Observer.php under app/code/local/Amit/CustomStockUpdate/Model/ 
    public function autostockupate(){ 
     // Disable the module itself 

      $stock_item = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id); 
if (!$stock_item->getId()) { 
    $stock_item->setData('product_id', $product_id); 
    $stock_item->setData('stock_id', 1); 
} 

$stock_item->setData('is_in_stock', 1); // is 0 or 1 
$stock_item->setData('manage_stock', 1); // should be 1 to make something out of stock 

try { 
    $stock_item->save(); 
} catch (Exception $e) { 
    echo "{$e}"; 
} 
    } 
0

Вот пример, как обновить запас для продукта. Благодаря

$mageproduct = Mage::getModel('catalog/product')->setStoreId($storeId)->loadByAttribute('sku', $Sku); 
updateStockByProductId($mageproduct->getId(), $newQty); 

function _updateStockByProductId($id, $qty) { 
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($id); 
if (!$stockItem->getId()) { 
    $stockItem->setData('product_id', $id); 
    $stockItem->setData('stock_id', 1); 
} 
    if ($stockItem->getQty() != $qty) { 
    $stockItem->setData('qty', $qty); 
    $stockItem->setData('is_in_stock', $qty ? 1 : 0);     
    $stockItem->save();    
    }   
    $stockItem->clearInstance(); 
} 

Другие ссылки, которые вы можете проверить Magento инвентарь обновление продукта ->http://www.ayasoftware.com/magento-update-product-inventory

Смежные вопросы