{"id":14645,"date":"2025-01-09T08:07:40","date_gmt":"2025-01-09T08:07:40","guid":{"rendered":"https:\/\/www.hashmicro.com\/ph\/blog\/?p=14645"},"modified":"2025-12-17T07:55:36","modified_gmt":"2025-12-17T07:55:36","slug":"construction-procurement","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/","title":{"rendered":"Construction Procurement: A Guide to Purchasing &amp; Logistics"},"content":{"rendered":"<p>In construction, every decision affects timelines and budgets, making procurement a crucial factor for success. But what does it really involve, and why is it so important?<\/p>\n<p>Construction procurement covers the purchase of materials, equipment, and services, but challenges like supply chain disruptions, rising costs, and logistical inefficiencies can make it complicated.<\/p>\n<p>To keep projects on track and within budget, efficient procurement management is a must. <a href=\"https:\/\/www.hashmicro.com\/ph\/procurement-system\">HashMicro\u2019s<\/a> Procurement Management Software automates supplier selection, cost tracking, and logistics, minimizing errors and improving efficiency.<\/p>\n<p>Handa ka na bang i-level up ang iyong procurement process? Tuklasin kung paano kayang gawing mas mabilis at mas epektibo ng HashMicro ang iyong operasyon ngayon!<\/p>\n<p><div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Contents\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Content Lists<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 20px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n  padding-top: 20px;\r\n  margin-top: 0px;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 84% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\/* \t\t\tright: 5%; *\/\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Function to handle click on all <a> elements with href starting with #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all <a> elements in toc-list and list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with class 'td-post-content'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within the article\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif(window.innerWidth < 767){\r\n\t\t\ttocTitle.textContent = 'Table of Contents'; \/\/ Selalu pertahankan judul ini di mobile\r\n\t\t} else {\r\n\t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n        tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n        let headerCounter = 0; \/\/ Counter to generate unique IDs\r\n\r\n\t\t\/\/ Function to generate ID in header0, header1, etc. format\r\n\t\tfunction formatId() {\r\n\t\t\treturn `header-${headerCounter++}`; \/\/ ID format: header0, header1, etc.\r\n\t\t}\r\n\r\n\/\/ \t\tfunction formatId(text) {\r\n\/\/             return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n\/\/         }\r\n\t\r\n        \/\/ Function to create nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Object to store list of h2 and h3 with their titles\r\n        const headings = [];\r\n\r\n           \/\/ Get all h2 and h3 elements\r\n        \/\/ Get all h2 and h3 elements\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h2 element\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Hide Key Takeaways di ToC\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h3 element\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Create HTML list from headings object\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Use the newly generated ID\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Get ul element with id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Get content (child elements) from ul with id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Get ul element with id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Add content obtained from 'list_toc' to ul with id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Function to get navbar height\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Function to add scroll position offset\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Function to handle title link click\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all title links\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n    <\/script> -->\r\n<a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/mobile-bir-demo-gratis.webp\" alt=\"FreeDemo\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/p>\n<table style=\"border-collapse: collapse;background-color: #fffacd;border-radius: 25px 25px 25px 25px\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px;border: none\">\n<h3 style=\"margin-bottom: 10px\"><span style=\"background-color: #990000;color: #ffffff;padding: 5px\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400\">The construction procurement <a href=\"#a\">process<\/a> is the series of steps to acquire the materials, services, and contracts essential for a construction project.<\/li>\n<li><a href=\"#b\">The benefits of an effective construction project procurement process include<\/a> cost control and budget management, timely project completion, quality assurance, and better communication and coordination.<\/li>\n<li><a href=\"https:\/\/www.hashmicro.com\/ph\/procurement-system\">HashMicro<\/a> offers a robust and comprehensive solution designed specifically for the construction industry, facilitating streamlined procurement, improved vendor management, and precise cost control.<\/li>\n<\/ul>\n<p><span data-sheets-root=\"1\"><style>\r\n.button-cta-custom {\r\n    background-color: #8a0e19;\r\n    color: #fff !important;\r\n    -webkit-transition: all .3s ease;\r\n    transition: all .3s ease;\r\n    padding: 8px 24px;\r\n    display: inline-block;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n}\r\n.button-cta-custom:hover{\r\n\tbackground-color:#991b26\t\t\r\n}\r\n<\/style>\r\n<a class=\"button-cta-custom\" href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=cta-button\" target=\"_blank\">Click Here to Get the Free Demo!<\/a><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><strong><span id=\"a\">What Is the Construction Procurement Process?<\/span><\/strong><\/h2>\n<p>The construction procurement process is the series of steps to acquire the materials, services, and contracts essential for a construction project. This process typically begins with identifying project requirements and creating a procurement plan that outlines budgets, timelines, and specifications.<\/p>\n<p>It then moves to selecting vendors, suppliers, or contractors through bidding or negotiation, ensuring that the chosen parties meet quality, cost, and compliance standards. Once agreements are finalized, contracts are managed to ensure all deliverables are provided as specified.<\/p>\n<p>This process is crucial in construction as it helps coordinate resources, control expenses, and mitigate risks, ensuring projects are completed efficiently and on schedule. Implementing a <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/procurement-system\/\">procurement management system<\/a> can enhance efficiency by automating procurement tasks and ensuring compliance with project requirements.<\/p>\n<h2><strong><span id=\"b\">Advantages of an Effective Construction Project Procurement Process<\/span><\/strong><\/h2>\n<p>With these key advantages in mind, it&#8217;s clear that a well-executed construction procurement process is essential to the success of any construction project. Let\u2019s explore how these <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/benefits-of-construction-management-software\/\">construction procurement benefits<\/a> translate into real-world improvements throughout the project lifecycle:<\/p>\n<ul>\n<li><strong>Cost control and budget management<\/strong>: A well-structured procurement process helps to control costs and stick to the project\u2019s budget. By selecting the right suppliers and contractors through competitive bidding or careful negotiation, businesses can secure better prices, reduce unnecessary expenses, and avoid cost overruns.<\/li>\n<li><strong>Timely project completion<\/strong>: Procurement ensures that all required materials, services, and contractors are available when needed, helping to maintain the project schedule. By organizing the process correctly, delays caused by shortages or procurement errors can be minimized, leading to smoother project execution and timely delivery.<\/li>\n<li><strong>Quality assurance<\/strong>: The procurement process allows businesses to select vendors and contractors who meet specific quality standards, ensuring that the materials and services used in the construction meet both regulatory and client expectations. This focus on quality helps prevent defects, rework, and costly corrections.<\/li>\n<li><strong>Improved communication and coordination<\/strong>: An organized procurement process ensures clear communication between all parties involved in the project. When contractors, suppliers, and project managers are on the same page, it leads to better collaboration, fewer misunderstandings, and smoother workflows, all contributing to a more successful project outcome.<\/li>\n<\/ul>\n<h2><strong>Who Oversees Procurement in Construction Management?<\/strong><\/h2>\n<p>Most reputable contractors hire a procurement manager to manage the construction procurement process. This individual or team is responsible for overseeing tasks like bidding, purchasing, scheduling, budgeting, and other areas, such as employee compensation.<\/p>\n<p>The responsibilities of procurement managers can vary based on the company size and project scope, but generally, they are responsible for the following:<\/p>\n<h3>1. Develop a strategic procurement plan<\/h3>\n<p>Although most companies have a procurement plan, unexpected issues can arise during projects. Therefore, the procurement manager must stay focused on the overall goal and be prepared to adjust for changes in deliveries, scope, or schedules.<\/p>\n<p>This can be achieved by including contingency plans or additional time in the construction timeline.<\/p>\n<p>Managers should always prepare a backup plan, especially when supply disruptions occur. By planning strategically from the start, procurement managers can navigate challenges and still ensure a successful outcome.<\/p>\n<h3>2. Review contracts, requests for proposals, and bidding processes<\/h3>\n<p>Procurement managers often dedicate significant time to preparing proposal requests, managing bids, and overseeing contracts. Given the current challenges in the construction industry, such as limited labor availability and supply chain disruptions, it is crucial to review these proposals carefully.<\/p>\n<p>Additionally, new reporting metrics, such as ESG (Environmental, Social, and Governance), can complicate the project scope.<\/p>\n<h3>3. Oversee resources and timelines<\/h3>\n<p>The construction procurement manager is responsible for developing and following detailed schedules for both personnel and materials. The main goal of managing these schedules is to ensure that the workforce has everything needed to keep the project moving forward.<\/p>\n<p>Using technology for this purpose enables managers to create a comprehensive timeline that can be adjusted if there are delays in materials or the construction process. A <a class=\"decorated-link\" href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-construction-procurement-software\/\" rel=\"noopener\" data-start=\"996\" data-end=\"1033\">construction purchasing platform<\/a> can help automate these workflows and improve overall project efficiency.<\/p>\n<p>The key to a successful construction procurement process is continuous monitoring. By tracking progress in real time, managers can quickly adjust the schedule as needed and address delays, allowing them to implement solutions to stay on track.<\/p>\n<p><strong>Read more:<\/strong> <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/top-construction-inventory-management-software\/\"><strong>Top Construction Inventory Management Software<\/strong><\/a><\/p>\n<h2><strong>Types Of Procurement Methods In Construction<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone wp-image-14665 size-full\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2.webp\" alt=\"engineering procurement construction\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2.webp 1200w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement-2-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>A thorough understanding of procurement management is crucial for ensuring the success of any construction project. In the following section, we will explore the different types of procurement methods commonly used in construction, each offering unique advantages and considerations depending on the project&#8217;s requirements.<\/p>\n<h3>1. Single source procurement<\/h3>\n<p>Single source procurement is a method in which a company chooses to obtain goods, materials, or services from a specific supplier without considering alternative vendors. This approach is often used when a trusted relationship exists with the supplier or when the supplier offers unique expertise, products, or pricing that competitors cannot match.<\/p>\n<p>In construction, this method can streamline processes by reducing the time spent on vendor selection and fostering consistent communication and quality.<\/p>\n<p>However, it also carries risks, such as over-reliance on one supplier and limited options in case of delays or disruptions. For this reason, single source procurement should be carefully planned and used strategically.<\/p>\n<h3>2. Multiple source procurement<\/h3>\n<p>Multiple source procurement is a method where goods, materials, or services are acquired from several suppliers rather than relying on a single vendor.<\/p>\n<p>This approach is commonly used in construction to reduce dependency on one supplier and mitigate risks, such as delays or shortages.<\/p>\n<p>By diversifying sources, companies can ensure a steady supply of resources, negotiate better pricing and maintain flexibility in the event of disruptions.<\/p>\n<p>However, managing multiple suppliers can be complex, requiring effective coordination and communication to ensure quality and consistency across all deliveries. This method is particularly beneficial for large-scale projects with diverse needs.<\/p>\n<h3>3. Two stage tender<\/h3>\n<p>The two-stage tender is a procurement method often used in construction projects to foster collaboration between clients and contractors from an early stage. In the first stage, contractors are invited to submit their qualifications, initial proposals, and cost estimates based on preliminary project information.<\/p>\n<p>After evaluating these submissions, the client selects a contractor to work with during the second stage, where the project scope, design, and final costs are refined collaboratively.<\/p>\n<p>This method helps address potential risks early, enhances project planning, and ensures that both parties align on expectations before the construction begins. It is beneficial<br \/>\nfor complex or large-scale projects where flexibility and early input from contractors are essential for success.<\/p>\n<h3>4. Selective tendering<\/h3>\n<p>Selective tendering is a procurement method where a client invites a pre-approved list of contractors or suppliers to submit bids for a construction project. Unlike open tendering, this approach limits participation to companies that meet specific qualifications, such as expertise, financial stability, and past performance.<\/p>\n<p>By narrowing the pool of bidders, selective tendering ensures that only experienced and reliable contractors are considered, reducing the risk of delays or quality issues.<\/p>\n<p>This method is particularly beneficial for complex or specialized projects where the client requires high competency and confidence in the contractor\u2019s ability to deliver.<\/p>\n<h3>5. Open tendering<\/h3>\n<p>Open tendering is a widely used procurement method in construction that allows any interested contractor or supplier to submit a bid for a project. This approach promotes transparency and competition, as it provides equal opportunities for all qualified vendors to participate.<\/p>\n<p>Open tendering is often preferred for public sector projects to ensure fairness and compliance with regulatory standards. While it encourages competitive pricing and innovative solutions, the method can be time-consuming due to the need to evaluate many bids.<\/p>\n<p>To ensure success, clear criteria, and thorough assessments are essential for selecting the most suitable contractor.<\/p>\n<h3>6. Negotiated contracting<\/h3>\n<p>Negotiated contracting is a procurement method where the client directly engages with a preferred contractor to discuss and agree on the terms of the project, including scope, timeline, and costs.<\/p>\n<p>This approach is often used when the client has an established relationship with the contractor or requires specialized expertise for a complex project. Negotiated contracting can save time and foster collaboration by bypassing the competitive bidding process.<\/p>\n<p>However, a high degree of trust and transparency is required to ensure that the agreed terms are fair and aligned with the project&#8217;s objectives. This method is particularly effective for projects with tight deadlines or unique requirements.<\/p>\n<h2><strong>9 Essential Steps for Managing Construction Procurement<\/strong><\/h2>\n<p>Construction procurement is a critical process that ensures projects are completed efficiently, within budget, and to the desired quality standards. Following a structured approach, stakeholders can minimize risks and foster successful project outcomes. Here are 9 essential steps to guide you through the process effectively.<\/p>\n<h3>1. The design team develops detailed specifications<\/h3>\n<p>At this stage, the design team is responsible for crafting highly detailed specifications that serve as a blueprint for the entire construction process.<\/p>\n<p>These specifications cover every aspect of the project including the types and grades of materials to be used, performance standards, structural requirements, and any specific techniques or methods to be employed. The document also includes compliance with relevant regulations, safety standards, and industry best practices.<\/p>\n<p>By providing such clarity and depth, the specifications ensure that all stakeholders contractors, suppliers, and project managers have a precise understanding of the project&#8217;s technical requirements, reducing the risk of errors, miscommunication, or delays during implementation.<\/p>\n<h3>2. Contractors prepare estimates and submit bids for the project<\/h3>\n<p>At this stage, contractors evaluate the project\u2019s specifications, requirements, and scope to prepare detailed cost estimates. These estimates include calculations for materials, labour, equipment, and any additional expenses necessary to complete the project.<\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-construction-accounting-software\/\">Construction accounting software<\/a> and <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-construction-estimating-software\/\">construction estimating software<\/a> can streamline this process by accurately tracking costs and providing real-time budget updates. Once the estimates are finalized, contractors submit their bids, which outline their proposed costs and timelines for delivering the work.<\/p>\n<p>This process allows project stakeholders to compare different proposals, assess the feasibility of budgets, and select a contractor who aligns with the project&#8217;s financial and quality expectations.<\/p>\n<h3>3. The owner and contractor finalize the agreement terms<\/h3>\n<p>In this step, the owner and contractor work together to finalize the terms of their agreement, ensuring all aspects of the project are clearly defined. This includes establishing the scope of work, payment schedules, timelines, and specific responsibilities of each party.<\/p>\n<p>They also address legal and regulatory requirements, such as permits, insurance, and safety compliance. By thoroughly reviewing and agreeing on these terms, both parties create a solid foundation for collaboration, minimizing misunderstandings and potential disputes as the project progresses.<\/p>\n<h3>4. Contractors solicit bids or pricing from suppliers<\/h3>\n<p>Contractors contact suppliers and subcontractors to request bids or pricing for the materials, equipment, and services needed for the project. This process involves sharing detailed project specifications and timelines to ensure accurate quotes.<\/p>\n<p>Contractors evaluate these bids carefully considering cost, quality, reliability, and delivery schedules. Contractors can optimise project costs by obtaining competitive pricing and selecting the most suitable suppliers while ensuring that materials and services meet the required standards and timelines.<\/p>\n<h3>5. Contractors organize their procurement schedule<\/h3>\n<p>In this step, contractors create a detailed procurement schedule to ensure that all materials, equipment, and services are delivered on time throughout the project. This schedule outlines when each item or service is needed, taking into account project milestones and any potential delays.<\/p>\n<p>By organizing the <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/e-procurement\/\">e-procurement<\/a> timeline, contractors can coordinate the ordering process more effectively, avoid delays, and maintain a steady flow of resources. This careful planning helps ensure that construction progresses smoothly and according to the established deadlines.<\/p>\n<p>Using <a href=\"\/ph\/blog\/best-construction-scheduling-software\/\">construction scheduling software<\/a> can further enhance this process by aligning procurement with project timelines.<\/p>\n<h3>6. The design team reviews contractor submittals<\/h3>\n<p>In this step, the design team carefully reviews the submittals provided by the contractor, which may include product samples, material specifications, and detailed plans for how certain elements will be constructed.<\/p>\n<p>This review aims to ensure that the contractor&#8217;s proposed choices align with the project\u2019s design intent, quality standards, and technical requirements.<\/p>\n<p>By thoroughly evaluating these submittals, the design team can approve or request adjustments to ensure that the final outcome meets the project\u2019s expectations and complies with all necessary regulations. This step helps to prevent costly mistakes or delays during construction.<\/p>\n<h3>7. Contractors complete purchases with suppliers<\/h3>\n<p>In this step, contractors finalize all necessary purchases with suppliers, ensuring that every material, tool, and piece of equipment needed for the project is secured. This involves confirming the order details, such as quantity, price, and delivery times, and ensuring that suppliers are committed to meeting the project\u2019s specifications.<\/p>\n<p>Completing these purchases ensures that contractors have everything in place to proceed with the work, minimizing the risk of delays or shortages that could disrupt the project timeline. This stage is key to maintaining a smooth and efficient workflow throughout the construction process.<\/p>\n<h3>8. Suppliers provide materials and equipment to the construction site<\/h3>\n<p>In this step, suppliers deliver the required materials and equipment directly to the construction site, ensuring that the necessary resources are available for the contractor to begin or continue work. This includes everything from building materials like concrete and steel to specialized equipment for various tasks.<\/p>\n<p>Timely and accurate deliveries are crucial for keeping the project on schedule and avoiding delays. By coordinating with the suppliers and tracking deliveries, contractors can ensure that all materials meet the project\u2019s specifications and are ready for use when needed.<\/p>\n<h3>9. Contractor&#8217;s work and materials undergo final inspections<\/h3>\n<p>At this stage, the contractor&#8217;s completed work and materials are subject to a final inspection to ensure they meet the project\u2019s specifications and quality standards. This inspection is carried out by the owner or a designated inspector who checks for any issues or discrepancies in the workmanship or materials used.<\/p>\n<p>If everything complies, the project can proceed to the next phase or be considered complete. Any necessary adjustments or corrections identified during the inspection are addressed before final approval, ensuring that the construction meets all required safety and quality standards.<\/p>\n<h2><strong>Simplify the Construction Procurement Process for Companies Using HashMicro Software<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone wp-image-14666 size-full\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3.webp\" alt=\"procurement meaning in construction\" width=\"1262\" height=\"1100\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3.webp 1262w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3-300x261.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3-1024x893.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3-768x669.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3-482x420.webp 482w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3-150x131.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3-696x607.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/Dashboard-HashMicro-Terbaru-3-1068x931.webp 1068w\" sizes=\"(max-width: 1262px) 100vw, 1262px\" \/><\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/procurement-system\">HashMicro software<\/a> offers a comprehensive solution to streamline the construction procurement process, helping companies manage every step more efficiently. By integrating various procurement functions into a single platform, businesses can reduce manual tasks, enhance accuracy, and make informed decisions that contribute to smoother <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-project-management-software\/\">construction project management<\/a> execution.<\/p>\n<p>Here&#8217;s how HashMicro <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/ai-procurement-software\/\">AI procurement software<\/a> can simplify the procurement process for construction companies:<\/p>\n<ul>\n<li><strong>E-Procurement for online tenders and RFQ\/ITQ<\/strong>: E-Procurement simplifies the tendering and RFQ\/ITQ process by allowing contractors and suppliers to submit bids electronically. This enhances efficiency, transparency, and competitiveness, while reducing paperwork and ensuring timely review of bids.<\/li>\n<li><strong>Automatic vendor rating<\/strong>: This feature automatically evaluates vendors on punctuality, pricing, and order completeness, helping companies make informed decisions for better quality, reliability, and cost-effectiveness.<\/li>\n<li><strong>Cost savings tracking and reporting<\/strong>: This feature helps track and report cost savings, allowing companies to identify expense reduction opportunities and make more strategic procurement decisions.<\/li>\n<li><strong>Budget tracking &amp; limit per purchase<\/strong>: Budget tracking helps manage expenses by monitoring purchases against set limits, preventing overspending and ensuring efficient use of funds.<\/li>\n<li><strong>Periodic vendor rating review<\/strong>: Periodic vendor reviews assess supplier performance, helping to ensure they meet contract terms, delivery schedules, and quality standards.<\/li>\n<\/ul>\n<a href=\"https:\/\/www.hashmicro.com\/ph\/offer\/download-erp-pricing-list?medium=banner-article\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-skema-harga.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-skema-harga.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/mobile-bir-skema-harga.webp\" alt=\"SkemaHarga\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>Construction procurement is an essential process that ensures projects are completed on time, within budget, and to the highest quality standards. Companies can optimise their procurement strategies and mitigate potential risks by following a structured approach, from cost estimation and vendor selection to delivery tracking and final inspections.<\/p>\n<p>Utilizing advanced <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-procurement-management-software\/\">procurement software<\/a> solutions can further enhance operational efficiency and provide better oversight of procurement activities. <a href=\"https:\/\/www.hashmicro.com\/ph\/procurement-system\">HashMicro<\/a> offers a robust and comprehensive solution designed specifically for the construction industry, facilitating streamlined procurement, improved vendor management, and precise cost control.<\/p>\n<p>For a deeper understanding of how this solution can benefit your organization, we invite you to request a <a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/\">free demo<\/a> and explore its features in detail.<\/p>\n\n<h2><strong> FAQ Construction Procurement<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is a procurement process?<br \/>\n<\/strong><\/summary>\n<p>Procurement is the process of sourcing, purchasing, receiving, and inspecting all of the goods and services your business needs to operate \u2013 everything from raw manufacturing materials to software to office supplies.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is RFQ in procurement?<\/strong><\/summary>\n<p>A request for quote (RFQ) is a process in which a company solicits select contractors to submit bids for the chance to fulfill certain projects.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is a procurement plan?<\/strong><\/summary>\n<p>Procurement planning is the process of identifying and consolidating requirements and determining the timeframes for their procurement with the aim of having them as and when they are required.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In construction, every decision affects timelines and budgets, making procurement a crucial factor for success. But what does it really involve, and why is it so important? Construction procurement covers the purchase of materials, equipment, and services, but challenges like supply chain disruptions, rising costs, and logistical inefficiencies can make it complicated. To keep projects [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":14664,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[156],"tags":[],"class_list":{"0":"post-14645","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-procurement"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Construction Procurement: A Guide to Purchasing &amp; Logistics<\/title>\n<meta name=\"description\" content=\"Construction procurement is a process that involves selecting, approving, and ensuring the delivery of every component required for a project.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construction Procurement: A Guide to Purchasing &amp; Logistics\" \/>\n<meta property=\"og:description\" content=\"Construction procurement is a process that involves selecting, approving, and ensuring the delivery of every component required for a project.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Philippine Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-09T08:07:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-17T07:55:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Irga Afghani\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Irga Afghani\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/\",\"name\":\"Construction Procurement: A Guide to Purchasing & Logistics\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp\",\"datePublished\":\"2025-01-09T08:07:40+00:00\",\"dateModified\":\"2025-12-17T07:55:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/104d705cee674eb0ce8eabbaa51d6bb9\"},\"description\":\"Construction procurement is a process that involves selecting, approving, and ensuring the delivery of every component required for a project.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#breadcrumb\"},\"inLanguage\":\"en-PH\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp\",\"width\":1200,\"height\":675,\"caption\":\"procurement in construction\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Construction Procurement: A Guide to Purchasing &amp; Logistics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\",\"name\":\"HashMicro Philippine Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-PH\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/104d705cee674eb0ce8eabbaa51d6bb9\",\"name\":\"Irga Afghani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/03\/cropped-WhatsApp-Image-2025-03-13-at-09.41.48-96x96.jpeg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/03\/cropped-WhatsApp-Image-2025-03-13-at-09.41.48-96x96.jpeg\",\"caption\":\"Irga Afghani\"},\"description\":\"Experienced content writer specializing in ERP solutions. I create clear, informative content that simplifies complex topics, helping businesses understand how ERP systems can optimize operations and drive growth.\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/author\/irga-afghani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Construction Procurement: A Guide to Purchasing & Logistics","description":"Construction procurement is a process that involves selecting, approving, and ensuring the delivery of every component required for a project.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/","og_locale":"en_US","og_type":"article","og_title":"Construction Procurement: A Guide to Purchasing &amp; Logistics","og_description":"Construction procurement is a process that involves selecting, approving, and ensuring the delivery of every component required for a project.","og_url":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/","og_site_name":"HashMicro Philippine Blog","article_published_time":"2025-01-09T08:07:40+00:00","article_modified_time":"2025-12-17T07:55:36+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp","type":"image\/webp"}],"author":"Irga Afghani","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Irga Afghani","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/","name":"Construction Procurement: A Guide to Purchasing & Logistics","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp","datePublished":"2025-01-09T08:07:40+00:00","dateModified":"2025-12-17T07:55:36+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/104d705cee674eb0ce8eabbaa51d6bb9"},"description":"Construction procurement is a process that involves selecting, approving, and ensuring the delivery of every component required for a project.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#breadcrumb"},"inLanguage":"en-PH","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/"]}]},{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#primaryimage","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/01\/construction-procurement.webp","width":1200,"height":675,"caption":"procurement in construction"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/construction-procurement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/ph\/blog\/"},{"@type":"ListItem","position":2,"name":"Construction Procurement: A Guide to Purchasing &amp; Logistics"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website","url":"https:\/\/www.hashmicro.com\/ph\/blog\/","name":"HashMicro Philippine Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-PH"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/104d705cee674eb0ce8eabbaa51d6bb9","name":"Irga Afghani","image":{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/03\/cropped-WhatsApp-Image-2025-03-13-at-09.41.48-96x96.jpeg","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/03\/cropped-WhatsApp-Image-2025-03-13-at-09.41.48-96x96.jpeg","caption":"Irga Afghani"},"description":"Experienced content writer specializing in ERP solutions. I create clear, informative content that simplifies complex topics, helping businesses understand how ERP systems can optimize operations and drive growth.","url":"https:\/\/www.hashmicro.com\/ph\/blog\/author\/irga-afghani\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/14645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/comments?post=14645"}],"version-history":[{"count":18,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/14645\/revisions"}],"predecessor-version":[{"id":29633,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/14645\/revisions\/29633"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media\/14664"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media?parent=14645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/categories?post=14645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/tags?post=14645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}