'POST', 'timeout' => 15, 'headers' => [ 'Content-Type' => 'application/json', 'Accept' => 'application/json', ], 'body' => wp_json_encode( $body_data ), ]); if ( is_wp_error( $response ) ) return $response; $code = wp_remote_retrieve_response_code( $response ); $json = json_decode( wp_remote_retrieve_body( $response ), true ); if ( $code >= 400 ) { return new WP_Error( 'deakee_api_error', $json['message'] ?? 'Deakee API returned an error.', [ 'status' => $code ] ); } return $json ?? []; } /** * Step 1: Submit brand application (no coupons). * * @param array $shop_data { name, email, myshopify_domain } * @param array $brand { partnerName, website, logoUrl, description, category, contactPhone, message } * @return array|WP_Error */ public static function apply( array $shop_data, array $brand ) { return self::post( '/woo', [ 'shop' => $shop_data, 'partnerName' => $brand['partnerName'], 'website' => $brand['website'] ?? '', 'logoUrl' => $brand['logoUrl'] ?? '', 'description' => $brand['description'] ?? '', 'category' => $brand['category'] ?? '', 'contactPhone'=> $brand['contactPhone'] ?? '', 'message' => $brand['message'] ?? '', ]); } /** * Step 2: Submit coupon codes after approval. * * @param string $shop_domain e.g. "yourstore.com" * @param string $platform "woocommerce" * @param array $coupons Each: { code, discountDescription, discountType, discountValue, * validUntil, minPurchase, totalAvailable, terms } * @return array|WP_Error */ public static function submit_coupons( string $shop_domain, string $platform, array $coupons ) { return self::post( '/coupons', [ 'shopDomain' => $shop_domain, 'platform' => $platform, 'coupons' => $coupons, ]); } }