Raw materials with pack price and yield — the building blocks of every recipe
Materials are the raw materials your recipes are built from: beans, milk, cups, lids, syrups, sugar. Each material carries a pack price and a yield %, and the app computes a per-unit cost from those two numbers. The address stays under Items.
What you fill in per item
Six fields, split across two cards on the form.What it is
Field
Notes
Name
What you call it — “Whole milk”, “House blend beans”.
Category
Consumable (anything you serve — beans, milk, syrups, pastries), Packaging (cups, lids, sleeves, straws, napkins, bags), or Other. Grouping only; it doesn’t change the math.
Pack & cost — how you buy it
Field
Notes
Unit
gram (g), millilitre (ml), or piece (pc). Pick the unit you’ll measure by in recipes, then buy-size follows it.
Pack size
How much is in one pack, in that unit — 1,000 g for a 1 kg bag of beans.
Pack price (RM)
What you pay for one pack.
Yield %
The share you actually get to use. See below.
Unit cost is computed, not entered: pack price ÷ (pack size × yield %).
Example: items for a Hot Coffee Latte
Throughout the docs we use Hot Coffee Latte as the running example. It’s built from three items:
Item
Pack size
Pack price
Yield
Computed unit cost
Whole milk
1,000 ml
RM 8.00
100%
RM 0.008 / ml
Coffee beans
1,000 g
RM 80.00
90%
RM 0.0889 / g
Paper cup
1 cup
RM 0.30
100%
RM 0.30 / cup
The 90% yield on beans inflates the per-gram cost from RM 0.08 to RM 0.0889 — the app does this automatically so every recipe using those beans pays the real cost, not the on-pack cost.
Yield matters when waste is real. Coffee beans usually waste ~10% to grind and spillage. Set yield to 90% and the app applies the waste to your COGS automatically — every recipe that uses those beans pays the inflated unit cost, so a “cheap” bean with 70% yield can quietly cost more than a premium bean at 95%.
Where items show up
In every Recipe you build — each recipe line is {Item, quantity}, and the app sums the line costs to give you per-cup COGS.
If you change an item’s price (supplier raised the bean price, packaging got cheaper), every recipe that uses that item recalculates automatically — there’s no per-recipe re-save to chase.
Free materials (RM 0.00)
Some materials really cost nothing, like tap water or beans a roaster gave you. Set the pack price to 0 and tick This material is free (RM 0.00), which appears right under Pack price. Confirm it once here and every product using the material counts it as free.Until you tick it, the Materials list shows a Confirm RM 0.00 badge on that material, and any product costing that uses it shows Needs setup with a link back here. If you later change the pack size, yield or unit, tick it again.
Price history
When a material’s price has changed, its edit page shows a Price history card: each pack price with the date it started, newest first. If the pack size, yield or unit changed too, the row says so. Renaming a material doesn’t count as a change. Prices from before your first costed drink weren’t recorded, and the card says so. Recipes keep the cost that applied when each drink was sold.On the Materials list, a small history icon next to the cost per unit opens the same history without leaving the page.
What’s next
Once your common items are in, head to Recipes to combine them into sellable drinks and see per-cup COGS.
{"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":"manage-shop/costs-and-pricing/items","slug":"/manage-shop/costs-and-pricing/items","pageMetadata":{"title":"Materials","description":"Raw materials with pack price and yield — the building blocks of every recipe","href":"/manage-shop/costs-and-pricing/items"},"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: \"Raw materials with pack price and yield — the building blocks of every recipe\"\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`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Info,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Materials are the raw materials your recipes are built from: beans, milk, cups, lids, syrups, sugar. Each material carries a pack price and a yield %, and the app computes a per-unit cost from those two numbers. The address stays under Items.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-fill-in-per-item`,children:`What you fill in per item`}),`\n`,_jsx(_components.p,{children:`Six fields, split across two cards on the form.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What it is`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Name`})}),_jsx(_components.td,{children:`What you call it — “Whole milk”, “House blend beans”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Category`})}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Consumable`}),` (anything you serve — beans, milk, syrups, pastries), `,_jsx(_components.strong,{children:`Packaging`}),` (cups, lids, sleeves, straws, napkins, bags), or `,_jsx(_components.strong,{children:`Other`}),`. Grouping only; it doesn’t change the math.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Pack \u0026 cost`}),` — how you buy it`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unit`})}),_jsx(_components.td,{children:`gram (g), millilitre (ml), or piece (pc). Pick the unit you’ll measure by in recipes, then buy-size follows it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Pack size`})}),_jsx(_components.td,{children:`How much is in one pack, in that unit — 1,000 g for a 1 kg bag of beans.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Pack price (RM)`})}),_jsx(_components.td,{children:`What you pay for one pack.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yield %`})}),_jsx(_components.td,{children:`The share you actually get to use. See below.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Unit cost is computed, not entered: `,_jsx(_components.code,{children:`pack price ÷ (pack size × yield %)`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`example-items-for-a-hot-coffee-latte`,children:`Example: items for a Hot Coffee Latte`}),`\n`,_jsxs(_components.p,{children:[`Throughout the docs we use `,_jsx(_components.strong,{children:`Hot Coffee Latte`}),` as the running example. It’s built from three items:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Item`}),_jsx(_components.th,{children:`Pack size`}),_jsx(_components.th,{children:`Pack price`}),_jsx(_components.th,{children:`Yield`}),_jsx(_components.th,{children:`Computed unit cost`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Whole milk`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`1,000 ml`}),_jsx(_components.td,{children:`RM 8.00`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100%`}),_jsx(_components.td,{children:`RM 0.008 / ml`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Coffee beans`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`1,000 g`}),_jsx(_components.td,{children:`RM 80.00`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`90%`}),_jsx(_components.td,{children:`RM 0.0889 / g`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Paper cup`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`1 cup`}),_jsx(_components.td,{children:`RM 0.30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100%`}),_jsx(_components.td,{children:`RM 0.30 / cup`})]})]})]}),`\n`,_jsx(_components.p,{children:`The 90% yield on beans inflates the per-gram cost from RM 0.08 to RM 0.0889 — the app does this automatically so every recipe using those beans pays the real cost, not the on-pack cost.`}),`\n`,_jsxs(Info,{children:[_jsx(_components.strong,{children:`Yield matters when waste is real.`}),` Coffee beans usually waste ~10% to grind and spillage. Set yield to 90% and the app applies the waste to your COGS automatically — every recipe that uses those beans pays the inflated unit cost, so a “cheap” bean with 70% yield can quietly cost more than a premium bean at 95%.`]}),`\n`,_jsx(Heading,{level:`2`,id:`where-items-show-up`,children:`Where items show up`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`In every `,_jsx(_components.a,{href:`/manage-shop/costs-and-pricing/recipes`,children:`Recipe`}),` you build — each recipe line is `,_jsx(_components.code,{children:`{Item, quantity}`}),`, and the app sums the line costs to give you per-cup COGS.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`If you change an item’s price (supplier raised the bean price, packaging got cheaper), every recipe that uses that item recalculates automatically — there’s no per-recipe re-save to chase.`}),`\n`,_jsx(Heading,{level:`2`,id:`free-materials-rm-0-00`,children:`Free materials (RM 0.00)`}),`\n`,_jsxs(_components.p,{children:[`Some materials really cost nothing, like tap water or beans a roaster gave you. Set the pack price to 0 and tick `,_jsx(_components.strong,{children:`This material is free (RM 0.00)`}),`, which appears right under Pack price. Confirm it once here and every product using the material counts it as free.`]}),`\n`,_jsxs(_components.p,{children:[`Until you tick it, the Materials list shows a `,_jsx(_components.strong,{children:`Confirm RM 0.00`}),` badge on that material, and any product costing that uses it shows `,_jsx(_components.strong,{children:`Needs setup`}),` with a link back here. If you later change the pack size, yield or unit, tick it again.`]}),`\n`,_jsx(Heading,{level:`2`,id:`price-history`,children:`Price history`}),`\n`,_jsxs(_components.p,{children:[`When a material’s price has changed, its edit page shows a `,_jsx(_components.strong,{children:`Price history`}),` card: each pack price with the date it started, newest first. If the pack size, yield or unit changed too, the row says so. Renaming a material doesn’t count as a change. Prices from before your first costed drink weren’t recorded, and the card says so. Recipes keep the cost that applied when each drink was sold.`]}),`\n`,_jsx(_components.p,{children:`On the Materials list, a small history icon next to the cost per unit opens the same history without leaving the page.`}),`\n`,_jsx(Heading,{level:`2`,id:`what’s-next`,children:`What’s next`}),`\n`,_jsxs(_components.p,{children:[`Once your common items are in, head to `,_jsx(_components.a,{href:`/manage-shop/costs-and-pricing/recipes`,children:`Recipes`}),` to combine them into sellable drinks and see per-cup COGS.`]})]})}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":"Materials","description":"Raw materials with pack price and yield — the building blocks of every recipe","href":"/manage-shop/costs-and-pricing/items"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What you fill in per item","slug":"what-you-fill-in-per-item","depth":2,"children":[{"title":"Example: items for a Hot Coffee Latte","slug":"example-items-for-a-hot-coffee-latte","depth":3,"children":[]}]},{"title":"Where items show up","slug":"where-items-show-up","depth":2,"children":[]},{"title":"Free materials (RM 0.00)","slug":"free-materials-rm-0-00","depth":2,"children":[]},{"title":"Price history","slug":"price-history","depth":2,"children":[]},{"title":"What’s next","slug":"what’s-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"petakopimy","siteName":"petakopi.my","title":"Materials - petakopi.my","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T10:48:41.810Z","originalFileLocation":"manage-shop/costs-and-pricing/items.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=\"Raw materials with pack price and yield — the building blocks of every recipe\">\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=\"Materials - petakopi.my\">\u003cmeta data-mint-head property=\"og:description\" content=\"Raw materials with pack price and yield — the building blocks of every recipe\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"petakopi.my\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items\">\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=Costs+%26+Pricing\u0026amp;title=Materials\u0026amp;description=Raw+materials+with+pack+price+and+yield+%E2%80%94+the+building+blocks+of+every+recipe\u0026amp;theme=a7c4e537db4f36ee3782b886\u0026amp;signature=35ea74f9b56fc590f4d3fbdc4807adf2f839b8ad5ea5af86abdfb1d1db3bd34f\">\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=\"Materials - petakopi.my\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Raw materials with pack price and yield — the building blocks of every recipe\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://petakopimy.mintlify.site/_mintlify/api/og/v2?division=Costs+%26+Pricing\u0026amp;title=Materials\u0026amp;description=Raw+materials+with+pack+price+and+yield+%E2%80%94+the+building+blocks+of+every+recipe\u0026amp;theme=a7c4e537db4f36ee3782b886\u0026amp;signature=35ea74f9b56fc590f4d3fbdc4807adf2f839b8ad5ea5af86abdfb1d1db3bd34f\">\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/manage-shop/costs-and-pricing/items\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/manage-shop/costs-and-pricing/items.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/manage-shop/costs-and-pricing/items#webpage\",\"url\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items\",\"name\":\"Materials\",\"description\":\"Raw materials with pack price and yield — the building blocks of every recipe\",\"dateModified\":\"2026-11-11T10:48:41.810Z\",\"isPartOf\":{\"@id\":\"https://docs.petakopi.my#website\"},\"breadcrumb\":{\"@id\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Insights\",\"item\":\"https://docs.petakopi.my/manage-shop/performance/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Costs \u0026 Pricing\",\"item\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Materials\",\"item\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items#article\",\"headline\":\"Materials\",\"name\":\"Materials\",\"description\":\"Raw materials with pack price and yield — the building blocks of every recipe\",\"url\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items\",\"mainEntityOfPage\":{\"@id\":\"https://docs.petakopi.my/manage-shop/costs-and-pricing/items#webpage\"},\"dateModified\":\"2026-11-11T10:48:41.810Z\",\"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":"/manage-shop/costs-and-pricing/items.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","description":"Set up your menu items and build recipes","href":"/manage-shop/costs-and-pricing/overview"},{"title":"Materials","href":"/manage-shop/costs-and-pricing/items"},{"title":"Recipes","description":"Build recipes from ingredients and quantities per serving","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)","href":"/loyalty-card/quick-start-bm"}]},{"title":"Running a Program","href":"/loyalty-card/for-owners"},{"title":"Redeem a Reward at the POS","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":"Materials - petakopi.my","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":[],"chunks":[]}