Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions apps/web-user/src/app/partner/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import type { Metadata } from "next";
import { Icon } from "@/apps/web-user/common/components/icons";
import {
PARTNER_SURVEY_URL,
SELLER_CONSOLE_URL,
} from "@/apps/web-user/common/constants/partner.constants";

/**
* 오프라인에서 만나는 입점 희망 사장님께 보여주는 QR 진입점(`https://picakes.com/partner`).
*
* QR에는 이 주소만 담고 실제 목적지는 코드에서 정합니다 — 설문 폼 주소나 운영 도메인이 바뀌어도
* 이미 배포한 QR을 회수할 필요가 없게 하기 위함입니다
* ({@link ../../common/constants/partner.constants.ts}).
*
* 자동 리다이렉트를 걸지 않고 버튼 두 개를 직접 고르게 합니다. 찍는 사람의 상황이
* "아직 입점 전(설문)"과 "이미 입점(운영 페이지)"으로 갈리기 때문에 서버가 대신 판단할 수 없습니다.
*/
export const metadata: Metadata = {
title: "사장님 입점 안내",
description:
"Picake는 케이크 전문 매장을 위한 주문·예약 플랫폼입니다. 판매자 페이지에서 매장을 운영하거나, 사전 수요조사에 참여해 주세요.",
// 오프라인 QR 전용 경유 페이지라 검색 노출은 불필요합니다.
robots: { index: false, follow: false },
};

export default function PartnerPage() {
return (
// 100vh가 아니라 100dvh — 모바일 브라우저의 100vh는 주소창에 가려지는 영역까지 포함해서
// 실제 보이는 높이보다 큽니다. 그대로 두면 하단 버튼이 접혀서 스크롤해야 보입니다.
<main className="min-h-[100dvh] flex flex-col px-5 pt-6 pb-8">
{/* flex-1 + justify-center: 버튼 위 남는 공간의 세로 중앙에 안내를 배치 */}
<div className="flex-1 flex flex-col items-center justify-center text-center">
<Icon name="logoPicake" width={80} height={80} />

<h1 className="mt-6 text-xl font-bold text-gray-900">
사장님, Picake에서
<br />
케이크를 팔아보세요
</h1>

<p className="mt-3 text-sm leading-6 text-gray-500">
Picake는 케이크를 찾는 손님과 매장을 이어주는
<br />
주문·예약 플랫폼이에요.
<br />
주문부터 픽업 관리까지 한 곳에서 처리할 수 있어요.
</p>
</div>

<div className="flex flex-col gap-3">
<a
href={PARTNER_SURVEY_URL}
target="_blank"
rel="noopener noreferrer"
className="w-full h-[52px] flex items-center justify-center bg-primary text-white text-base font-bold rounded-lg transition-all duration-200"
>
입점 사전 수요조사 참여하기
</a>

<a
href={SELLER_CONSOLE_URL}
target="_blank"
rel="noopener noreferrer"
className="w-full h-[52px] flex items-center justify-center bg-white text-gray-900 text-base font-bold border border-gray-100 rounded-lg transition-all duration-200"
>
판매자 페이지 바로가기
</a>

<p className="mt-1 text-center text-xs text-gray-400">
이미 입점하셨다면 판매자 페이지로 로그인해 주세요.
</p>
</div>
</main>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ export default function RootWrapperLayout({ children }: RootWrapperLayoutProps)
if (pathname === "/qa") return { variant: "minimal" };
// 앱 다운로드 진입점(/app) 하위는 QR로 직진입하는 단독 화면이라 공통 헤더 없음
if (pathname?.startsWith("/app/")) return { variant: "minimal" };
// 입점 안내(/partner)도 QR로 직진입하는 단독 화면
if (pathname === PATHS.PARTNER) return { variant: "minimal" };
// 로그인/회원가입 화면(콜백 포함)은 자체 레이아웃을 쓰므로 공통 헤더 없음
if (pathname?.startsWith("/auth/")) return { variant: "minimal" };
if (pathname?.startsWith("/mypage/")) return { variant: "minimal" };
Expand Down
15 changes: 15 additions & 0 deletions apps/web-user/src/common/constants/partner.constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/**
* 입점 안내 페이지(`/partner`)가 연결하는 외부 링크 상수.
*
* 오프라인에서 만나는 사장님께 보여줄 QR에는 **이 링크들을 직접 넣지 않습니다.**
* 항상 `https://picakes.com/partner`를 QR로 넣고, 실제 목적지는 이 파일에서 정합니다.
* 인쇄물·명함의 QR은 회수할 수 없는데 설문 폼 주소나 운영 도메인은 바뀔 수 있기 때문입니다
* (앱 다운로드 진입점 `/app`과 같은 원칙 — {@link ./app-download.constants.ts}).
*/

/** 판매자 운영 페이지 (web-seller 상용 도메인) */
export const SELLER_CONSOLE_URL = "https://seller.picakes.com";

/** 입점 사전 수요조사 Google Form */
export const PARTNER_SURVEY_URL =
"https://docs.google.com/forms/d/e/1FAIpQLSdCIclkHiXDHwxG0uhtSRUE1cKoxIzEA-xmuumlu7FWWGjTOA/viewform";
6 changes: 6 additions & 0 deletions apps/web-user/src/common/constants/paths.constant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ export const PATHS = {
/** Play Store 미입점 동안 Android가 보게 되는 안내 페이지 */
APP_DOWNLOAD_ANDROID: "/app/android",

/**
* 입점 안내 진입점 — 사장님께 보여주는 QR에 넣는 주소(`https://picakes.com/partner`).
* 판매자 운영 페이지와 사전 수요조사 설문으로 연결합니다.
*/
PARTNER: "/partner",

AUTH: {
/** 로그인 화면 (로그인이 필요한 상황에서 이동) */
LOGIN: "/auth/login",
Expand Down
Loading