父SKU的库存必须等于所有变体的库存

时间:2019-07-28 09:47:51

标签: woocommerce

我有一些具有变化的库存项目,所有这些都有库存管理功能;问题是,当我确实出售库存变动项目时,母项目库存数不会减少!

示例:-我有一个父代码,是T恤和3个S / M / L版本,这些版本的库存总价值为30(每种尺寸为10),那么我想父代码也显示股票价值为30;当前,当我出售库存变动项目时,它只会减少该项目的库存,而不会减少父项目(sku)。

是否有允许我执行此操作的插件或代码?

1 个答案:

答案 0 :(得分:1)

我已经测试了代码并且可以正常工作,但是在发布之前请进行一些测试。代码进入您的主题或子主题的functions.php。

add_action( 'woocommerce_reduce_order_stock', 'lets_reduce_parent' );

function lets_reduce_parent( $order_id ) {
  $order = wc_get_order( $order_id );
  foreach( $order->get_items() as $item_id => $item ){
      $parent_id = $item->get_product_id();
      $child_id = $item->get_variation_id();
      $quantity = $item->get_quantity();

      if($child_id == 0) return;
      else
      {
          $parent_product = wc_get_product( $parent_id );
          $stock = $parent_product->get_stock_quantity();
          $new_stock = $stock - $quantity;
          wc_update_product_stock( $parent_product, $quantity, 'decrease' );
          $order->add_order_note( "Parent Product ID: $parent_id - Stock Reduced: $stock -> $new_stock");
      }
  }
}

Ref-1:Woocommerce custom stock update after successful order

Ref-2:Get Order items and WC_Order_Item_Product in WooCommerce 3

我希望这会有所帮助。如果您有任何问题,请通知我。祝你有美好的一天。