• טיסות זולות לליסבון

טיסות לליסבון

0
כמה נוסעים? נקה בחירה
 
 
1 כל הטיסות נא לבחור מחלקה
  • כל הטיסות
  • טיסות ישירות בלבד

נוסעים

חדרים

בחירת מספר החדרים נקה בחירה

נוסעים

חדרים

בחירת מספר החדרים נקה בחירה
הלוך ושוב
כיוון אחד
חזרה מיעד אחר
Display more
תאריכים
מידע לטסים לליסבון

מידע לטסים לליסבון

טיסה לליסבון תיקח אתכם אל בירתה של פורטוגל, עיר המציעה מגוון רחב של אטרקציות, אתרים שאסור לפספס, חיי לילה תוססים, ארכיטקטורה מעניינת ושילוב מרתק בין ישן לחדש. יש הרבה מה לראות בעיר, ממוזיאונים ותאטראות ועד אתרים ידועים כמו מנזר ג'רונימו, מרכז התרבות של בלם ופסל מגלי הארצות המפורסם. אם החשש שלכם הוא מה לאכול בעיר, דעו שהמסעדות בליסבון נחשבות לאיכותיות ומגוונות, ויש היצע רחב של אוכל רחוב שנחשב לחוויה עבור כל תייר. ליסבון תשאב אתכם למסע תרבותי מרתק בין הכנסיות, הפאבים, מוזיאונים והאתרים ההיסטוריים. אי אפשר שלא להתפעם מהחדשנות של העיר ומליבה הפועם והתוסס של אחת הערים המתוירות באירופה.
אטרקציות בליסבון

אטרקציות בליסבון

חופשה בליסבון תפגיש אתכם עם אתרים תיירותיים מרתקים ומקומות שאסור לפספס, כמו רובע בלם המתוייר, כיכר האימפריה ופסל מגלי הארצות, הנחשב לאחד הסמלים המובהקים והמפורסמים של העיר. האזור המרכזי והמתויר ביותר בעיר הוא רובע בלם, פיסת תרבות מרתקת בחלק המערבי של ליסבון, שם תמצאו את הארמון הלאומי ואת מנזר ג'ירונימו, ששימש את מגלי הארצות ויורדי הים בתור הזהב, ובתוכו נמצא גם מוזיאון ימי. בכלל, יש לא מעט מוזיאונים בליסבון, שאחד המפורסמים שבהם הוא כמובן מוזיאון המרכבות ברובע בלם, הגדול מסוגו בעולם. כדאי לבקר במרכז התרבות של בלם, קומפלקס חדש ויפהפה בכיכר האימפריה, המכיל בתוכו מוזיאון לעיצוב ומציג לא מעט תערוכות. בנוסף כדאי לבקר גם בחלק המזרחי של העיר באתרים כמו בית הנקודות המרהיב ביופיפו, בית הפאדו (גיטרה פורטוגלית) והקתדלה של ליסבון, מבנה בסגנון רומנסקי אשר נבנה במאה ה-12. אסור לפספס קפיצה ל"שער השמש", אחד המקומות המדהימים המספק תצפית על העיר ויש שם ריכוז של בתי קפה, פאבים ומסעדות.
קניות בליסבון

קניות בליסבון

נופש בליסבון יאפשר לכם ליהנות מאזורי קניות מפנקים, בעיקר ב"באקסיה"- העיר התחתית של ליסבון. ברחבי העיר התחתית תוכלו להסתובב בין חנויות מותגים, חנויות מעצבים, בוטיקים ועוד. שופינג בליסבון אפשרי גם במגוון מרכזי קניות בעיר ובעיקר בשדרות ליברדאדה ורחובות אוגוסטה ורוסיו. בליסבון תוכלו למצוא פריטים עתיקים לצד פריטי אפנה מערביים וחדשניים. כמו כן, יש לא מעט שווקים בליסבון, כך שמצפה לכם חוויית שופינג יוצאת מן הכלל.
תחבורה בליסבון

תחבורה בליסבון

