Изменить значение продукта в Magento с конкретным расчетом

Мне нужно изменить стоимость всех товаров в следующем магазине модной одежды.

Current value = 1,000

Coefficient = 0.85

Current value / coefficient = new value

в примере будет

1000 / 0.85 = 1176.47

Как изменить это значение во всех областях Magento (корзина, касса, администратор и т. Д.) На новое значение?

1

Решение

Есть три варианта: Либо вы можете сделать это с промоушенами продуктов magento из бэк-энда, предлагая промо-акции, либо используя основные модули magento.

Если у вас есть, скажем, 10 тыс. Продуктов, вы можете сделать это, просто импортировав / экспортировав опции в панели инструментов администратора magento. Таким образом, после экспорта продукции CSV вы можете добавить или сделать расчет в CSV.

Или же

просто используя простые sql запросы на magento db, вы можете получить свой результат.

таблица магнето дБ, в которой хранится цена продукта

  • 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

Другие решения

Предполагая, что это только одноразовая задача, я бы предложил что-то вроде следующего:

$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);
0

По вопросам рекламы [email protected]