@@ -29,7 +29,8 @@ export const VANITY_CDN_PREFIX = '/cdn/'
2929export const EXTENSION_CDN_PREFIX = '/ext/cdn/'
3030
3131const CART_PATTERN = / ^ \/ c a r t \/ /
32- const ACCOUNT_PATTERN = / ^ \/ a c c o u n t ( \/ l o g i n \/ m u l t i p a s s ( \/ [ ^ / ] + ) ? ) ? \/ ? $ /
32+ const CHECKOUT_PATTERN = / ^ \/ c h e c k o u t s \/ (? ! i n t e r n a l \/ ) /
33+ const ACCOUNT_PATTERN = / ^ \/ a c c o u n t ( \/ l o g i n \/ m u l t i p a s s ( \/ [ ^ / ] + ) ? | \/ l o g o u t ) ? \/ ? $ /
3334const VANITY_CDN_PATTERN = new RegExp ( `^${ VANITY_CDN_PREFIX } ` )
3435const EXTENSION_CDN_PATTERN = new RegExp ( `^${ EXTENSION_CDN_PREFIX } ` )
3536
@@ -81,6 +82,7 @@ export function getProxyHandler(_theme: Theme, ctx: DevServerContext) {
8182export function canProxyRequest ( event : H3Event ) {
8283 if ( event . method !== 'GET' ) return true
8384 if ( event . path . match ( CART_PATTERN ) ) return true
85+ if ( event . path . match ( CHECKOUT_PATTERN ) ) return true
8486 if ( event . path . match ( ACCOUNT_PATTERN ) ) return true
8587 if ( event . path . match ( VANITY_CDN_PATTERN ) ) return true
8688 if ( event . path . match ( EXTENSION_CDN_PATTERN ) ) return true
@@ -199,9 +201,11 @@ function patchProxiedResponseHeaders(ctx: DevServerContext, event: H3Event, resp
199201 const locationHeader = response . headers . get ( 'Location' )
200202 if ( locationHeader ) {
201203 const url = new URL ( locationHeader , 'https://shopify.dev' )
202- url . searchParams . delete ( '_fd' )
203- url . searchParams . delete ( 'pb' )
204- setResponseHeader ( event , 'Location' , url . href . replace ( url . origin , '' ) )
204+ if ( ! CHECKOUT_PATTERN . test ( url . pathname ) ) {
205+ url . searchParams . delete ( '_fd' )
206+ url . searchParams . delete ( 'pb' )
207+ setResponseHeader ( event , 'Location' , url . href . replace ( url . origin , '' ) )
208+ }
205209 }
206210
207211 // Cookies are set for the vanity domain, fix it for localhost:
0 commit comments