Hydrogen
당신과 코딩 에이전트를 위한 상거래 기본 요소. 기존 프레임워크에 장바구니·상품·결제·계정을 추가합니다
Dropship Scout는 제품 검증, 공급업체 확인, 스토어 페이지 작성을 한 작업공간에서 처리합니다. 무료 시작, Pro는 월 29달러
Dropship Scout helps you validate a product, confirm a supplier can fulfill it, and publish a store page in one workspace. Start free, Pro is $29/month.
커머스TypeScript · CSSGitHub @DealPatrol온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기dropshiping app with supplies and products on automation
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Next.js 14 dropshipping app. A seller signs up, imports products from a real supplier, connects Stripe payouts, and publishes a storefront hosted by this app (product pages, cart, and checkout). Shopify remains an optional listing push.
Order routing, supplier sandbox behavior, and the payout split are documented in docs/commerce.md.README 전문 보기 ↗The app brings supplier research, realistic advertising economics, campaign drafts, hosted listings, channel exports, and a manual experiment ledger into one merchant workflow. Try /launch-preview; signed-in accounts start at /dashboard. Free supports 3 saved launches; the existing $29 Pro plan supports 50.
Next.js 14 dropshipping app. A seller signs up, imports products from a real supplier, connects Stripe payouts, and publishes a storefront hosted by this app (product pages, cart, and checkout). Shopify remains an optional listing push.
Order routing, supplier sandbox behavior, and the payout split are documented in docs/commerce.md.
Demo source: the built-in discovery catalog is curated sample data. Its prices, demand, ratings, sales, and supplier availability are not live or verified. Live sources use the adapter interface in
lib/supplier-data; the optional CJ Dropshipping adapter is documented indocs/supplier-adapters.md.
Requires Node.js 22.14+, pnpm, and a Postgres database (Neon works).
schema.sql documents them.cp .env.local.example .env.local and set DATABASE_URL and AUTH_SECRET. Generate the latter with openssl rand -base64 32.pnpm install --frozen-lockfile and pnpm dev.http://localhost:3000/auth/sign-up, create an account, and open the dashboard. Sign in later at /auth/login.pnpm build to check the production build. pnpm start serves the built app.| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | Runtime | Postgres connection string, including Neon SSL parameters. |
AUTH_SECRET | Runtime | Long random signing key for login session cookies. Keep the same value between deployments. |
ANTHROPIC_API_KEY | Optional | Enables AI search and prompt interpretation. Built-in discovery and catalog work without it. |
NEXT_PUBLIC_APP_URL | Recommended | Public app URL, such as http://localhost:3000 locally or the Vercel domain. |
NEXT_PUBLIC_SITE_URL | Recommended | Canonical origin for metadata, the sitemap, Open Graph, and Stripe return URLs. Set this to https://getdropshipscout.com in production. Falls back to NEXT_PUBLIC_APP_URL, then that domain. |
CRON_SECRET | Runtime | Authorizes /api/cron/track; the route refuses to run when it is missing. |
STRIPE_SECRET_KEY | Billing | Restricted Stripe server key for Customers, Checkout, and Billing Portal. |
STRIPE_PRO_PRICE_ID | Billing | Recurring Price ID for the monthly Dropship Scout Pro product. |
STRIPE_PRO_ANNUAL_PRICE_ID | Optional billing | Recurring yearly Price ID. When set, pricing offers annual checkout with the same Pro limits. |
NEXT_PUBLIC_META_PIXEL_ID | Optional ads | Meta Pixel id, digits only. Unset means the pixel is not loaded. |
NEXT_PUBLIC_GA_MEASUREMENT_ID | Optional ads | GA4 measurement id (G-...). Unset means GA4 is not loaded. |
NEXT_PUBLIC_GOOGLE_ADS_ID | Optional ads | Google Ads id (AW-...). Needs a conversion label to send a conversion. |
NEXT_PUBLIC_GOOGLE_ADS_SIGNUP_LABEL | Optional ads | Conversion label for a completed signup. |
NEXT_PUBLIC_GOOGLE_ADS_LEAD_LABEL | Optional ads | Conversion label for a completed idea check. |
/auth/sign-up. No Shopify account is required./store/{slug}./store/{slug}/orders/{token}.The built-in discovery catalog is still sample research data and cannot be sold on the storefront. Keep STRIPE_LIVE_MODE off and SUPPLIER_ORDERS_MODE=sandbox until you intend to move real money. Keys and the human approval steps are listed in docs/commerce.md.
Import this repository into Vercel as a Next.js project. Select pnpm and use pnpm build. Copy the required values from .env.example into sensitive Environment Variables for Production and Preview; do not commit real values. Keep the Postgres URL and all provider keys server-side and use a pooled Neon connection string for serverless functions.
The included hourly cron calls /api/cron/track. Set a long random CRON_SECRET; Vercel Cron automatically sends it as Authorization: Bearer <CRON_SECRET>. Local calls must send the same header. A missing secret returns 503, not an unprotected successful run.
Vercel Web Analytics is included with @vercel/analytics. Enable Web Analytics on the Vercel project. No extra key is required. Signup buttons emit signup-click. A successful call that returns a Stripe Checkout URL emits checkout-started.
Meta Pixel, GA4, and Google Ads load only when their NEXT_PUBLIC_ ids are set. Signup fires after an account is created. The idea checker fires a lead after a completed check. Purchase fires only after Stripe Checkout is confirmed and the dashboard claims that conversion once. UTM parameters, gclid, and fbclid are stored on the user at signup, and filled in on later logins when those columns are empty. /ads/check-your-product and /ads/worth-selling are noindex landing pages for the checker. They are not in the sitemap.
If Stripe billing keys are missing, signed-in checkout joins the Pro waitlist (watch_subscribers, source pro-waitlist) instead of returning an error. The app still does not send that email.
Public research pages live under /research, with a sample-catalog preview at /research/preview and a no-signup product idea checker at /research/idea-checker. Those pages do not publish order counts or revenue. The checker uses the default platform fee and card-fee estimate, not live sales. Pro checkout starts from /pricing after signup or sign-in (?plan=pro, optional &interval=year). POST /api/watch stores a products-to-watch email in watch_subscribers. The app does not send that email.
Free accounts can save 10 products, keep 25 research-catalog products, build 10 products at a time, push 3 Shopify products per calendar month, and publish 25 hosted-store listings. Pro removes those limits. Live CJ/Printful/Printify import uses the platform API keys and is available to every signed-in seller; the older discovery adapter for CJ remains Pro-only.
STRIPE_PRO_PRICE_ID and a restricted STRIPE_SECRET_KEY. Set STRIPE_PRO_ANNUAL_PRICE_ID only when the yearly Price exists.POST /api/stripe/webhook and subscribe to checkout.session.completed, customer.subscription.created, customer.subscription.updated, customer.subscription.deleted, charge.refunded, and account.updated. Storefront checkouts and Connect payout status use the same endpoint.STRIPE_WEBHOOK_SECRET.Webhook signatures are verified and event IDs are stored for idempotency. Stripe Tax is not enabled automatically: before charging customers in a jurisdiction where tax is required, configure registrations and recurring-payment tax collection in Stripe.
The hosted storefront is the default. Sales channels can also connect Shopify and WooCommerce. The token or API key is validated with that platform before it is saved. Sync sends published store listings. Pull imports paid Shopify orders or processing WooCommerce orders into supplier fulfillment.
Those channel orders record the same cost split and do not create a Stripe transfer, because the customer paid the external shop. Import stays paused while SUPPLIER_ORDERS_MODE=live, so a channel order cannot bill CJ, Printful, or Printify from the platform wallet. Etsy, eBay, and TikTok Shop are listed as coming soon: their APIs exist, and connecting them needs an approved partner app this deployment does not start.
Research-catalog pushes to Shopify still live on My Catalog and use the same saved Shopify token.
Open Sales channels, enter the myshopify.com domain, and save a Custom App Admin API token with write_products, read_orders, and write_orders. Dropship Scout calls shop.json before encrypting the token. WooCommerce uses an HTTPS store URL and a REST API consumer key with read/write access to products and orders.
NEXT_PUBLIC_GOOGLE_ADS_PURCHASE_LABEL | Optional ads | Conversion label for a Stripe-confirmed Pro purchase. |
STRIPE_WEBHOOK_SECRET | Billing | Signing secret for /api/stripe/webhook. |
CJ_API_ACCESS_TOKEN | Optional, Pro | Enables the live CJ Dropshipping supplier adapter. |
CJ_API_BASE_URL | Optional | CJ API v2 base URL; normally keep the documented default. |
SHOPIFY_API_VERSION | Optional | Shopify Admin API version. The hosted storefront does not use it. |
STRIPE_LIVE_MODE | Optional | Must be true together with a live secret key before any live charge or transfer. Default is test mode. |
PLATFORM_FEE_BPS | Optional | Platform fee in basis points of merchandise. Default 500 (5%). |
STRIPE_FEE_BPS | Optional | Estimated card fee used to reject underpriced listings. Default 290. |
STRIPE_FEE_FIXED_CENTS | Optional | Estimated fixed card fee in cents. Default 30. Captured orders use Stripe's actual fee. |
CONNECT_ACCOUNT_COUNTRY | Optional | Country for new Express recipient accounts. Default US. |
SUPPLIER_ORDERS_MODE | Optional | sandbox (default) or live. Live places and pays real supplier orders. |
PRINTFUL_API_TOKEN | Optional | Printful private token for catalog import and draft/live orders. |
PRINTFUL_STORE_ID | Optional | Printful store whose sync products can be imported. |
PRINTFUL_API_BASE_URL | Optional | Default https://api.printful.com. |
PRINTIFY_API_TOKEN | Optional | Printify personal access token. |
PRINTIFY_SHOP_ID | Optional | Printify shop whose products can be imported. |
PRINTIFY_API_BASE_URL | Optional | Default https://api.printify.com/v1. |
QUOTE_COUNTRY | Optional | Country used only for catalog shipping quotes. Default US. |
QUOTE_REGION | Optional | Region for catalog shipping quotes. Default CA. |
QUOTE_CITY | Optional | City for catalog shipping quotes. |
QUOTE_POSTAL_CODE | Optional | Postal code for catalog shipping quotes. |
QUOTE_ADDRESS1 | Optional | Street for catalog shipping quotes. |