/**
  * Sync a WC Product's inventory to Square
  *
  * @param WC_Product $wc_product
  */
 public function sync_inventory(WC_Product $wc_product)
 {
     $wc_variation_ids = WC_Square_Utils::get_stock_managed_wc_variation_ids($wc_product);
     $square_inventory = $this->connect->get_square_inventory();
     foreach ($wc_variation_ids as $wc_variation_id) {
         $square_variation_id = WC_Square_Utils::get_wc_variation_square_id($wc_variation_id);
         if ($square_variation_id && isset($square_inventory[$square_variation_id])) {
             $wc_stock = (int) get_post_meta($wc_variation_id, '_stock', true);
             $square_stock = (int) $square_inventory[$square_variation_id];
             $delta = $wc_stock - $square_stock;
             $result = $this->connect->update_square_inventory($square_variation_id, $delta);
             if (!$result) {
                 WC_Square_Sync_Logger::log(sprintf('[WC -> Square] Error syncing inventory for WC Product %d.', $wc_product->id));
             }
         }
     }
 }
 /**
  * Sync a WC Product's inventory with data from Square
  *
  * @param WC_Product $wc_product
  * @param stdClass $square_item
  */
 public function sync_inventory(WC_Product $wc_product, $square_item)
 {
     $wc_variation_ids = WC_Square_Utils::get_stock_managed_wc_variation_ids($wc_product);
     $square_inventory = $this->connect->get_square_inventory();
     foreach ($wc_variation_ids as $wc_variation_id) {
         $square_variation_id = WC_Square_Utils::get_wc_variation_square_id($wc_variation_id);
         if (!$square_variation_id || !isset($square_inventory[$square_variation_id])) {
             continue;
         }
         // check each variation stock_tracking setting and set stock if tracking is enabled
         foreach ($square_item->variations as $variation_item) {
             if ($variation_item->id == $square_variation_id && $variation_item->track_inventory) {
                 $square_stock = (int) $square_inventory[$square_variation_id];
                 $wc_variation = wc_get_product($wc_variation_id);
                 $result = $wc_variation->set_stock($square_stock);
             }
         }
     }
 }