E-shop Launch Guide
Install Claude Code once, then copy the ready made prompt in each chapter. Claude does the technical work in front of you, while you create the accounts, enter your own details and approve what happens.
One prompt that walks you through everything
First install Node.js and Claude Code once, which is described in chapters 1 to 4 of the full documentation. Then run the claude command inside the project folder and paste the prompt below. Claude takes you through all the rest and only ever asks you for accounts, keys and approvals.
Paste this prompt into Claude Code
I bought the StartEshop e-commerce project (this folder). I am not technical. Guide me step by step until it is my own shop, live on the internet. How we work: I create the accounts, I type in my own keys and credentials, and I never ask you to handle my passwords. Anything that costs money I approve first. You do the terminal, the config, the code and the deployment. Before each step tell me in one sentence what you will do, and at every step that is on me, wait until I say done. In the folder: read the project files first, .env.example and the VAT agent docs in dph/README.md and dph/playbook.md. Go to the web only when the answer is not there. The plan: 1. Check node -v, I need Node 18 or newer. 2. Walk me through .env.example one service at a time (Neon database, Stripe, Resend, Packeta, Vercel), and for each, where to sign up and what to copy. 3. Create the .env file and fill in the keys as I hand them over. 4. Run npm install, npx prisma generate, npx prisma db push and npm run dev. Then give me the shop address and the admin login at /admin/login. 5. When I say I am ready, push the project to my GitHub and deploy on Vercel. List the exact environment variables I need there. 6. Take me through the Stripe webhook at [my-domain.cz]/api/stripe/webhook and read the events out of src/app/api/stripe/webhook/route.ts. 7. For a custom domain go through every place at once: DNS at the registrar, NEXT_PUBLIC_BASE_URL and NEXT_PUBLIC_URL, baseUrl and supportUrl in src/config/store.ts, the Stripe webhook URL and the domain verification in Resend. 8. Fill in src/config/store.ts with me field by field: company, address, company ID, VAT ID, bank account, e-mails and whether I am a VAT payer. 9. Replace ADMIN_PASSWORD and ADMIN_TOKEN with new strong values in .env and on Vercel. 10. Finish with a full test order in Stripe test mode. When monthly VAT comes up, remind me the project has a /dph agent. Safety: before anything risky, back up the database with a dated pg_dump, reading DATABASE_URL from .env yourself and never printing it. Never print keys or passwords in the chat. If an error shows up, read its full text, explain in one sentence what it means, and only then fix it. For more detail fetch https://www.starteshop.cz/en/lp/dokumentace/llms.txt, the whole documentation as plain text with chapter anchors. The human version is https://www.starteshop.cz/en/lp/dokumentace plus an anchor, for example #stripe or #dph.
Paste it as a single message. From there Claude does the asking, you only answer and confirm.
The detailed chapters are still here. Switch to Full documentation any time and go through the one you need step by step.
How this documentation works
Chapters 1 to 4 are one time manual preparation: you install Node.js and Claude Code. From chapter 5 on, every chapter starts with a prompt you copy into Claude Code, followed by what Claude will do and what it will need from you.
What you do
- •You create the service accounts. They are yours and they are in your name.
- •You enter your own credentials and API keys. They stay in your .env file and in your own Vercel account.
- •You approve anything that costs money, and every step Claude asks about.
- •You decide how the shop should look and work, and you check the result in your browser.
What Claude Code does
- •Writes and runs the terminal commands, so you never have to learn them.
- •Creates and fills in the configuration from the details you dictate.
- •Edits code, texts, shipping prices and styling, and shows you the change.
- •Deploys the shop and helps track down the cause when something is off.
It works with you, not behind your back
Estimated time: 1 to 2 hours
Most of it goes into signing up with the services, which only you can do. The setup and the deployment itself run under Claude Code.
Contents
What you will need
One time manual stepNone of this is technical. A computer, an email address and a quiet hour will do.
Basic requirements
A computer
Windows, Mac or Linux, anything works
An email address
For signing up with the services (Vercel, Stripe and others)
What you receive after purchase
A ZIP file with the project folder
The complete e-shop including the admin, invoicing and the accounting agent. You unzip it and from that moment it is yours.
A payment card (for Stripe verification and for the Claude Code subscription)
Stripe verifies your card during signup. The Claude Code subscription is a separate monthly fee paid to Anthropic.
What it costs
- •Claude Code: its own subscription with Anthropic, see chapter 4.
- •Vercel, Neon and Resend: the free tiers are plenty to get started.
- •Stripe: no monthly fee, only a commission on payments you actually take.
- •Domain: a yearly fee with a registrar, if you want your own.
You do not need to code
Glossary
Only the terms you actually meet in this guide. You do not need to know more than this.
Two words you will see everywhere
Prompt
The sentence or paragraph in which you tell Claude Code what to do. Every chapter has one ready, you just copy it.
The .env file
A text file in the project folder holding your service keys. It never goes online and it never belongs in a code backup.
Programs on your computer
Claude Code
Your assistant. It runs in the terminal, reads the project folder and does the work you give it, with every step visible to you.
Terminal
A window for typing commands. Command Prompt (cmd) on Windows, Terminal on a Mac. You will mostly open it just to start Claude Code.
Node.js
The engine the shop runs on. You install it once in chapter 3 and then forget about it.
Online services
Vercel
The hosting where your shop lives on the internet. Free to start, and it takes care of speed and uptime.
Neon
The database. This is where products, orders and customers live. The free tier is fine to start.
Stripe
The payment gateway for cards, Apple Pay and Google Pay. You pay a commission on transactions only.
Resend
Sends the emails your customers get, such as order confirmations and shipping notices.
Packeta (Zásilkovna)
Shipping. Customers pick a collection point in the cart, and you print labels in batches.
GitHub(optional)
Storage for your shop's code. Not required, but with it Vercel deploys every change on its own.
You do not need the details
Installing Node.js
One time manual stepWhy install this by hand? Node.js is the engine both the shop and Claude Code itself run on, so it has to come first. It is the last install you do on your own.
- 1
Go to nodejs.org
- 2
Click the button "Get Node.js®"
- 3
On the download page choose the LTS version (recommended)
The page detects your system and offers the right file
- 4
Open the downloaded file and keep clicking "Next" to the end
- 5
Restart your computer
How you know it worked
Setting up Claude Code
One time manual stepClaude Code is a separate service from Anthropic. It needs its own account and its own subscription, which is not included in the price of the e-shop. Without it you cannot run the rest of this guide.
ACreating an Anthropic account
- 1
Go to console.anthropic.com
- 2
Click "Sign Up" and create an account (you can use a Google account)
- 3
Pick a plan, usually Claude Pro is enough
Plans:
- Claude Pro: the lower monthly plan, usually enough to launch a shop
- Claude Max: the higher plan for intensive daily use
Current pricing and limits are on Anthropic's own site and change over time. A subscription is usually cheaper than paying for API credits.
BInstalling Claude Code
- 1
Open the terminal:
- Windows: Win + R, type
cmd, Enter - Mac: Cmd + Space, type "Terminal", Enter
- Windows: Win + R, type
- 2
Copy this command into the terminal and press Enter:
npm install -g @anthropic-ai/claude-code - 3
Wait for the install to finish (it can take a minute)
CFirst run and sign in
- 1
In the terminal type:
claude - 2
A browser opens and you sign in to your Anthropic account
- 3
Sign in and allow access
- 4
Claude Code is ready. From here on you talk to it right in the terminal
From here on you work with prompts
Creating service accounts
The accounts have to be created by you, they are in your name and you pay for them. Claude walks you through them and tells you exactly where to click and what to copy.
Copy this prompt into Claude Code
I own this e-shop and I am not technical. Open the .env.example file in the project and walk me through the services I need to sign up for, one at a time: 1. Neon (database, the DATABASE_URL key) 2. Stripe (card payments, the STRIPE_SECRET_KEY and NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY keys) 3. Resend (customer emails, the RESEND_API_KEY key) 4. Packeta / Zásilkovna (shipping, the PACKETA_API_KEY and PACKETA_API_PASSWORD keys) 5. Vercel (the hosting the shop will run on) For each service tell me which address to go to, what to fill in and which value to copy. I do the signing up, you just tell me what to click. I will keep the keys aside for now, we are not putting them into the project yet. After each service, wait until I tell you I am done.
Replace anything in square brackets with your own details.
What Claude will do
- •Reads the .env.example file and tells you exactly which keys this shop needs and what each one is for.
- •Takes you through one service at a time and waits while you finish signing up.
- •Points out what is free and where you pay a commission or a monthly fee.
- •Helps with the choices signup asks about, such as the eu-central-1 (Frankfurt) database region for speed in Central Europe.
What it will ask you for
- •That you click through the signups yourself. The accounts are yours.
- •A confirmation after each service so it knows when to move on.
- •That you keep the copied keys aside for now. You enter them in chapter 6.
Manual step by step referenceOpen this if you would rather do it yourself, or want to know what is happening under the hood.
Neon
The database holding products and orders
- 1
Go to neon.tech and sign up
- 2
Click "New Project"
- 3
Name the project (for example "my-eshop") and pick the eu-central-1 (Frankfurt) region
After it is created, copy the Connection string. That is the value for DATABASE_URL.
Stripe
Cards, Apple Pay and Google Pay
- 1
Go to stripe.com and create an account
- 2
Go through business verification (you can finish it later, test mode works in the meantime)
- 3
In the dashboard: Developers → API keys, copy both keys
The publishable key is NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, the secret key is STRIPE_SECRET_KEY. The third one, the webhook signing secret, comes in chapter 9.
Resend
Sending emails to your customers
- 1
Go to resend.com and sign up
- 2
Open API Keys and create a new key
- 3
Once you have your own domain, verify it under Domains so emails go out from your address
The key is the value for RESEND_API_KEY. Without a verified domain you can only send from Resend's test address.
Packeta (Zásilkovna)
Shipping and collection points
- 1
Go to client.packeta.com and create an account
- 2
In the client area find your API password and API key
- 3
The key is needed twice, once for the server and once for picking a collection point in the cart
These are the values for PACKETA_API_KEY, PACKETA_API_PASSWORD and NEXT_PUBLIC_PACKETA_API_KEY.
Vercel
The hosting the shop runs on
- 1
Go to vercel.com
- 2
Click "Sign Up", ideally with GitHub so deployments run on their own later
- 3
Confirm your email if Vercel asks for it
Before you move on you should have:
- ✓ The Neon connection string
- ✓ The Stripe publishable key and secret key
- ✓ The Resend API key
- ✓ The Packeta API key and password
- ✓ A Vercel account
Preparing the project
Unzip the project, open a terminal inside the folder, type claude and paste this prompt. The rest is Claude Code's job.
Copy this prompt into Claude Code
Get this project ready to run on my computer for the first time. Work step by step and tell me what happened after each one: 1. Create a .env file based on .env.example. 2. Ask me one at a time for the DATABASE_URL from Neon, for both Stripe keys, for RESEND_API_KEY and for the Packeta keys. Do not invent anything, wait for my answer. 3. Generate strong random values for ADMIN_TOKEN and ADMIN_PASSWORD and show them to me so I can save them. 4. Set NEXT_PUBLIC_BASE_URL and NEXT_PUBLIC_URL to http://localhost:3000 for now. 5. Run npm install, then npx prisma generate and npx prisma db push so the tables are created in the database. 6. Run npm run dev and tell me the address where I will see the shop and the address where I sign in to the admin. If anything fails, fix it and explain in one sentence what it was.
Replace anything in square brackets with your own details.
What Claude will do
- •Creates the .env file with your keys. It stays on your computer and never reaches a code backup.
- •Generates a strong admin password and token so nothing stays at a default value.
- •Installs the dependencies and creates every table the shop needs in your empty database.
- •Starts the shop at http://localhost:3000 and leaves it running.
What it will ask you for
- •The keys you saved in chapter 5.
- •Your approval before it overwrites a file that already exists.
- •That you write down the admin password. You sign in with it at /admin/login.
Manual step by step referenceOpen this if you would rather do it yourself, or want to know what is happening under the hood.
1. Unzip the project
Unzip the file and move the folder wherever you like, for example to your desktop.
2. Open a terminal in the folder
Windows: Open the folder, right click, "Open in Terminal"
Mac: Right click the folder, "New Terminal at Folder"
3. Start Claude Code
Type claude in the terminal and paste the prompt above.
What goes into .env
The .env.example file is the template with all the names. To get started you need these:
- •DATABASE_URL: the database connection from Neon
- •ADMIN_TOKEN and ADMIN_PASSWORD: admin access, generated by Claude
- •NEXT_PUBLIC_BASE_URL and NEXT_PUBLIC_URL: the address of the shop
- •STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, STRIPE_WEBHOOK_SECRET: payments
- •RESEND_API_KEY: sending emails
- •PACKETA_API_KEY, PACKETA_API_PASSWORD, NEXT_PUBLIC_PACKETA_API_KEY: shipping
- •PROJECT_NAME and image storage: BLOB_READ_WRITE_TOKEN or the R2 keys
- •ANTHROPIC_API_KEY and GEMINI_API_KEY: optional, for the in-shop AI assistant and the banner generator
Local vs. production
The shop runs in two shapes: one only you can see on your computer, and one your customers see online. You try changes at home first and only then send them out.
Copy this prompt into Claude Code
I want to work safely: at home first, live second. Start the shop on my computer with npm run dev and leave it running so I see changes in the browser right away. When I tell you I am happy with a change, verify with npm run build that the shop is ready to deploy. One warning though: npm run build in this project also runs prisma db push, so before you run it always tell me which database DATABASE_URL in .env points to and wait for my confirmation.
Replace anything in square brackets with your own details.
What Claude will do
- •Starts the local version at http://localhost:3000 and leaves it running, so changes show up in seconds.
- •Verifies before deployment that the shop builds without errors.
- •Tells you which database the project is currently pointed at, so you do not touch the live one by accident.
What it will ask you for
- •Your confirmation before it runs the build, because that also touches the database structure.
- •Your eyes. Look at the change in the browser before it goes out.
Local development
On your computer
Only you can see it. For testing and edits.
- •Trying out new features
- •Design and content edits
- •Experimenting with no risk
Address:
http://localhost:3000Production
On the internet (Vercel)
Your customers see it. Live operation.
- •Real orders
- •Real payments
- •Real emails to customers
Address:
https://vas-eshop.vercel.appOne thing worth knowing
In this project npm run build first prepares the knowledge data for the AI assistant, then runs prisma generate and prisma db push, and only then builds the shop. So it also touches the structure of whichever database DATABASE_URL points to. That is why the prompt above has Claude tell you which database that is first.
Commands you will seeClaude Code runs these for you. They are here so you know what is scrolling past in the terminal.
npm installonce at the startDownloads the libraries the shop is built from.
npm run devlocal developmentStarts the shop at http://localhost:3000.
npm run buildbefore deployingChecks that the shop builds. Also syncs the database structure.
npx prisma db pushdatabaseApplies the table structure to the database.
npm run db:studiolooking at dataOpens a simple browser for the database contents.
git add . && git commit -m "message" && git pushshipping changesSends changes to GitHub, and Vercel deploys them on its own.
claudeyour assistantStarts Claude Code in the project folder.
The order that works
Going live
Now the shop gets a public address. The easiest route is through GitHub, because Vercel then deploys every later change by itself.
Copy this prompt into Claude Code
Deploy this e-shop to the internet on Vercel. First tell me in one sentence what you are about to do and wait for my yes. Then: 1. Check that the .env file, the dph/vat folder and dph/company.json are kept out of git. 2. Create a git repository and push the project to my GitHub, I will sign in to GitHub myself. 3. List the environment variables I have to add in Vercel and tell me where each one comes from: DATABASE_URL, ADMIN_TOKEN, ADMIN_PASSWORD, NEXT_PUBLIC_BASE_URL, NEXT_PUBLIC_URL, STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, STRIPE_WEBHOOK_SECRET, RESEND_API_KEY, PACKETA_API_KEY, PACKETA_API_PASSWORD, NEXT_PUBLIC_PACKETA_API_KEY, PROJECT_NAME and the image storage key. 4. Once it is deployed, give me the public address, open it and check that the shop loads and that I can sign in to the admin.
Replace anything in square brackets with your own details.
What Claude will do
- •Checks that neither your keys nor your accounting documents end up in a public code repository.
- •Prepares the project for GitHub and pushes it there.
- •Lists exactly the variables this shop needs and says where each one comes from.
- •Checks after deployment that the public address really works.
What it will ask you for
- •Signing in to GitHub and to Vercel. Both are done by you.
- •Entering the variables in Vercel. You type the keys in yourself.
- •Your approval before anything is made public for the first time.
Manual step by step referenceOpen this if you would rather do it yourself, or want to know what is happening under the hood.
Option A: through GitHub (recommended)
- 1
Tell Claude Code:
"Create a new GitHub repository and push this project there"
- 2
In Vercel click "Add New Project"
- 3
Connect your GitHub account and pick the repository
- 4
Under "Environment Variables" add every variable from
.env - 5
Click "Deploy" and wait
Option B: through the Vercel CLI
- 1
Install the Vercel CLI:
npm install -g vercel - 2
Run the deployment:
vercel - 3
Answer the questions, Enter is usually fine
- 4
After deploying, add the environment variables in Vercel
Done
vas-projekt.vercel.appPayments (Stripe)
For the shop to know a customer has paid, Stripe has to be able to tell it. That notification is called a webhook and you set it up once.
Copy this prompt into Claude Code
Help me get card payments working. Open src/app/api/stripe/webhook/route.ts and list the events this shop actually handles. Then walk me through it step by step: where in the Stripe dashboard to create the webhook, which URL to enter (my shop address plus /api/stripe/webhook at the end) and which events to tick. I will copy the signing secret starting with whsec_ myself, you tell me where it goes in .env and in Vercel and what has to happen for the change to take effect. Finally, walk me through a test order in Stripe test mode and tell me where I will see it in the admin.
Replace anything in square brackets with your own details.
What Claude will do
- •Reads the events straight out of the shop's own code, so the list always matches your version.
- •Builds the exact webhook address from your domain.
- •Tells you where the signing secret belongs and why it also has to be in Vercel.
- •Walks a test order with you from cart to invoice.
What it will ask you for
- •Signing in to the Stripe dashboard and clicking the webhook together. That part is yours.
- •The copied whsec_ signing secret.
- •The decision on when to switch from test mode to live.
Manual step by step referenceOpen this if you would rather do it yourself, or want to know what is happening under the hood.
- 1
In the Stripe dashboard: Developers → Webhooks
- 2
Click "Add endpoint"
- 3
Enter this as the endpoint URL:
https://vase-domena.cz/api/stripe/webhookReplace the domain with your real domain or your Vercel address.
- 4
Select the events the shop handles:
- • payment_intent.succeeded
- • payment_intent.payment_failed
- • payment_intent.processing
- • checkout.session.completed
- • charge.succeeded
- • charge.updated
- 5
Click "Add endpoint"
- 6
Copy the signing secret (whsec_...) and add it to .env and to Vercel as
STRIPE_WEBHOOK_SECRET
Adding your own domain
You buy the domain from a registrar yourself. After that it has to be changed in several places at once, which is exactly what Claude keeps track of.
Copy this prompt into Claude Code
I bought the domain [my-domain.com] and I want to use it instead of the .vercel.app address. Walk me through every place the domain has to change, and make the edits you can: 1. The DNS records I have to set at my registrar, show them to me from Vercel. 2. NEXT_PUBLIC_BASE_URL and NEXT_PUBLIC_URL in the .env file and in Vercel. 3. baseUrl and supportUrl in src/config/store.ts. 4. The webhook address in Stripe. 5. Verifying the domain in Resend so customer emails come from my address. Make the changes inside the project yourself, tell me what to click in the services, and at the end give me a list of what is done and what is still on me.
Replace anything in square brackets with your own details.
What Claude will do
- •Updates the shop address inside the project, meaning .env and src/config/store.ts.
- •Reminds you of the places people forget: the Stripe webhook and the verified domain in Resend.
- •Gives you a closing list of what is finished and what is still waiting on you.
What it will ask you for
- •Buying the domain and having access to DNS at the registrar.
- •Entering the DNS records Vercel lists.
- •A little patience, DNS propagation is usually minutes, occasionally hours.
Manual step by step referenceOpen this if you would rather do it yourself, or want to know what is happening under the hood.
- 1
Buy a domain from a registrar (Wedos, Forpsi, IONOS and others)
- 2
In Vercel: Settings → Domains
- 3
Add your domain
- 4
Vercel lists the DNS records to set at your registrar
- 5
Wait for DNS propagation, usually minutes, at most 24 hours
First steps after launch
The shop is running. Now let us make it yours. Start with the first prompt, the rest are on the cards below and you take them as you need them.
Identity and password first
Before you let customers in, change the admin credentials and fill in the details that appear on invoices and in emails.
Copy this prompt into Claude Code
I am taking this shop live, let us make it mine. 1. Generate new strong values for ADMIN_PASSWORD and ADMIN_TOKEN, change them in .env and in Vercel, and show them to me so I can save them. 2. Open src/config/store.ts and ask me one at a time for: the shop name and tagline, the company name, the address, the company and VAT numbers, the contact and support email, the phone number, the bank account and IBAN for invoices, the sender email and whether I am VAT registered. Fill in only what I tell you, invent nothing. 3. When that is done, tell me which of these details show up on invoices, which in emails and which in the shop footer.
Replace anything in square brackets with your own details.
What Claude will do
- •Replaces the default admin credentials with your own, both on your computer and in Vercel.
- •Fills in your company details in one place, which invoices, emails and the footer all read from.
- •Sets whether you are VAT registered, which then also applies to the accounting agent in chapter 12.
What it will ask you for
- •Your real company details, company number, VAT number and bank account.
- •That you save the new admin password. You sign in with it at /admin/login.
- •A deployment, so the new values reach the live address too.
More prompts you will want
Products and categories
I want to fill the shop with stock. Show me where categories and products are added in the admin, and create one sample product there so I can see what a finished item looks like. My products are in a spreadsheet, so also walk me through the bulk import from Excel and the columns the template expects.
Shipping and payment
The shipping and payment names and prices live in src/lib/order-options.ts. List what is there now, then set: [Packeta pickup 89, home delivery 99, cash on delivery 39, personal pickup free]. Check that this carries through correctly into the cart and the confirmation email.
Shop texts
The shop texts live in src/messages/cs.json and src/messages/en.json. Change [describe the text you want edited] for me and make sure both language versions stay equally complete.
Look and feel
I want to change the main colour of the shop to [colour]. The colours are not in a single file, they are Tailwind classes inside the components, so first find and list where the main colour is used, propose the change and show it to me on localhost. I will confirm, and only then apply it everywhere.
Customer emails
The sender address is in src/config/store.ts under email. Set it to [address], check whether the domain is verified in Resend, and show me a preview of the order confirmation so I can see the email before the first customer does.
A test order
Walk me through a whole order in Stripe test mode: from adding to the cart through to the confirmation email and the invoice. Tell me where I find the order in the admin, what to check on it and how I know the payment was matched correctly.
When you are stuck
Monthly VAT with an agent
The e-shop ships with an accounting agent for Claude Code. Once a month you type /dph and get finished XML files for the Czech VAT return, the control statement and, when needed, the EC sales list. You just upload them to mojedane.cz.
Once a month all you type is
/dph
Or in plain words: do the VAT return for July. The agent will ask which month and which folder holds the received invoices.
Before the first real run, try it dry
/dph demo
It stages a fictional month with seven sample invoices and goes through the whole flow up to finished XML. Nothing is sent anywhere.
What Claude will do
- •Takes your issued invoices and credit notes straight from your shop's database.
- •Reads the received invoices from your folder, even if they sit in subfolders or appear twice.
- •Has three independent auditors check duplicates, documents issued to someone else, EU reverse charge, credit notes and documents from the wrong month.
- •Generates the DP3, KH and SHV XML and validates it against the tax authority's schemas.
What it will ask you for
- •A folder with the received invoices for that month, however loosely dumped in.
- •Decisions on borderline documents. The agent presents and explains them, you decide.
- •Uploading the finished XML to mojedane.cz. Filing is always done by the taxpayer.
One time preparation, roughly ten minutes
- •In src/config/store.ts have isVatPayer: true and the correct vatRate. That is the source of truth for both invoices and the agent.
- •Fill in dph/company.json from the dph/company.example.json template: VAT number, registered seat, tax office codes, business activity code, signatory. The codes are on any previous return.
- •Run dph/scripts/setup.sh, which checks the tools used to read PDFs.
- •Claude does both of these with you the first time you run /dph.
How the month goesOpen this if you would rather do it yourself, or want to know what is happening under the hood.
- 1
You dump the supplier invoices for the month into one folder (PDFs, subfolders and duplicates are fine).
- 2
Issued invoices and credit notes are taken straight from the shop database.
- 3
Agents read the received invoices and three independent auditors check them: duplicates, invoices issued to someone else, EU reverse charge, credit notes, documents from the wrong month.
- 4
Anything that needs a decision is discussed with you. Nothing is decided on your behalf.
- 5
It generates the XML (DP3, KH, SHV), validates it against the tax authority's schemas, and you upload it in the order DP3, KH, SHV. If the filing portal objects to something, paste the message back to the agent and it fixes it.
Deadline
The return and the control statement are filed by the 25th of the following month. After filing, give the agent the folder with the portal receipts and it files them with that month.
Try it in the demo admin
The Accounting section of the demo admin holds a recording of a real agent run over seven sample invoices. You can replay it step by step: the decision on each invoice, the auditors' findings and the resulting XML.
Open the demoWhat is automated and what is on request
When something breaks
An error message is not the end of the world. Almost always it is enough to read the whole thing and let Claude Code fix it.
First aid: copy the whole error
Do not shorten it and do not retype it in your own words. Select the entire message in the terminal or in the browser, paste it into Claude Code and ask what happened. Claude works inside your project and under your supervision, so before it changes anything it can tell you what it wants to change and why.
One prompt for any error
Here is the error I got: [paste the full error text]. Diagnose the cause in this project and fix it; before you change anything, tell me what and why.
This prompt covers most situations. The cases below are just a shortcut for the ones people hit most often.
The four most common snags
Port 3000 is already in use
After npm run dev it says port 3000 is taken, or the shop opens on a different port number. Usually an older dev server is still running in the background.
Copy this prompt into Claude Code
When I run npm run dev it says port 3000 is already in use. Find out which process is holding that port and give me two options: stop that process, or start the dev server on a different port. Before you stop anything, tell me what the process is.
The local address of the shop is http://localhost:3000, see chapter 7.
Database error or a wrong DATABASE_URL
The shop will not start and reports a connection problem or missing tables. Most often the Neon database is asleep after a period of inactivity, or the connection string in .env is incomplete.
Copy this prompt into Claude Code
The shop reports a database error: [paste the full error text]. Read DATABASE_URL from my .env file, check whether the connection string is complete and whether the database can be reached. If it runs on Neon, tell me how to verify that the database is not asleep. Then run npx prisma db push and tell me what it printed. Do not delete or overwrite any data without my approval, and do not print any credentials.
Never paste the connection string anywhere. Claude reads it from .env itself, and .env.example lists every key the shop uses.
A variable is missing on Vercel while it works locally
Everything runs on your machine, but the deployed shop fails or parts of it do not work. Almost always one of the keys you have locally in .env is missing on Vercel.
Copy this prompt into Claude Code
The shop works locally but the deployed version on Vercel does not. It says this: [paste the full error text or describe what does not work]. Read the key names from my .env file and compare them with this list of variables from Vercel: [paste the variable names from Vercel, Settings → Environment Variables]. Tell me which ones are missing, briefly what each is for, and what I should add. Do not print any key values.
Copy only the variable names out of Vercel, never their values.
Orders stay unpaid because the webhook never arrives
The customer paid by card, but in the admin the order is still marked unpaid. That means Stripe could not reach the shop.
Copy this prompt into Claude Code
Customers are paying by card but orders stay marked unpaid in the admin. Read the file src/app/api/stripe/webhook/route.ts and tell me what URL the webhook in Stripe should point to and which events it should listen for. Then walk me through it: whether the Endpoint URL in the Stripe dashboard matches, whether STRIPE_WEBHOOK_SECRET is the same in .env and on Vercel, and how to read the webhook log in Stripe so we can see where it failed. Guide me step by step, I will do the clicking.
The webhook address is your domain plus /api/stripe/webhook, see chapter 9.
If you are still stuck
Write through the support form. Describe what you already tried and attach the whole message, so there is something to go on. I am one person, so I will get back to you as soon as I can.
E-mail supportRunning your shop
The shop is live and orders are coming in. Here is what you click through in the admin and what you hand over to a prompt.
The admin at /admin
You sign in with the password you set in chapter 11. What you get there:
Orders
A list of orders you can filter by status, by payment and search through. In the order detail you change the status, flip paid and unpaid, add a tracking number, correct the address and keep internal notes.
Invoices and credit notes
The invoice for an order is generated for you and you download it as a PDF. When you cancel a whole order or just some of its items, the shop issues a credit note for it, which you download the same way.
Refunding money
You return the money where it came from, meaning in the Stripe dashboard or by bank transfer. The shop keeps the paperwork for it, but it never sends money on its own.
Products, categories and stock
Creating and editing products including variants, sorting them into categories, and stock counts.
Support
Tickets your customers open through the support form on the shop.
The rest
Discount codes, dispatch, feeds, newsletter, accounting and shop settings. Each has its own page in the admin.
What you hand over to a prompt
Editing products and bulk import
Single products you edit by clicking in the admin. When there are many of them, the product list has an Excel import: an .xlsx file both creates and updates products, matched by product code.
Copy this prompt into Claude Code
I want to fill the shop with products and keep them up to date. Show me where products are created and edited in the admin, and explain the bulk Excel import: which columns the file must have, what is required for a new product, how variants are entered and what happens to products that are not in the file. Prepare a sample file so I can see the format.
The import matches on the product code. Empty columns do not overwrite existing data. Take a backup before a larger import, see below.
Changing the texts on the site
The texts are not hard coded, they live in the translation files in src/messages. Claude finds the one you want to rewrite and keeps both language versions in step.
Copy this prompt into Claude Code
I want to change a text on the site. Find it in src/messages and update it in both language files so they stay in step. The text I want to change currently reads: [paste the text as you see it on the site]. It should now read: [write how it should be]. Before you save, show me which file and which key you found it under.
Back up the database before you risk anything
Products, orders and invoices live in the database, not in the project folder. A copy of the code will not save them. A backup is one prompt and a short wait.
Copy this prompt into Claude Code
Make a backup of this shop's database. Read the connection details yourself from DATABASE_URL in the .env file and do not print them in the chat. Use pg_dump to save the backup into a backups folder and put today's date in the file name. If I do not have pg_dump installed, tell me how to install it. Make sure the backups folder stays out of git, and at the end tell me the path to the file and how large it is.
You never copy the connection string anywhere. Claude reads it from .env itself.
When you really want a backup
- •Before a bulk product import from Excel.
- •Before updating dependencies and before any change that touches the structure of the database.
- •Before any change you are unsure about. Restoring from a backup is always cheaper than working out what went missing.
Updating dependencies
The shop stands on libraries that keep moving. It pays to update in small steps rather than all at once, and to check after every step that the shop still builds.
Copy this prompt into Claude Code
I want to update this project's dependencies carefully. First list what is out of date and tell me where an update is likely to break something. Then update in small steps, run the build after each step, and tell me what changed and whether it passed. Before you run the build, remind me that it also touches the database and wait for my confirmation.
Take a database backup with the prompt above before you start.
The build touches the database
In this project npm run build also runs prisma db push, so it changes the structure of whichever database DATABASE_URL points to. Before you run it, check which database that is and have a backup. More on that in chapter 7.
You do not have to remember commands
Stuck?
First aid is always the same: tell Claude Code in the terminal what happened and paste the message you see. If that does not help, write to me.