Tôi đang sử dụng Magento CE 1.9.1
Tôi đã tạo một tập lệnh nhập để nhập sản phẩm từ nguồn cấp dữ liệu xml của nhà cung cấp.
Nguồn cấp dữ liệu này được cập nhật hàng ngày lúc 3 giờ sáng. Chuyên gia của tôi gửi cho tôi trong các sản phẩm chỉ xml của anh ấy có trong kho trong cửa hàng của anh ấy.
Vậy làm cách nào tôi có thể cập nhật trạng thái tồn kho sản phẩm của mình thành hết hàng (theo sản phẩm sku) khi sản phẩm sku không tồn tại trong nguồn cấp dữ liệu xml?
Tôi đặt một ví dụ để giải thích những gì tôi muốn, dữ liệu được cung cấp trong xml:
Monday : Tuesday :
Sku qty Sku qty
ABC 22 ABC 12
BDE 30 FGH 4
FGH 15
Những gì tôi phải làm: Thứ ba, tôi phải lập trình BDE sản phẩm của mình thành "hết hàng" vì nó không xuất hiện trong xml.
Có tập lệnh nhập của tôi:
$file = 'feed.xml';
$feed = simplexml_load_file($file);
foreach($feed as $product){
//some datas in xml feed
$sku = $product->identifiant_unique;
$prix = $product->prix;
$titre = $product->categorie3;
$quantiteStock = $product->quantiteStock;
$poid = $product->poids_net;
//Setters
$produit = Mage::getModel('catalog/product');
$produit->setName($titre.' '.$sku);
$produit->setSku($sku);
$produit->setWeight($poid);
$produit->setAttributeSetId(4);
$produit->setDescription($titre.' '.$sku);
$produit->setShortDescription($titre.' '.$sku);
$produit->setTypeId($product['type_id'])->setWebsiteIds(array(1))->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED)->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$produit->setPrice($prix);
$produit->setIsMassupdate(true);
$produit->setExcludeUrlRewrite(true);
$produit->save();
// For Inventory Management
$stockItem = Mage::getModel('cataloginventory/stock_item');
$stockItem->assignProduct($produit);
$stockItem->setData('is_in_stock', 1);
$stockItem->setData('stock_id', 1);
$stockItem->setData('store_id', 1);
$stockItem->setData('manage_stock', 1);
$stockItem->setData('use_config_manage_stock', 0);
$stockItem->setData('min_sale_qty', 1);
$stockItem->setData('use_config_min_sale_qty', 0);
$stockItem->setData('max_sale_qty', 1000);
$stockItem->setData('use_config_max_sale_qty', 0);
$stockItem->setData('qty', $quantiteStock);
$stockItem->save();
}
Cảm ơn