How to set up and manage loyalty programs on petakopi.my
This guide covers everything you need to know about setting up and running loyalty programs for your coffee shop.
New here? Start with the Quick Start guide to get your first program running in minutes.
Setting up a loyalty program
Create and manage loyalty programs from the Manage menu in the petakopi.my mobile app. (See the Quick Start guide for the end-to-end walkthrough.)
1
Go to Manage
Open the petakopi.my app, tap Home, then “Manage”, pick your shop from the list, and tap Loyalty.
2
Create a new program
Tap “New Program” and fill in the details:
Program name — e.g. “Buy 10 Get 1 Free”
Stamps required — How many stamps to complete the card (1–10)
Expiration days — How long cards stay valid (default: 365 days)
Terms & conditions — What the reward is and any rules
Active — Toggle on to allow customers to enroll
3
Skip or customize card appearance
The form includes a Card Appearance section where you can customize wallet card colors. The defaults work well — you can always come back to customize later. See Customizing card appearance below.
4
Create the program
Scroll down and tap “Create Program”. Your program is now live and customers can start adding loyalty cards from your shop’s page.
You can run multiple programs at the same time — for example, a coffee card and a pastry card with different stamp counts and rewards.
Editing a loyalty program
You can edit your loyalty program from the Manage panel. However, once customers have active cards, some fields are locked to protect their progress:
Field
Editable?
Notes
Program name
Yes
Updates Apple Wallet passes immediately; Google Wallet updates on next stamp or new card
Terms & conditions
Yes
Updates appear on wallet passes after the next stamp
Expiration days
Yes
Only affects newly issued cards, not existing ones
Active status
Yes
Only controls whether new customers can enroll
Stamps required
No
Changing this would unfairly affect customers’ progress toward their reward
To change stamps required, you’ll need to wait until all active cards have been redeemed or expired, or create a new program.
Customizing card appearance
You can customize how your loyalty card looks in Apple Wallet and Google Wallet. This is available when creating a new program or editing an existing one.Customize the following colors with a live wallet preview:
Background color — Main card background color
Text color (Apple only) — Text color on the card
Stamp area color (Apple only) — Color behind the stamp grid
Google Wallet text color is automatically calculated for contrast.
Card appearance with live Apple and Google Wallet previews
Apple Wallet cards update immediately after saving. Google Wallet cards reflect changes on the next stamp or when a new card is created.
Scanning stamps
Scan customer loyalty cards using the petakopi.my mobile app.
1
Open the scanner
Open the petakopi.my app and tap the Scan card on the Home tab.
2
Scan the customer's QR code
Point your camera at the customer’s loyalty card QR code. The customer can show their QR code from:
The petakopi.my website or app on their phone
Apple Wallet or Google Wallet
3
Award stamps
Select the number of stamps to award and tap “Add Stamps”. You’ll see a confirmation once the stamps have been added.
Select stamps to award and confirm
4
Redeem completed cards
When all stamps are collected, the card will show a “Redeem Reward” button. Tap it to redeem the customer’s reward.
Redeem the reward when the card is full
No QR code to scan? Redeem by phone number on the POS instead. See Redeem a reward at the POS.After redeeming, the customer needs to visit your shop’s page on petakopi.my and tap “Get Loyalty Card” again to get a new card and start collecting stamps.
Managing cards
From the Manage panel, you can:
View enrolled customers — See who has added your loyalty card
Activity log — Track all stamp and redemption activity
View individual cards — See the stamp count for each customer
Loyalty program dashboard
Messaging loyalty card holders
You can send messages to customers who hold your loyalty cards. This is useful for announcing promotions, new menu items, or special events.Messages are sent as notifications to your loyalty card holders through the petakopi.my app and website.
Send a message to loyalty card holders
Counter QR poster
Display a QR code at your counter so customers can scan to get the loyalty card. Download your shop’s print-ready A4 poster on the petakopi.my website (not the app): sign in at petakopi.my/manage and go to Manage → Loyalty Programs. See the QR poster page for the steps.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"petakopi.my","colors":{"primary":"#7A4F38","light":"#B07453","dark":"#543626"},"logo":{"light":"https://mintcdn.com/petakopimy/azWBOEQjLI6RrrMW/logo/light.png?fit=max\u0026auto=format\u0026n=azWBOEQjLI6RrrMW\u0026q=85\u0026s=0ec5c50a8b92930452ce71095748d9e7","dark":"https://mintcdn.com/petakopimy/azWBOEQjLI6RrrMW/logo/dark.png?fit=max\u0026auto=format\u0026n=azWBOEQjLI6RrrMW\u0026q=85\u0026s=f14609928de13c30ba6c3b10989834e9"},"favicon":"https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/favicon.svg?fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=3cfa023686c7bb2c90126016d6ac850a","navbar":{"links":[{"href":"https://petakopi.my","label":"petakopi.my"}]},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"petakopimy","hasAudioNarration":false,"actualSubdomain":"petakopimy","customDomains":["docs.petakopi.my"],"gitSource":{"type":"github","owner":"petakopi","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6af44804c3ee4c182d910803","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"For Owners","count":42},{"language":"default","tag":"Insights","count":15},{"language":"default","tag":"Performance","count":12},{"language":"default","tag":"Loyalty Card","count":10},{"language":"default","tag":"Shop","count":9},{"language":"default","tag":"AI assistant","count":4},{"language":"default","tag":"Guides","count":4},{"language":"default","tag":"Getting Started","count":4},{"language":"default","tag":"Setup","count":4},{"language":"default","tag":"Reference","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"loyalty-card/for-owners","slug":"/loyalty-card/for-owners","pageMetadata":{"title":"Running a Program","description":"How to set up and manage loyalty programs on petakopi.my","href":"/loyalty-card/for-owners"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How to set up and manage loyalty programs on petakopi.my\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Table}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`This guide covers everything you need to know about setting up and running loyalty programs for your coffee shop.`}),`\n`,_jsxs(Info,{children:[`New here? Start with the `,_jsx(_components.a,{href:`/loyalty-card/quick-start`,children:`Quick Start guide`}),` to get your first program running in minutes.`]}),`\n`,_jsx(Heading,{level:`2`,id:`setting-up-a-loyalty-program`,children:`Setting up a loyalty program`}),`\n`,_jsxs(_components.p,{children:[`Create and manage loyalty programs from the `,_jsx(_components.strong,{children:`Manage`}),` menu in the petakopi.my mobile app. (See the `,_jsx(_components.a,{href:`/loyalty-card/quick-start`,children:`Quick Start guide`}),` for the end-to-end walkthrough.)`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Go to Manage`,children:_jsxs(_components.p,{children:[`Open the petakopi.my app, tap `,_jsx(_components.strong,{children:`Home`}),`, then `,_jsx(_components.strong,{children:`“Manage”`}),`, pick your shop from the list, and tap `,_jsx(_components.strong,{children:`Loyalty`}),`.`]})}),_jsxs(Step,{title:`Create a new program`,children:[_jsxs(_components.p,{children:[`Tap `,_jsx(_components.strong,{children:`“New Program”`}),` and fill in the details:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Program name`}),` — e.g. “Buy 10 Get 1 Free”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Stamps required`}),` — How many stamps to complete the card (1–10)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Expiration days`}),` — How long cards stay valid (default: 365 days)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Terms \u0026 conditions`}),` — What the reward is and any rules`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Active`}),` — Toggle on to allow customers to enroll`]}),`\n`]})]}),_jsx(Step,{title:`Skip or customize card appearance`,children:_jsxs(_components.p,{children:[`The form includes a `,_jsx(_components.strong,{children:`Card Appearance`}),` section where you can customize wallet card colors. The defaults work well — you can always come back to customize later. See `,_jsx(_components.a,{href:`#customizing-card-appearance`,children:`Customizing card appearance`}),` below.`]})}),_jsx(Step,{title:`Create the program`,children:_jsxs(_components.p,{children:[`Scroll down and tap `,_jsx(_components.strong,{children:`“Create Program”`}),`. Your program is now live and customers can start adding loyalty cards from your shop’s page.`]})})]}),`\n`,_jsxs(_components.p,{children:[`You can run `,_jsx(_components.strong,{children:`multiple programs at the same time`}),` — for example, a coffee card and a pastry card with different stamp counts and rewards.`]}),`\n`,_jsx(Heading,{level:`2`,id:`editing-a-loyalty-program`,children:`Editing a loyalty program`}),`\n`,_jsx(_components.p,{children:`You can edit your loyalty program from the Manage panel. However, once customers have active cards, some fields are locked to protect their progress:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Editable?`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Program name`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Updates Apple Wallet passes immediately; Google Wallet updates on next stamp or new card`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Terms \u0026 conditions`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Updates appear on wallet passes after the next stamp`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Expiration days`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Only affects newly issued cards, not existing ones`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Active status`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Only controls whether new customers can enroll`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Stamps required`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Changing this would unfairly affect customers’ progress toward their reward`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`To change `,_jsx(_components.strong,{children:`stamps required`}),`, you’ll need to wait until all active cards have been redeemed or expired, or create a new program.`]}),`\n`,_jsx(Heading,{level:`2`,id:`customizing-card-appearance`,children:`Customizing card appearance`}),`\n`,_jsx(_components.p,{children:`You can customize how your loyalty card looks in Apple Wallet and Google Wallet. This is available when creating a new program or editing an existing one.`}),`\n`,_jsx(_components.p,{children:`Customize the following colors with a live wallet preview:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Background color`}),` — Main card background color`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Text color`}),` (Apple only) — Text color on the card`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Stamp area color`}),` (Apple only) — Color behind the stamp grid`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Google Wallet text color is automatically calculated for contrast.`}),`\n`,_jsx(Frame,{caption:`Card appearance with live Apple and Google Wallet previews`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-card-appearance.png?fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=395ebf157fc861cca5f21d7f6ce3af6f`,alt:`Card appearance customization with color pickers and wallet previews`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1440`,height:`1440`,\"data-path\":`images/loyalty-card/for-owners-card-appearance.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-card-appearance.png?w=280\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=00e0f703cc7d0c3747a9dcfa822d4661 280w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-card-appearance.png?w=560\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=b9bc5e5c3ddca4c53907e31668a1dcd0 560w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-card-appearance.png?w=840\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=1828eeb42a762cbda01016e03ce2a063 840w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-card-appearance.png?w=1100\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=7e1a3a0dbe2c39cd31762e2fd9aa7732 1100w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-card-appearance.png?w=1650\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=fe5ba4fa83ca72492b7d182b3d2f08a8 1650w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-card-appearance.png?w=2500\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=db1d0d9ec095324abb0fd0a408407b1c 2500w`})}),`\n`,_jsx(Note,{children:`Apple Wallet cards update immediately after saving. Google Wallet cards reflect changes on the next stamp or when a new card is created.`}),`\n`,_jsx(Heading,{level:`2`,id:`scanning-stamps`,children:`Scanning stamps`}),`\n`,_jsx(_components.p,{children:`Scan customer loyalty cards using the petakopi.my mobile app.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the scanner`,children:_jsxs(_components.p,{children:[`Open the petakopi.my app and tap the `,_jsx(_components.strong,{children:`Scan`}),` card on the Home tab.`]})}),_jsxs(Step,{title:`Scan the customer's QR code`,children:[_jsx(_components.p,{children:`Point your camera at the customer’s loyalty card QR code. The customer can show their QR code from:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The petakopi.my website or app on their phone`}),`\n`,_jsx(_components.li,{children:`Apple Wallet or Google Wallet`}),`\n`]})]}),_jsxs(Step,{title:`Award stamps`,children:[_jsxs(_components.p,{children:[`Select the number of stamps to award and tap `,_jsx(_components.strong,{children:`“Add Stamps”`}),`. You’ll see a confirmation once the stamps have been added.`]}),_jsx(Frame,{caption:`Select stamps to award and confirm`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-add-stamps.png?fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=ce13ed6a360e70f23e18475c1b1af4ba`,alt:`Loyalty card details with stamp selector and Stamps Added confirmation`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1440`,height:`1440`,\"data-path\":`images/loyalty-card/quick-start-add-stamps.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-add-stamps.png?w=280\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=4aee06a179d93562f629ff21fa05da48 280w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-add-stamps.png?w=560\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=b0c76886cd219d73befe51f788d6ec58 560w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-add-stamps.png?w=840\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=8fb3c1c2af9dc49a00014b90553c2c66 840w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-add-stamps.png?w=1100\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=5a2fa38396e8b64c2cd6d317a961c1f0 1100w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-add-stamps.png?w=1650\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=8b733630d23bc07561dfcab81ad0a4c7 1650w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-add-stamps.png?w=2500\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=0d3d59e7626635100e31dfb98b4bc818 2500w`})})]}),_jsxs(Step,{title:`Redeem completed cards`,children:[_jsxs(_components.p,{children:[`When all stamps are collected, the card will show a `,_jsx(_components.strong,{children:`“Redeem Reward”`}),` button. Tap it to redeem the customer’s reward.`]}),_jsx(Frame,{caption:`Redeem the reward when the card is full`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-redeem.png?fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=37513b94b5475fa5bed634ac8669e692`,alt:`Card ready to redeem and reward redeemed confirmation`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1440`,height:`1440`,\"data-path\":`images/loyalty-card/quick-start-redeem.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-redeem.png?w=280\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=62d4b66c79c918c3b227b4f2cfdba613 280w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-redeem.png?w=560\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=6bb0f8d5fe1aea0066ce99b29f3036d8 560w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-redeem.png?w=840\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=c7a5a082148c8b31433f37d72464efc7 840w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-redeem.png?w=1100\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=d7660a736117388748146c727a1cbf43 1100w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-redeem.png?w=1650\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=c8096973ffea0ec4acfebf71ad23b186 1650w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/quick-start-redeem.png?w=2500\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=02844807345ea168b621c9eafdbf541c 2500w`})}),_jsxs(_components.p,{children:[`No QR code to scan? Redeem by phone number on the POS instead. See `,_jsx(_components.a,{href:`/loyalty-card/redeem-at-pos`,children:`Redeem a reward at the POS`}),`.`]}),_jsxs(_components.p,{children:[`After redeeming, the customer needs to visit your shop’s page on petakopi.my and tap `,_jsx(_components.strong,{children:`“Get Loyalty Card”`}),` again to get a new card and start collecting stamps.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`managing-cards`,children:`Managing cards`}),`\n`,_jsx(_components.p,{children:`From the Manage panel, you can:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`View enrolled customers`}),` — See who has added your loyalty card`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Activity log`}),` — Track all stamp and redemption activity`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`View individual cards`}),` — See the stamp count for each customer`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Loyalty program dashboard`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-manage-cards.png?fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=442a8cb499ca67842f9c53f44e89fc7e`,alt:`Loyalty program dashboard showing enrolled customers and activity`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1440`,height:`1440`,\"data-path\":`images/loyalty-card/for-owners-manage-cards.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-manage-cards.png?w=280\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=9480823c28bd30caefb64db4dfafad86 280w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-manage-cards.png?w=560\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=f408a8ae9b99289cab7d73113f0ac13f 560w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-manage-cards.png?w=840\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=2b5400d85b25e9f50d078fdf88c31960 840w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-manage-cards.png?w=1100\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=7f159968466563e82508b4177d1c7ff2 1100w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-manage-cards.png?w=1650\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=b23394620c7b041ffc3c800783b08200 1650w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-manage-cards.png?w=2500\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=50054178637eed58361aaf076496901e 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`messaging-loyalty-card-holders`,children:`Messaging loyalty card holders`}),`\n`,_jsx(_components.p,{children:`You can send messages to customers who hold your loyalty cards. This is useful for announcing promotions, new menu items, or special events.`}),`\n`,_jsx(_components.p,{children:`Messages are sent as notifications to your loyalty card holders through the petakopi.my app and website.`}),`\n`,_jsx(Frame,{caption:`Send a message to loyalty card holders`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-messaging.png?fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=f21191098283f9f55b371431f1f1ad72`,alt:`Messaging interface for loyalty card holders`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1440`,height:`1440`,\"data-path\":`images/loyalty-card/for-owners-messaging.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-messaging.png?w=280\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=b12d4cc61909d060e0f940bf7ee80034 280w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-messaging.png?w=560\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=ae3a0b45170df05dcc25abe70ffeb94b 560w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-messaging.png?w=840\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=2890eb76a4866b02fdf2099dc2cde10f 840w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-messaging.png?w=1100\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=a27775d7367157b6849640825942f8dc 1100w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-messaging.png?w=1650\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=63c3ff353a056145fcccf66415a21346 1650w, https://mintcdn.com/petakopimy/k4j2cdHaZSNV4Vtr/images/loyalty-card/for-owners-messaging.png?w=2500\u0026fit=max\u0026auto=format\u0026n=k4j2cdHaZSNV4Vtr\u0026q=85\u0026s=dca66850b40d1c87782f105949f1772a 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`counter-qr-poster`,children:`Counter QR poster`}),`\n`,_jsxs(_components.p,{children:[`Display a QR code at your counter so customers can scan to get the loyalty card. Download your shop’s print-ready A4 poster on the petakopi.my website (not the app): sign in at `,_jsx(_components.a,{href:`https://petakopi.my/manage`,children:`petakopi.my/manage`}),` and go to `,_jsx(_components.strong,{children:`Manage → Loyalty Programs`}),`. See the `,_jsx(_components.a,{href:`/loyalty-card/qr-template`,children:`QR poster page`}),` for the steps.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Running a Program","description":"How to set up and manage loyalty programs on petakopi.my","href":"/loyalty-card/for-owners"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Setting up a loyalty program","slug":"setting-up-a-loyalty-program","depth":2,"children":[]},{"title":"Editing a loyalty program","slug":"editing-a-loyalty-program","depth":2,"children":[]},{"title":"Customizing card appearance","slug":"customizing-card-appearance","depth":2,"children":[]},{"title":"Scanning stamps","slug":"scanning-stamps","depth":2,"children":[]},{"title":"Managing cards","slug":"managing-cards","depth":2,"children":[]},{"title":"Messaging loyalty card holders","slug":"messaging-loyalty-card-holders","depth":2,"children":[]},{"title":"Counter QR poster","slug":"counter-qr-poster","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"petakopimy","siteName":"petakopi.my","title":"Running a Program - petakopi.my","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T10:48:41.809Z","originalFileLocation":"loyalty-card/for-owners.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"How to set up and manage loyalty programs on petakopi.my\">\u003cmeta data-mint-head name=\"application-name\" content=\"petakopi.my\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Running a Program - petakopi.my\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to set up and manage loyalty programs on petakopi.my\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"petakopi.my\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.petakopi.my/loyalty-card/for-owners\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://petakopimy.mintlify.site/_mintlify/api/og/v2?division=Loyalty+Card\u0026amp;title=Running+a+Program\u0026amp;description=How+to+set+up+and+manage+loyalty+programs+on+petakopi.my\u0026amp;theme=a7c4e537db4f36ee3782b886\u0026amp;signature=ae9130946bad41e7f18b28ca7f7d9ffbe8e06fc9a11c810482fbce826c385c25\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Running a Program - petakopi.my\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to set up and manage loyalty programs on petakopi.my\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://petakopimy.mintlify.site/_mintlify/api/og/v2?division=Loyalty+Card\u0026amp;title=Running+a+Program\u0026amp;description=How+to+set+up+and+manage+loyalty+programs+on+petakopi.my\u0026amp;theme=a7c4e537db4f36ee3782b886\u0026amp;signature=ae9130946bad41e7f18b28ca7f7d9ffbe8e06fc9a11c810482fbce826c385c25\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/petakopimy/dyws7H7IW_osCAn0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"petakopi.my\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7A4F38\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.petakopi.my/loyalty-card/for-owners\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/loyalty-card/for-owners.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.petakopi.my/#organization\",\"name\":\"petakopi.my\",\"url\":\"https://docs.petakopi.my\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/petakopimy/azWBOEQjLI6RrrMW/logo/light.png?fit=max\u0026auto=format\u0026n=azWBOEQjLI6RrrMW\u0026q=85\u0026s=0ec5c50a8b92930452ce71095748d9e7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.petakopi.my#website\",\"name\":\"petakopi.my\",\"url\":\"https://docs.petakopi.my\",\"publisher\":{\"@id\":\"https://docs.petakopi.my/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.petakopi.my/loyalty-card/for-owners#webpage\",\"url\":\"https://docs.petakopi.my/loyalty-card/for-owners\",\"name\":\"Running a Program\",\"description\":\"How to set up and manage loyalty programs on petakopi.my\",\"dateModified\":\"2026-11-11T10:48:41.809Z\",\"isPartOf\":{\"@id\":\"https://docs.petakopi.my#website\"},\"breadcrumb\":{\"@id\":\"https://docs.petakopi.my/loyalty-card/for-owners#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.petakopi.my/loyalty-card/for-owners#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Loyalty Card\",\"item\":\"https://docs.petakopi.my/loyalty-card/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Running a Program\",\"item\":\"https://docs.petakopi.my/loyalty-card/for-owners\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.petakopi.my/loyalty-card/for-owners#article\",\"headline\":\"Running a Program\",\"name\":\"Running a Program\",\"description\":\"How to set up and manage loyalty programs on petakopi.my\",\"url\":\"https://docs.petakopi.my/loyalty-card/for-owners\",\"mainEntityOfPage\":{\"@id\":\"https://docs.petakopi.my/loyalty-card/for-owners#webpage\"},\"dateModified\":\"2026-11-11T10:48:41.809Z\",\"publisher\":{\"@id\":\"https://docs.petakopi.my/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.petakopi.my#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"petakopi.my\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"petakopi.my\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/loyalty-card/for-owners.md","siteName":"petakopi.my","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"For Owners","groups":[{"group":"Untung ke rugi?","expanded":false,"pages":[{"title":"1. Ten minutes: your break-even","sidebarTitle":"Ten minutes","href":"/untung-ke-rugi/ten-minutes"},{"title":"2. First week: your top 5 and your daily total","sidebarTitle":"First week","href":"/untung-ke-rugi/first-week"},{"title":"3. End of month: make it real","sidebarTitle":"End of month","href":"/untung-ke-rugi/end-of-month"}]},{"group":"Shop","pages":[{"title":"Manage Your Shop","href":"/manage-shop/overview"},{"group":"Setup","expanded":false,"pages":[{"title":"Shop Information","href":"/manage-shop/shop-information"},{"title":"Location","href":"/manage-shop/location"},{"title":"Sync from Google","href":"/manage-shop/sync-from-google"},{"title":"Customer Feedback","href":"/manage-shop/customer-feedback"}]},{"group":"Online Store","expanded":false,"pages":[{"title":"Online Store","href":"/manage-shop/online-store"},{"title":"Vouchers","href":"/manage-shop/vouchers"}]},{"group":"Point of Sale","expanded":false,"pages":[{"title":"Customise your receipt","href":"/manage-shop/receipt"},{"title":"Prep stations","href":"/manage-shop/prep-stations"}]}]},{"group":"Insights","pages":[{"group":"Performance","expanded":false,"pages":[{"title":"Performance","sidebarTitle":"Overview","href":"/manage-shop/performance/overview"},{"title":"1. Create your menu","href":"/manage-shop/performance/menu"},{"title":"2. Assign ingredient costs","href":"/manage-shop/performance/costing"},{"title":"Expenses","href":"/manage-shop/performance/expenses"},{"title":"4. Record sales events","href":"/manage-shop/performance/sales"},{"title":"Waste","href":"/manage-shop/performance/waste"},{"title":"Bought vs Used","href":"/manage-shop/performance/bought-vs-used"},{"title":"Price your menu","href":"/manage-shop/performance/menu-pricing"},{"title":"5. Review your monthly answer","href":"/manage-shop/performance/monthly-answer"},{"title":"6. Set up email reports","href":"/manage-shop/performance/email-reports"},{"title":"Resolve missing information","sidebarTitle":"Troubleshooting","href":"/manage-shop/performance/missing-information"},{"title":"Older expenses","href":"/manage-shop/performance/legacy-expenses"}]},{"group":"Costs \u0026 Pricing","expanded":false,"pages":[{"title":"Costs \u0026 Pricing","href":"/manage-shop/costs-and-pricing/overview"},{"title":"Materials","href":"/manage-shop/costs-and-pricing/items"},{"title":"Recipes","href":"/manage-shop/costs-and-pricing/recipes"}]}]},{"group":"AI assistant","expanded":false,"pages":[{"title":"Ask AI about your shop","href":"/ai-assistant/overview"},{"title":"Connect Claude","href":"/ai-assistant/claude"},{"title":"Connect ChatGPT","href":"/ai-assistant/chatgpt"},{"title":"Set up by an AI agent","href":"/ai-assistant/agent-setup"}]},{"group":"Loyalty Card","pages":[{"title":"Loyalty Card Overview","href":"/loyalty-card/overview"},{"group":"Quick start","expanded":false,"pages":[{"title":"Quick Start (EN)","href":"/loyalty-card/quick-start"},{"title":"Quick Start (BM)","description":"Mulakan program loyalty dalam beberapa minit menggunakan aplikasi petakopi.my","href":"/loyalty-card/quick-start-bm"}]},{"title":"Running a Program","href":"/loyalty-card/for-owners"},{"title":"Redeem a Reward at the POS","description":"Give a customer their free drink from a full loyalty card using just their phone number.","href":"/loyalty-card/redeem-at-pos"},{"title":"QR Poster","href":"/loyalty-card/qr-template"},{"title":"Weekly Recap Email","href":"/loyalty-card/weekly-recap"},{"group":"Reference","expanded":false,"pages":[{"title":"App vs Web","href":"/loyalty-card/app-vs-web"},{"title":"FAQ","href":"/loyalty-card/faq"},{"title":"App vs Web","href":"/app-vs-web"}]}]},{"group":"Coffee Pass","pages":[{"title":"Selling Passes","href":"/coffee-pass/for-owners"}]}]},{"tab":"For Customers","pages":[{"title":"For Customers","href":"/trip-planner"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Running a Program - petakopi.my","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DL7q6v_h.js","DynamicMarkdown-CaSwclgK.js","zoom-image-lightbox-BLUesUNd.js","lightbox-handle-r17bVUz3.js"]}