ADVERTISEMENT

Cebu Pacific to resume Xiamen route, launch direct Cebu-Shanghai services

Published Aug 7, 2026 09:49 pm
Low-cost carrier Cebu Pacific is reviving direct flights between Manila and the Chinese coastal city of Xiamen, as part of its ongoing expansion in China and elsewhere in Asia to capitalize on the region’s growing demand for air travel.
In a statement on Friday, Aug. 7, Cebu Pacific said it will once again offer direct flights between Manila and Xiamen starting Nov. 23.
The route will operate twice a week, specifically on Mondays and Fridays, as Cebu Pacific works to rebuild its presence in China after scaling back its flights due to weaker demand in the aftermath of the pandemic.
Cebu Pacific currently operates direct flights from Manila to Shanghai and Guangzhou. But as demand from China continues to recover, the airline is keen on expanding its network to strengthen its position in the market.
In line with this, Cebu Pacific is launching flights between Cebu and Shanghai beginning on Nov. 17 on a thrice-weekly schedule, making it the only local airline to offer direct services between the two cities.
China is not the only country on Cebu Pacific’s radar for overseas expansion, as it also looks to strengthen its presence in Japan through the central city of Nagoya.
The Gokongwei-led airline is launching direct flights from Cebu to Nagoya starting Nov. 19, which will operate four times a week. The route will be its third destination in Japan from Cebu, following Tokyo-Narita and Osaka.
Vietnam is another market that Cebu Pacific is expanding in during the fourth quarter, with the reinstatement of direct flights between Cebu and Ho Chi Minh City and between Clark and Hanoi, which will resume on Oct. 26 and Nov. 19, respectively.
“The launch of additional direct flights to China, Vietnam, and Japan not only provides travelers from all over the Philippines with more convenient access to these vibrant cities but also encourages more international travelers to visit and explore our country,” said Cebu Pacific President and Chief Commercial Officer Alexander Lao.
Cebu Pacific’s expansion of its international footprint in Asia comes as demand for air travel in the region remains resilient despite higher jet fuel costs prompting airfare increases.
Data from the Association of Asia Pacific Airlines (AAPA) showed that the region carried an aggregate total of 192.49 million passengers in the six months through June, up three percent from 186.43 million passengers recorded in the same period last year.
Cebu Pacific ended the first half with a total fleet of 102 aircraft, reflecting its capacity to operate the new routes and potentially add even more in the coming months.
“As we continue to expand our international network, we remain committed to making travel more accessible and affordable for our passengers,” Lao said.
To promote the new routes, Cebu Pacific is holding a seat sale until Aug. 11, offering one-way base fares as low as ₱1, exclusive of fees and surcharges.

Related Tags

Cebu Pacific China Vietnam Japan
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ static_articles_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.