我需要更改以下时装店中所有产品的价值。
Current value = 1,000
Coefficient = 0.85
Current value / coefficient = new value
将是
1000 / 0.85 = 1176.47
如何将Magento的所有区域(购物车,结帐,管理等)更改为新值?
答案 0 :(得分:1)
有三个选项,您可以通过提供促销或使用magento核心模块,通过后端的magento产品促销来实现此目的。
如果你有10K的产品可以通过magento管理仪表板中的导入/导出选项来实现。因此,在导出产品csv后,您可以在csv中添加或进行计算。
或者
只需在magento db上使用简单的SQL查询即可获得结果。
存储产品价格的磁盘数据表 - catalog_product_entity_decimal
catalog_product_entity_group_price
catalog_product_entity_tier_price
或者
现在最后使用magento核心模块。你可以使用这段代码..
$product = Mage::getModel('catalog/product');
$product->load($productId);
$product->setSpecialPrice($price);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product->save();
Mage::app()->setCurrentStore(Mage_Core_Model_App::DISTRO_STORE_ID);
$cart = Mage::getSingleton('checkout/cart');
$cart->addProduct($product, array('qty' => $quantity));
$cart->save();
答案 1 :(得分:0)
假设这只是一次性任务,那么我建议如下:
$products = Mage::getModel('catalog/product')->getCollection();
$products->setPageSize(100);
$pages = $products->getLastPageNumber();
$currentPage = 1;
$batchNumber = 0;
do {
$products->setCurPage($currentPage);
$products->load();
foreach($products as $product) {
$origPrice = $product->getPrice();
$newPrice = $origPrice / 0.875;
$product->setPrice($newPrice)->save();
}
$products->clear();
$currentPage++;
} while ($currentPage <= $pages);