קל מאוד להתמצא בעיר בזכות התחבורה הציבורית המפותחת הכוללת רכבות בין עירוניות, חשמליות, אוטובוסים ורכבות תת-קרקעיות אשר מגיעות לכל פינה בעיר ולכל האטרקציות בליסבון. המטרו בליסבון יעיל מאוד והוא יקל על שהותכם בעיר. בזכות קרבתם של אתרים מרכזיים בעיר אחד לשני מומלץ להגיע למרכז העיר ולשוטט ברגל בין הסמטאות, האתרים והמבנים המרהיבים. ניתן לשכור רכב בליסבון ולצאת מן העיר לגלות מה זה טיול בפורטוגל.
לינה בליסבון

לינה בליסבון

טיסות זולות לליסבון כבר מצאתם, אבל מה עם מקום לישון? אפשרויות לינה בליסבון יש בשפע. אלפי בתי מלון בליסבון עומדים לרשות התיירים, בכל דרגות האירוח. מאכסניות בסיסיות ועד למלונות יוקרה בדירוג חמישה כוכבים. מומלץ לקחת מלון בליסבון במיקום מרכזי או בקרבת תחנת רכבת תחתית כדי ליהנות מגישה נוחה לכל האתרים המרכזיים בעיר.
טיסות לליסבון

טיסות לליסבון

