【问题标题】:Change value of the product in Magento with specific calculation通过特定计算更改 Magento 中产品的值
【发布时间】:2016-01-19 13:39:36
【问题描述】:

我需要更改以下时尚商店中所有产品的价值。

Current value = 1,000

Coefficient = 0.85

Current value / coefficient = new value

在示例中是

1000 / 0.85 = 1176.47

如何在 Magento 的所有区域(购物车、结帐、管理等)中将其更改为新值?

【问题讨论】:

    标签: php magento magento-1.7 price


    【解决方案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();

    【讨论】:

      【解决方案2】:

      假设这只是一项一次性任务,那么我建议如下:

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

      【讨论】:

        猜你喜欢
        • 2012-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        相关资源
        最近更新 更多