/** * Sync all inventory from Square (expensive) * @todo if searching for square id fails, check for SKU */ public function sync_all_inventory() { // refresh cache first to get the latest inventory $this->connect->refresh_inventory_cache(); $square_inventory = $this->connect->get_square_inventory(); // hopefully there has been a manual sync prior so that square item id // has already been saved in the product/variation metas to prevent // unnecessary round trip requests to Square to find the SKU foreach ($square_inventory as $variation_id => $stock) { $wc_product = WC_Square_Utils::get_wc_product_for_square_item_variation_id($variation_id); if (is_object($wc_product)) { $wc_product->set_stock((int) $stock); } } return true; }
/** * Update a Square Item Image for a WC Product * * @param WC_Product $wc_product * @param string $square_item_id * @return bool Success. */ public function update_product_image(WC_Product $wc_product, $square_item_id) { $image_id = get_post_thumbnail_id($wc_product->id); if (empty($image_id)) { WC_Square_Sync_Logger::log(sprintf('[WC -> Square] Update Product Image: No thumbnail ID for WC Product %d.', $wc_product->id)); return true; } $mime_type = get_post_field('post_mime_type', $image_id, 'raw'); $image_path = get_attached_file($image_id); $result = $this->connect->update_square_product_image($square_item_id, $mime_type, $image_path); if ($result && isset($result->id)) { WC_Square_Utils::update_wc_product_image_square_id($wc_product->id, $result->id); return true; } else { WC_Square_Sync_Logger::log(sprintf('[WC -> Square] Error updating Product Image for WC Product %d.', $wc_product->id)); return false; } }