Ecommerce Template
Next.js·React 등으로 만든 최신 전자상거래 템플릿
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
This is a template for building a Shopify app using React Router. It was forked from the Shopify Remix app template and converted to React Router.
Rather than cloning this repo, follow the Quick Start steps.
Visit the shopify.dev documentation for more details on the React Router app package.
If you have an existing Remix app that you want to upgrade to React Router, please follow the upgrade guide. Otherwise, please follow the quick start guide below.
Before you begin, you'll need to download and install the Shopify CLI if you haven't already.README 전문 보기 ↗This is a template for building a Shopify app using React Router. It was forked from the Shopify Remix app template and converted to React Router.
Rather than cloning this repo, follow the Quick Start steps.
Visit the shopify.dev documentation for more details on the React Router app package.
If you have an existing Remix app that you want to upgrade to React Router, please follow the upgrade guide. Otherwise, please follow the quick start guide below.
Before you begin, you'll need to download and install the Shopify CLI if you haven't already.
shopify app init --template=https://github.com/Shopify/shopify-app-template-react-router
shopify app dev
Press P to open the URL to your app. Once you click install, you can start development.
Local development is powered by the Shopify CLI. It logs into your account, connects to an app, provides environment variables, updates remote config, creates a tunnel and provides commands to generate extensions.
To authenticate and query data you can use the shopify const that is exported from /app/shopify.server.js:
export async function loader({ request }) {
const { admin } = await shopify.authenticate.admin(request);
const response = await admin.graphql(`
{
products(first: 25) {
nodes {
title
description
}
}
}`);
const {
data: {
products: { nodes },
},
} = await response.json();
return nodes;
}
This template comes pre-configured with examples of:
Please read the documentation for @shopify/shopify-app-react-router to see what other API's are available.
This template is configured with the Shopify Dev MCP. This instructs Cursor, GitHub Copilot and Claude Code and Google Gemini CLI to use the Shopify Dev MCP.
For more information on the Shopify Dev MCP please read the documentation.
This template uses Prisma to store session data, by default using an SQLite database.
The database is defined as a Prisma schema in prisma/schema.prisma.
This use of SQLite works in production if your app runs as a single instance. The database that works best for you depends on the data your app needs and how it is queried. Here’s a short list of databases providers that provide a free tier to get started:
| Database | Type | Hosters |
|---|---|---|
| MySQL | SQL | Digital Ocean, Planet Scale, Amazon Aurora, Google Cloud SQL |
| PostgreSQL | SQL | Digital Ocean, Amazon Aurora, Google Cloud SQL |
| Redis | Key-value | Digital Ocean, Amazon MemoryDB |
| MongoDB | NoSQL / Document | Digital Ocean, MongoDB Atlas |
To use one of these, you can use a different datasource provider in your schema.prisma file, or a different SessionStorage adapter package.
Build the app by running the command below with the package manager of your choice:
Using yarn:
yarn build
Using npm:
npm run build
Using pnpm:
pnpm run build
When you're ready to set up your app in production, you can follow our deployment documentation to host it externally. From there, you have a few options:
When you reach the step for setting up environment variables, you also need to set the variable NODE_ENV=production.
If you get an error like:
The table `main.Session` does not exist in the current database.
Create the database for Prisma. Run the setup script in package.json using npm, yarn or pnpm.
Embedded apps must maintain the user session, which can be tricky inside an iFrame. To avoid issues:
Link from react-router or @shopify/polaris. Do not use <a>.redirect returned from authenticate.admin. Do not use redirect from react-routeruseSubmit from react-router.This only applies if your app is embedded, which it will be by default.
If you are registering webhooks in the afterAuth hook, using shopify.registerWebhooks, you may find that your subscriptions aren't being updated.
Instead of using the afterAuth hook declare app-specific webhooks in the shopify.app.toml file. This approach is easier since Shopify will automatically sync changes every time you run deploy (e.g: npm run deploy). Please read these guides to understand more:
If you do need shop-specific webhooks, keep in mind that the package calls afterAuth in 2 scenarios:
During normal development, the app won't need to re-authenticate most of the time, so shop-specific subscriptions aren't updated. To force your app to update the subscriptions, uninstall and reinstall the app. Revisiting the app will call the afterAuth hook.
Webhooks subscriptions created in the Shopify admin will fail HMAC validation. This is because the webhook payload is not signed with your app's secret key.
The recommended solution is to use app-specific webhooks defined in your toml file instead. Test your webhooks by triggering events manually in the Shopify admin(e.g. Updating the product title to trigger a PRODUCTS_UPDATE).
When you trigger a webhook event using the Shopify CLI, the admin object will be undefined. This is because the CLI triggers an event with a valid, but non-existent, shop. The admin object is only available when the webhook is triggered by a shop that has installed the app. This is expected.
Webhooks triggered by the CLI are intended for initial experimentation testing of your webhook configuration. For more information on how to test your webhooks, see the Shopify CLI documentation.
By default the graphql.vscode-graphql extension for will assume that GraphQL queries or mutations are for the Shopify Admin API. This is a sensible default, but it may not be true if:
If so, please update .graphqlrc.ts.
By default the CLI uses a cloudflare tunnel. Unfortunately cloudflare tunnels wait for the Response stream to finish, then sends one chunk. This will not affect production.
To test streaming using await during local development we recommend localhost based development.
This is because a JWT token is expired. If you are consistently getting this error, it could be that the clock on your machine is not in sync with the server. To fix this ensure you have enabled "Set time and date automatically" in the "Date and Time" settings on your computer.
If you choose to use MongoDB with Prisma, there are some gotchas in Prisma's MongoDB support to be aware of. Please see the Prisma SessionStorage README.
C:\...\query_engine-windows.dll.node).Unable to require(C:\...\query_engine-windows.dll.node).
The Prisma engines do not seem to be compatible with your system.
query_engine-windows.dll.node is not a valid Win32 application.
Fix: Set the environment variable:
PRISMA_CLIENT_ENGINE_TYPE=binary
This forces Prisma to use the binary engine mode, which runs the query engine as a separate process and can work via emulation on Windows ARM64.
React Router:
Shopify:
Internationalization: