{"id":391829,"date":"2026-11-05T09:28:01","date_gmt":"2026-11-05T09:28:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/madecost-material-recipe-costs-for-woocommerce\/"},"modified":"2026-11-05T09:27:39","modified_gmt":"2026-11-05T09:27:39","slug":"madecost","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/madecost\/","author":23368354,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.4","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"MadeCost - Material & Recipe Costs for WooCommerce","header_author":"Thomas Delfini","header_description":"Work out what each product really costs to make (materials, waste, labour, packaging) and write it into WooCommerce's own Cost of Goods Sold field, so your margins are right.","assets_banners_color":"9eb9b2","last_updated":"2026-11-05 09:27:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/madecost\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":113,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"sammomix","date":"2026-11-05 09:27:39","revision":3785599}},"upgrade_notice":{"0.1.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3785599,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3785599,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3785599,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3785599,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3785599,"resolution":"1","location":"assets","locale":"","width":1280,"height":760},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3785599,"resolution":"2","location":"assets","locale":"","width":1280,"height":1060},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3785599,"resolution":"3","location":"assets","locale":"","width":1280,"height":700},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3785599,"resolution":"4","location":"assets","locale":"","width":1280,"height":700}},"screenshots":{"1":"The Products tab: every product with a recipe, its cost, margin and status.","2":"The recipe editor with a live cost breakdown and suggested price.","3":"The Materials tab.","4":"The Settings tab."}},"plugin_section":[],"plugin_tags":[132181,269688,236646,6342,286],"plugin_category":[45],"plugin_contributors":[290844],"plugin_business_model":[],"class_list":["post-391829","plugin","type-plugin","status-publish","hentry","plugin_tags-cost-of-goods","plugin_tags-handmade","plugin_tags-profit-margin","plugin_tags-recipe","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-sammomix","plugin_committers-sammomix"],"banners":{"banner":"https:\/\/ps.w.org\/madecost\/assets\/banner-772x250.png?rev=3785599","banner_2x":"https:\/\/ps.w.org\/madecost\/assets\/banner-1544x500.png?rev=3785599","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/madecost\/assets\/icon-128x128.png?rev=3785599","icon_2x":"https:\/\/ps.w.org\/madecost\/assets\/icon-256x256.png?rev=3785599","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/madecost\/assets\/screenshot-1.png?rev=3785599","caption":"The Products tab: every product with a recipe, its cost, margin and status."},{"src":"https:\/\/ps.w.org\/madecost\/assets\/screenshot-2.png?rev=3785599","caption":"The recipe editor with a live cost breakdown and suggested price."},{"src":"https:\/\/ps.w.org\/madecost\/assets\/screenshot-3.png?rev=3785599","caption":"The Materials tab."},{"src":"https:\/\/ps.w.org\/madecost\/assets\/screenshot-4.png?rev=3785599","caption":"The Settings tab."}],"raw_content":"<!--section=description-->\n<p>If you make what you sell (candles, soap, jewellery, ceramics, leather goods, baked goods, small textile runs), the margin WooCommerce shows is only as good as the cost you typed in. That cost usually lives in a spreadsheet that nobody updates when the wax gets more expensive.<\/p>\n\n<p>MadeCost keeps that spreadsheet inside WordPress and connects it to the <strong>Cost of Goods Sold<\/strong> field that comes with WooCommerce 10.3 and later.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>Enter your <strong>materials<\/strong> once, with the price of one pack (for example 15.00 for 1000 g of wax) and an optional waste percentage.<\/li>\n<li>For each product, build a <strong>recipe<\/strong>: how much of each material it uses, the minutes of labour, the packaging, any other cost per item.<\/li>\n<li>MadeCost shows the cost per item, your margin against the current price, and a suggested selling price that keeps your target margin.<\/li>\n<li>One click <strong>writes the cost into WooCommerce<\/strong>. Orders, WooCommerce reports and anything else that reads the Cost of Goods Sold field use it from then on.<\/li>\n<\/ol>\n\n<p><strong>What you get<\/strong><\/p>\n\n<ul>\n<li>Unlimited materials and recipes, free.<\/li>\n<li>Simple and variable products: each variation gets its cost.<\/li>\n<li>Waste is counted per material (10 % waste on wax means you buy 10 % more than the recipe says).<\/li>\n<li>Your hourly rate turns labour minutes into money.<\/li>\n<li>A status for every product: up to date, to write, or incomplete (a material is missing or the cost is 0).<\/li>\n<li>A suggested price with your target margin, rounded up to a whole number or to a price ending in .99.<\/li>\n<li>Nothing is sent anywhere. All data stays in your WordPress database.<\/li>\n<\/ul>\n\n<p><strong>Good to know<\/strong><\/p>\n\n<ul>\n<li>MadeCost needs WooCommerce 10.3 or later, and the <strong>Cost of Goods Sold<\/strong> feature turned on (WooCommerce &gt; Settings &gt; Advanced &gt; Features). MadeCost tells you when it is off and links to the setting.<\/li>\n<li>Costs are written to the Cost of Goods Sold field of the product, or of each variation. The \"additive\" option of variations is switched off on the variations MadeCost writes, so the cost WooCommerce uses is exactly the cost MadeCost computed.<\/li>\n<li>Existing orders are never modified.<\/li>\n<li>Amounts are handled in hundredths of the store currency.<\/li>\n<\/ul>\n\n<h3>Source code<\/h3>\n\n<p>The admin page is written in TypeScript and React and built with <code>@wordpress\/scripts<\/code>. The source is in the <code>src\/<\/code> folder of the plugin. To rebuild the files in <code>build\/<\/code>, run <code>npm install<\/code> and then <code>npm run build<\/code> in the plugin folder.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce 10.3 or later.<\/li>\n<li>Install and activate MadeCost.<\/li>\n<li>In WooCommerce &gt; Settings &gt; Advanced &gt; Features, turn on <strong>Cost of Goods Sold<\/strong>.<\/li>\n<li>Open <strong>WooCommerce &gt; MadeCost<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20turn%20on%20a%20woocommerce%20setting%3F\"><h3>Do I need to turn on a WooCommerce setting?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce ships the Cost of Goods Sold field but keeps it off by default. Turn it on in WooCommerce &gt; Settings &gt; Advanced &gt; Features. Until then you can build recipes and see costs, but nothing is written.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20orders%20i%20already%20have%3F\"><h3>What happens to orders I already have?<\/h3><\/dt>\n<dd><p>Nothing. MadeCost only changes the cost of products, and WooCommerce records the cost on an order when the order is created. New orders use the new cost.<\/p><\/dd>\n<dt id=\"how%20are%20variable%20products%20handled%3F\"><h3>How are variable products handled?<\/h3><\/dt>\n<dd><p>The recipe belongs to the variable product. Every variation receives its own cost value (all variations share the recipe cost, since each variation has its own price and margin shown in the editor). MadeCost turns off the \"additive\" flag on the variations it writes.<\/p><\/dd>\n<dt id=\"does%20madecost%20change%20my%20prices%3F\"><h3>Does MadeCost change my prices?<\/h3><\/dt>\n<dd><p>No. It only suggests a price. You decide whether to use it.<\/p><\/dd>\n<dt id=\"is%20my%20data%20sent%20to%20a%20server%3F\"><h3>Is my data sent to a server?<\/h3><\/dt>\n<dd><p>No. MadeCost makes no external request. Materials are stored in one WordPress option and each recipe is stored as hidden meta on its product.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens when I delete the plugin?<\/h3><\/dt>\n<dd><p>By default your materials and recipes are kept, so nothing is lost by mistake. Turn on \"Delete all MadeCost data when the plugin is deleted\" in the Settings tab if you want everything removed. The costs already written to WooCommerce are never touched.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20high-performance%20order%20storage%20and%20the%20block%20checkout%3F\"><h3>Is it compatible with high-performance order storage and the block checkout?<\/h3><\/dt>\n<dd><p>Yes. MadeCost declares compatibility with both and never reads or changes orders. It uses the standard WooCommerce product API to write costs.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Work out what each product really costs to make (materials, waste, labour, packaging) and write it into WooCommerce's own Cost of Goods Sold field.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/391829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=391829"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sammomix"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=391829"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=391829"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=391829"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=391829"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=391829"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=391829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}