【问题标题】:Magento - Get Product SKU's and quantities on orderMagento - 按订单获取产品 SKU 和数量
【发布时间】:2013-01-07 21:49:44
【问题描述】:

我在“sales_order_place_after”事件上创建了一个事件观察器,当用户在 Magento 的结帐中下订单时会触发该事件。该事件触发了我的观察者,它需要获取以下信息,然后将其发送到外部库存管理系统。

所需信息:订单上每件产品的 SKU 和数量

我在下面包含了我的观察者模型的一部分。我正在访问订单对象。我可以获取订单中的所有商品,但是如何获取构成订单的每个商品的 SKU。例如,对于一个简单的产品,这很容易。 但是,对于捆绑或可配置的产品,我不知道如何访问组成捆绑产品的子项及其 SKU 和数量。这是我需要的捆绑和可配置产品的信息。我需要选择的孩子的 SKU 和数量。对于我的生活,我无法弄清楚要调用什么方法来访问该信息。我希望有类似的东西:$item->getBundleChildrenSkuQuantity();

$order = $observer->getEvent()->getOrder();
    $joomecomPacket = array();

    if ($order->getTotalItemCount() > 0) {
        $items = $order->getAllItems();

        foreach ($items as $item) {
            $productType = $item->getProductType();

            switch ($productType) {
                case 'bundle':

                break;
                case 'configurable':

                default: // simple products
                    if (isset($joomecomPacket[$item['sku']])) {
                        $joomecomPacket[$item['sku']] += $item['qty_ordered'];
                    } else {
                        $joomecomPacket[$item['sku']] = $item['qty_ordered'];
                    }
                break;
            }
        }
    }

【问题讨论】:

    标签: magento magento-1.7


    【解决方案1】:

    在您的可配置案例之后,您错过了一个休息时间。默认情况下为可配置产品执行。

    【讨论】:

      【解决方案2】:

      试试这个:

      $items = $order->getAllVisibleItems(); // gives only parent items
      
      foreach ($items as $item){
      
      $childItem = $item->getChildren(); //do something with $cildItem like $childItem->getSku() etc...
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多