ניתן למצוא בכל השנה טיסות זולות לליסבון. קיימות מספר חברות תעופה הטסות לליסבון כמו סאנדור הישראלית, המפעילה טיסות ישירות לליסבון. ניתן למצוא טיסה זולה לליסבון ע"י טיסת קונקשן לפורטוגל עם חברות כמו טורקיש איירליינס, איבריה ו-Vueling.
if (location.href.indexOf('/reservation/summary_v2_flights') !== -1 || location.href.indexOf('/reservation/summary-package') !== -1) { //$(document).ready(function() { // Keep track of the last email address successfully sent to Flashy let lastSyncedEmail = ""; // Helper Function: Keeps Flashy updated based on the current state of the form function syncContactWithFlashy() { var $firstNameInput = $('#order_customer_first_name'); var $lastNameInput = $('#order_customer_last_name'); var $phoneInput = $('#order_customer_phone'); var $emailInput = $('#order_customer_email'); var $newsletterBox = $('.js__newsletterProxy'); let main_customer_info_errors = false; // Perform validation checks if (!$firstNameInput.length || $firstNameInput.closest('.custom-input-1__container').hasClass('error')) { main_customer_info_errors = true; } if (!$lastNameInput.length || $lastNameInput.closest('.custom-input-1__container').hasClass('error')) { main_customer_info_errors = true; } if (!$phoneInput.length || $phoneInput.closest('.iti').hasClass('error')) { main_customer_info_errors = true; } if (!$emailInput.length || $emailInput.closest('.custom-input-1__container').hasClass('error')) { main_customer_info_errors = true; } // Only communicate with Flashy if all inputs are free of validation errors if (!main_customer_info_errors) { let currentEmail = $emailInput.val().trim(); let isSubscribed = $newsletterBox.is(':checked'); let _flashy_main_customer_object = { "email": currentEmail, "first_name": $firstNameInput.val().trim(), "last_name": $lastNameInput.val().trim(), "phone": $phoneInput.val().trim() }; // Conditionally add or modify the lists object based on checkbox state if (isSubscribed) { _flashy_main_customer_object.lists = { 36735: true }; } else { } console.log('_flashy_main_customer_object syncing:', _flashy_main_customer_object); // Send profile data to Flashy flashy.contacts.createOrUpdate(_flashy_main_customer_object); flashy('setCustomer', { "email": currentEmail }); console.log("Flashy tracking cookie successfully associated with email: " + currentEmail); // Update our tracker variable to the current email lastSyncedEmail = currentEmail; console.log("Flashy contact updated successfully."); return true; } else { console.log("Flashy tracking halted: Validation errors detected on the client form."); return false; } } // TRIGGER 1: User clicks the main submit contact information button $(document).on('click', '#rs_submit_contact_information', function() { syncContactWithFlashy(); }); // TRIGGER 2: User changes the checkbox value at any time $(document).on('change ifChanged', '.js__newsletterProxy', function() { console.log("Checkbox change detected. Syncing state to Flashy..."); syncContactWithFlashy(); }); // TRIGGER 3: Run sync whenever ANY text input loses focus (First Name, Last Name, Phone, or Email) $(document).on('blur', '#order_customer_first_name, #order_customer_last_name, #order_customer_phone, #order_customer_email', function() { console.log("Contact input field change (blur) detected. Syncing to Flashy..."); syncContactWithFlashy(); }); // Keep the variable globally or at a high scope so your tracking scripts can access its latest state var flashyUpdateCartPayload = {}; // Helper to convert flight date strings (e.g., "2026-06-16") to a Unix timestamp string var getUnixTimestamp = function(dateStr) { // Math.floor returns a number; removing String() keeps it as an integer return dateStr ? Math.floor(new Date(dateStr).getTime() / 1000) : null; }; // 1. Reusable payload extraction engine function buildFlashyPayload() { if (typeof order_id !== 'undefined') { var outboundFlight = (typeof fullFlightsInfo !== 'undefined' && fullFlightsInfo[0]) ? fullFlightsInfo[0] : {}; var inboundFlight = (typeof fullFlightsInfo !== 'undefined' && fullFlightsInfo[1]) ? fullFlightsInfo[1] : null; var flashyPassengers = []; $('input[class*="js-pax-first-name-"]').each(function(index) { var $firstNameInput = $(this); var $lastNameInput = $('.js-pax-last-name-' + index); var birthdateVal = $('#order_groups_1_passengers_' + index + '_birthdate').val(); if (!birthdateVal) { var day = $('#day-' + index).val() || ''; var month = $('#month-' + index).val() || ''; var year = $('#year-' + index).val() || ''; if (day && month && year) { birthdateVal = day.padStart(2, '0') + '/' + month.padStart(2, '0') + '/' + year; } } var passengerLuggage = []; var $outboundSelect = $('#order_groups_1_passengers_' + index + '_luggage_option_0_quantity'); if ($outboundSelect.length && $outboundSelect.val()) { var selectedOutboundOpt = $outboundSelect.find('option:selected'); passengerLuggage.push({ 'direction': 'outbound', 'option_value': $outboundSelect.val(), 'price': selectedOutboundOpt.data('price') || 0, 'description': selectedOutboundOpt.text().trim() }); } if (inboundFlight) { var $inboundSelect = $('#order_groups_1_passengers_' + index + '_luggage_option_1_quantity'); if ($inboundSelect.length && $inboundSelect.val()) { var selectedInboundOpt = $inboundSelect.find('option:selected'); passengerLuggage.push({ 'direction': 'inbound', 'option_value': $inboundSelect.val(), 'price': selectedInboundOpt.data('price') || 0, 'description': selectedInboundOpt.text().trim() }); } } if ($firstNameInput.val() && $lastNameInput.val()) { flashyPassengers.push({ 'first_name': $firstNameInput.val().trim(), 'last_name': $lastNameInput.val().trim(), 'birthday': birthdateVal ? birthdateVal.trim() : '', 'selected_luggage': passengerLuggage }); } }); if (flashyPassengers.length === 0) { flashyPassengers.push({ 'first_name': '', 'last_name': '', 'birthday': '', 'selected_luggage': [] }); } var appliedCoupon = ''; var $couponSuccessContainer = $('.coupon-success-apply'); if ($couponSuccessContainer.length && !$couponSuccessContainer.hasClass('hide')) { appliedCoupon = $couponSuccessContainer.find('.success-coupon-code').text().trim() || $('#order_coupon').val().trim(); } var extractFlightProperties = function(flightObj) { if (!flightObj) return null; return { 'acombiey': flightObj.acombiey !== undefined ? flightObj.acombiey : '', 'adult_quantity': flightObj.adult_quantity !== undefined ? flightObj.adult_quantity : 0, 'air_company_id': flightObj.air_company_id !== undefined ? flightObj.air_company_id : '', 'air_company_luggage_label': flightObj.air_company_luggage_label !== undefined ? flightObj.air_company_luggage_label : '', 'air_company_luggage_policy_url': flightObj.air_company_luggage_policy_url !== undefined ? flightObj.air_company_luggage_policy_url : '', 'air_company_name': flightObj.air_company_name !== undefined ? flightObj.air_company_name : '', 'all_fare_conditions': flightObj.all_fare_conditions !== undefined ? flightObj.all_fare_conditions : {}, 'amount': flightObj.amount !== undefined ? flightObj.amount : 0, 'amount_leg_adult': flightObj.amount_leg_adult !== undefined ? flightObj.amount_leg_adult : 0, 'amount_leg_total': flightObj.amount_leg_total !== undefined ? flightObj.amount_leg_total : 0, 'amount_per_pax': flightObj.amount_per_pax !== undefined ? flightObj.amount_per_pax : 0, 'amount_total': flightObj.amount_total !== undefined ? flightObj.amount_total : 0, 'baby_quantity': flightObj.baby_quantity !== undefined ? flightObj.baby_quantity : 0, 'bagRecheckRequired': flightObj.bagRecheckRequired !== undefined ? flightObj.bagRecheckRequired : false, 'branded': flightObj.branded !== undefined ? flightObj.branded : false, 'brandedCode': flightObj.brandedCode !== undefined ? flightObj.brandedCode : '', 'brandedFares': flightObj.brandedFares !== undefined ? flightObj.brandedFares : [], 'can_be_considered_as_oneway': flightObj.can_be_considered_as_oneway !== undefined ? flightObj.can_be_considered_as_oneway : false, 'change': flightObj.change !== undefined ? flightObj.change : false, 'change_price': flightObj.change_price !== undefined ? flightObj.change_price : 0, 'child_quantity': flightObj.child_quantity !== undefined ? flightObj.child_quantity : 0, 'city_from_airport': flightObj.city_from_airport !== undefined ? flightObj.city_from_airport : '', 'city_from_airport_code': flightObj.city_from_airport_code !== undefined ? flightObj.city_from_airport_code : '', 'city_from_code': flightObj.city_from_code !== undefined ? flightObj.city_from_code : '', 'city_from_name': flightObj.city_from_name !== undefined ? flightObj.city_from_name : '', 'city_to_airport': flightObj.city_to_airport !== undefined ? flightObj.city_to_airport : '', 'city_to_airport_code': flightObj.city_to_airport_code !== undefined ? flightObj.city_to_airport_code : '', 'city_to_code': flightObj.city_to_code !== undefined ? flightObj.city_to_code : '', 'city_to_final_name': flightObj.city_to_final_name !== undefined ? flightObj.city_to_final_name : '', 'city_to_name': flightObj.city_to_name !== undefined ? flightObj.city_to_name : '', 'combikey': flightObj.combikey !== undefined ? flightObj.combikey : '', 'combined': flightObj.combined !== undefined ? flightObj.combined : [], 'commercial_class': flightObj.commercial_class !== undefined ? flightObj.commercial_class : '', 'commercial_class_info': flightObj.commercial_class_info !== undefined ? flightObj.commercial_class_info : '', 'comp_logo': flightObj.comp_logo !== undefined ? flightObj.comp_logo : '', 'comp_path': flightObj.comp_path !== undefined ? flightObj.comp_path : '', 'company_code': flightObj.company_code !== undefined ? flightObj.company_code : '', 'company_name': flightObj.company_name !== undefined ? flightObj.company_name : '', 'compareKey': flightObj.compareKey !== undefined ? flightObj.compareKey : '', 'currency': flightObj.currency !== undefined ? flightObj.currency : '', 'currency_code': flightObj.currency_code !== undefined ? flightObj.currency_code : '', 'decimal': flightObj.decimal !== undefined ? flightObj.decimal : '0', 'deepLink': flightObj.deepLink !== undefined ? flightObj.deepLink : '', 'default_inbound': flightObj.default_inbound !== undefined ? flightObj.default_inbound : {}, 'default_inbound_natural_roundtrip': flightObj.default_inbound_natural_roundtrip !== undefined ? flightObj.default_inbound_natural_roundtrip : false, 'disableForOutbound': flightObj.disableForOutbound !== undefined ? flightObj.disableForOutbound : '', 'displayExtraInfoB2b': flightObj.displayExtraInfoB2b !== undefined ? flightObj.displayExtraInfoB2b : false, 'display_cancel': flightObj.display_cancel !== undefined ? flightObj.display_cancel : '', 'display_date_landing': flightObj.display_date_landing !== undefined ? flightObj.display_date_landing : '', 'display_date_landing_short': flightObj.display_date_landing_short !== undefined ? flightObj.display_date_landing_short : '', 'display_date_takeoff': flightObj.display_date_takeoff !== undefined ? flightObj.display_date_takeoff : '', 'display_date_takeoff_short': flightObj.display_date_takeoff_short !== undefined ? flightObj.display_date_takeoff_short : '', 'display_detail': flightObj.display_detail !== undefined ? flightObj.display_detail : '', 'display_hour_landing': flightObj.display_hour_landing !== undefined ? flightObj.display_hour_landing : '', 'display_multi': flightObj.display_multi !== undefined ? flightObj.display_multi : '', 'duration_day_difference': flightObj.duration_day_difference !== undefined ? flightObj.duration_day_difference : '', 'duration_day_difference_display': flightObj.duration_day_difference_display !== undefined ? flightObj.duration_day_difference_display : '', 'duration_int': flightObj.duration_int !== undefined ? flightObj.duration_int : 0, 'escales': flightObj.escales !== undefined ? flightObj.escales : [], 'fare_options': flightObj.fare_options !== undefined ? flightObj.fare_options : [], 'favorite': flightObj.favorite !== undefined ? flightObj.favorite : '0', 'ff_compare_key': flightObj.ff_compare_key !== undefined ? flightObj.ff_compare_key : '', 'first_comp_logo': flightObj.first_comp_logo !== undefined ? flightObj.first_comp_logo : '', 'first_comp_path': flightObj.first_comp_path !== undefined ? flightObj.first_comp_path : '', 'flightType': flightObj.flightType !== undefined ? flightObj.flightType : '', 'flight_date': flightObj.flight_date !== undefined ? flightObj.flight_date : '', 'flight_date_container': flightObj.flight_date_container !== undefined ? flightObj.flight_date_container : '', 'flight_date_system': flightObj.flight_date_system !== undefined ? flightObj.flight_date_system : '', 'flight_duration': flightObj.flight_duration !== undefined ? flightObj.flight_duration : '', 'flight_duration_format': flightObj.flight_duration_format !== undefined ? flightObj.flight_duration_format : '', 'flight_duration_int': flightObj.flight_duration_int !== undefined ? flightObj.flight_duration_int : 0, 'flight_extra_terms': flightObj.flight_extra_terms !== undefined ? flightObj.flight_extra_terms : [], 'flight_number': flightObj.flight_number !== undefined ? flightObj.flight_number : '', 'flight_type': flightObj.flight_type !== undefined ? flightObj.flight_type : '', 'flight_type_string': flightObj.flight_type_string !== undefined ? flightObj.flight_type_string : '', 'full_combined': flightObj.full_combined !== undefined ? flightObj.full_combined : [], 'full_combined_type': flightObj.full_combined_type !== undefined ? flightObj.full_combined_type : '', 'full_date_takeoff': flightObj.full_date_takeoff !== undefined ? flightObj.full_date_takeoff : '', 'guarantee': flightObj.guarantee !== undefined ? flightObj.guarantee : false, 'has_air_company_description': flightObj.has_air_company_description !== undefined ? flightObj.has_air_company_description : false, 'has_provider_canned_message': flightObj.has_provider_canned_message !== undefined ? flightObj.has_provider_canned_message : false, 'has_provider_source_canned_message': flightObj.has_provider_source_canned_message !== undefined ? flightObj.has_provider_source_canned_message : false, 'hideButtonBookOutbound': flightObj.hideButtonBookOutbound !== undefined ? flightObj.hideButtonBookOutbound : '', 'hideInfo': flightObj.hideInfo !== undefined ? flightObj.hideInfo : '', 'icons': flightObj.icons !== undefined ? flightObj.icons : {}, 'inbounds_string_allowed': flightObj.inbounds_string_allowed !== undefined ? flightObj.inbounds_string_allowed : '', 'included_luggage_for_free': flightObj.included_luggage_for_free !== undefined ? flightObj.included_luggage_for_free : false, 'included_trolley_for_free': flightObj.included_trolley_for_free !== undefined ? flightObj.included_trolley_for_free : false, 'isFeatured': flightObj.isFeatured !== undefined ? flightObj.isFeatured : false, 'is_fare_applied': flightObj.is_fare_applied !== undefined ? flightObj.is_fare_applied : false, 'landing_date': flightObj.landing_date !== undefined ? flightObj.landing_date : '', 'landing_date_format': flightObj.landing_date_format !== undefined ? flightObj.landing_date_format : '', 'landing_date_format_locale': flightObj.landing_date_format_locale !== undefined ? flightObj.landing_date_format_locale : '', 'landing_hour': flightObj.landing_hour !== undefined ? flightObj.landing_hour : '', 'landing_int': flightObj.landing_int !== undefined ? flightObj.landing_int : 0, 'leg_type': flightObj.leg_type !== undefined ? flightObj.leg_type : '', 'markup_rule_data': flightObj.markup_rule_data !== undefined ? flightObj.markup_rule_data : '', 'nb_combined': flightObj.nb_combined !== undefined ? flightObj.nb_combined : 0, 'nb_escales': flightObj.nb_escales !== undefined ? flightObj.nb_escales : 0, 'nb_roundtrip': flightObj.nb_roundtrip !== undefined ? flightObj.nb_roundtrip : '0', 'nb_roundtrip_total': flightObj.nb_roundtrip_total !== undefined ? flightObj.nb_roundtrip_total : '0', 'needRefreshBeforeCreateItem': flightObj.needRefreshBeforeCreateItem !== undefined ? flightObj.needRefreshBeforeCreateItem : false, 'newItem': flightObj.newItem !== undefined ? flightObj.newItem : '', 'no_flight_transport': flightObj.no_flight_transport !== undefined ? flightObj.no_flight_transport : false, 'operatedByOtherAirline': flightObj.operatedByOtherAirline !== undefined ? flightObj.operatedByOtherAirline : null, 'operated_by_code': flightObj.operated_by_code !== undefined ? flightObj.operated_by_code : null, 'pax_quantity': flightObj.pax_quantity !== undefined ? flightObj.pax_quantity : 0, 'place': flightObj.place !== undefined ? flightObj.place : null, 'pnrCount': flightObj.pnrCount !== undefined ? flightObj.pnrCount : 1, 'price_adult': flightObj.price_adult !== undefined ? flightObj.price_adult : '', 'price_baby': flightObj.price_baby !== undefined ? flightObj.price_baby : '', 'price_child': flightObj.price_child !== undefined ? flightObj.price_child : '', 'provider_code': flightObj.provider_code !== undefined ? flightObj.provider_code : '', 'provider_source_code': flightObj.provider_source_code !== undefined ? flightObj.provider_source_code : '', 'provider_source_id': flightObj.provider_source_id !== undefined ? flightObj.provider_source_id : '', 'public_id': flightObj.public_id !== undefined ? flightObj.public_id : '', 'refund_price': flightObj.refund_price !== undefined ? flightObj.refund_price : 0, 'refund_until': flightObj.refund_until !== undefined ? flightObj.refund_until : '', 'refundable': flightObj.refundable !== undefined ? flightObj.refundable : false, 'seat_class': flightObj.seat_class !== undefined ? flightObj.seat_class : '', 'selected': flightObj.selected !== undefined ? flightObj.selected : 0, 'selectedBrandedFares': flightObj.selectedBrandedFares !== undefined ? flightObj.selectedBrandedFares : null, 'selected_combined': flightObj.selected_combined !== undefined ? flightObj.selected_combined : false, 'senior_quantity': flightObj.senior_quantity !== undefined ? flightObj.senior_quantity : 0, 'takeoff_date': flightObj.takeoff_date !== undefined ? flightObj.takeoff_date : '', 'takeoff_date_format': flightObj.takeoff_date_format !== undefined ? flightObj.takeoff_date_format : '', 'takeoff_date_format_locale': flightObj.takeoff_date_format_locale !== undefined ? flightObj.takeoff_date_format_locale : '', 'takeoff_hour': flightObj.takeoff_hour !== undefined ? flightObj.takeoff_hour : '', 'takeoff_int': flightObj.takeoff_int !== undefined ? flightObj.takeoff_int : 0, 'time_landing_in_minutes': flightObj.time_landing_in_minutes !== undefined ? flightObj.time_landing_in_minutes : 0, 'time_takeoff_in_minutes': flightObj.time_takeoff_in_minutes !== undefined ? flightObj.time_takeoff_in_minutes : 0, 'total_adult': flightObj.total_adult !== undefined ? flightObj.total_adult : 0, 'total_baby': flightObj.total_baby !== undefined ? flightObj.total_baby : 0, 'total_child': flightObj.total_child !== undefined ? flightObj.total_child : 0, 'total_markup': flightObj.total_markup !== undefined ? flightObj.total_markup : 0, 'total_senior': flightObj.total_senior !== undefined ? flightObj.total_senior : 0, 'travel_duration': flightObj.travel_duration !== undefined ? flightObj.travel_duration : '', 'travel_duration_format': flightObj.flight_duration_format !== undefined ? flightObj.flight_duration_format : '', 'travel_duration_int': flightObj.travel_duration_int !== undefined ? flightObj.travel_duration_int : 0, 'travel_duration_label': flightObj.travel_duration_label !== undefined ? flightObj.travel_duration_label : '', 'unique_key': flightObj.unique_key !== undefined ? flightObj.unique_key : '', 'upToRoundtrip': flightObj.upToRoundtrip !== undefined ? flightObj.upToRoundtrip : null, 'visible': flightObj.visible !== undefined ? flightObj.visible : false, 'visible_with_stop': flightObj.visible_with_stop !== undefined ? flightObj.visible_with_stop : false }; }; // Construct Dynamic Content IDs Array using explicit 'flight_number' property var contentIds = []; var flightType = outboundFlight.flight_type || "flight"; var outboundFlightNum = outboundFlight.flight_number || ''; contentIds.push(flightType + "_outbound" + (outboundFlightNum ? "_" + outboundFlightNum : "")); if (inboundFlight) { var inboundFlightNum = inboundFlight.flight_number || ''; contentIds.push(flightType + "_inbound" + (inboundFlightNum ? "_" + inboundFlightNum : "")); } // Update payload data state structure with comprehensive details flashyUpdateCartPayload = { 'content_ids': contentIds, 'value': outboundFlight.amount_total || 0, 'currency': outboundFlight.currency || 'USD', 'context': { // Precise Path Validation Check 'page_name': window.location.pathname.includes('summary-package') ? 'summary-package' : 'summary_v2_flights', 'order_id': order_id || '', 'url': window.location.href, 'coupon': appliedCoupon, // Backwards compatibility core shortcuts 'departure_airline': outboundFlight.company_code || '', 'return_airline': inboundFlight ? (inboundFlight.company_code || '') : '', 'origin_iata': outboundFlight.city_from_airport_code || '', 'destination_iata': outboundFlight.city_to_airport_code || '', 'departure_date': getUnixTimestamp(outboundFlight.flight_date), 'return_date': inboundFlight ? getUnixTimestamp(inboundFlight.flight_date) : null, // Complete Isolated Inventory Breakdowns 'outbound_flight_details': extractFlightProperties(outboundFlight), 'inbound_flight_details': extractFlightProperties(inboundFlight), // Dynamic form inputs arrays 'passenger_details': flashyPassengers } }; console.log('Flashy Object Updated:', flashyUpdateCartPayload); flashy('UpdateCart', flashyUpdateCartPayload); } } // Initialize elements and target optimized event listeners buildFlashyPayload(); // Text inputs catch data only when focus leaves the target field element $(document).on('blur', 'input[class*="js-pax-first-name-"], input[class*="js-pax-last-name-"], #order_coupon', function() { buildFlashyPayload(); }); // Dropdowns, luggage selects, and Date selects trigger updates instantly $(document).on('change', 'select.select-luggage-extra, select[id*="_luggage_option_"], [id^="day-"], [id^="month-"], [id^="year-"]', function() { buildFlashyPayload(); }); // Handle AJAX-dependent Coupon action confirmation links safely $(document).on('click', '.submit-coupon, #rs_submit_passenger_information, #rs_submit_select_options', function() { setTimeout(function() { buildFlashyPayload(); }, 250); }); //}); }