/** * Convert a WC Product or Variation into a Square ItemVariation * See: https://docs.connect.squareup.com/api/connect/v1/#datatype-itemvariation * * @param WC_Product|WC_Product_Variation $variation * @param bool $include_inventory * @return array Formatted as a Square ItemVariation */ public static function format_wc_variation_for_square_api($variation, $include_inventory = false) { $formatted = array('name' => null, 'pricing_type' => null, 'price_money' => null, 'sku' => null, 'track_inventory' => null, 'inventory_alert_type' => null, 'inventory_alert_threshold' => null, 'user_data' => null); if ($variation instanceof WC_Product) { $formatted['name'] = __('Regular', 'woocommerce-square'); $formatted['price_money'] = array('currency_code' => apply_filters('woocommerce_square_currency', get_woocommerce_currency()), 'amount' => $variation->get_display_price() * 100); $formatted['sku'] = $variation->get_sku(); if ($include_inventory && $variation->managing_stock()) { $formatted['track_inventory'] = true; } } if ($variation instanceof WC_Product_Variation) { $formatted['name'] = implode(', ', $variation->get_variation_attributes()); } return array_filter($formatted); }