{"id":348483,"date":"2026-06-11T12:39:44","date_gmt":"2026-06-11T12:39:44","guid":{"rendered":"https:\/\/experlogix.com\/?p=348483"},"modified":"2026-10-20T16:55:06","modified_gmt":"2026-10-20T16:55:06","slug":"salesforce-cpq-manufacturers-nested-bundles-bom","status":"publish","type":"post","link":"https:\/\/experlogix.com\/nl\/salesforce-cpq-manufacturers-nested-bundles-bom\/","title":{"rendered":"Salesforce CPQ for Manufacturers: Nested Bundles, BOMs and Configure-to-Order \u2014 Where Salesforce CPQ Falls Short"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.9&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_row _builder_version=&#8221;4.27.9&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.9&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.9&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<\/p>\n<style><!-- [et_pb_line_break_holder] -->.xpl-article{container-type:inline-size;--xpl-navy:#0C214C;--xpl-rust:#D94923;--xpl-soft:#F8FBFF;--xpl-ice:#F3F8FD;--xpl-border:#DCE6F2;color:#0C214C;font-size:1rem;line-height:1.68;}<!-- [et_pb_line_break_holder] -->.xpl-article *,.xpl-article *::before,.xpl-article *::after{box-sizing:border-box;}<!-- [et_pb_line_break_holder] -->.xpl-article p{font-size:1rem;line-height:1.68;color:#0C214C;margin:0 0 1.05rem;}<!-- [et_pb_line_break_holder] -->.xpl-article a{color:#0C214C;font-weight:600;text-decoration:underline;text-decoration-color:#9EB9DD;text-decoration-thickness:1px;text-underline-offset:3px;}<!-- [et_pb_line_break_holder] -->.xpl-article a:hover{text-decoration-color:#0C214C;}<!-- [et_pb_line_break_holder] -->.xpl-article a:focus-visible{outline:3px solid #D94923;outline-offset:3px;border-radius:3px;}<!-- [et_pb_line_break_holder] -->.xpl-article h2{color:#0C214C;font-size:1.72rem;line-height:1.24;margin:0 0 1rem;padding:0;border:0!important;text-decoration:none!important;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article h3{color:#0C214C;font-size:1.2rem;line-height:1.34;margin:0 0 .55rem;padding:0;border:0;text-decoration:none;}<!-- [et_pb_line_break_holder] -->.xpl-article ul,.xpl-article ol{margin:.8rem 0 1.2rem;padding-left:1.25rem;}<!-- [et_pb_line_break_holder] -->.xpl-article li{color:#0C214C;margin:0 0 .5rem;}<!-- [et_pb_line_break_holder] -->.xpl-article li::marker{color:#5879A7;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-intro{margin:0 0 1.5rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-intro p:first-child{font-size:1.08rem;line-height:1.65;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section{margin:2.35rem 0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section> :last-child{margin-bottom:0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--soft{background:#F3F8FD;border-radius:14px;padding:1.45rem 1.55rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--soft h2{margin-top:0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--bottom{background:#F7FAFE;border-radius:14px;padding:1.5rem 1.6rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--bottom h2{margin-top:0;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Compact TL;DR: soft background, no orange rail, one marker system. *\/<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr{background:#F3F8FD;border:1px solid #DCE6F2;border-radius:12px;padding:1rem;margin:1.45rem 0 2rem;box-shadow:none;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr summary{cursor:pointer;list-style:none;font-size:1rem;line-height:1.25;font-weight:700;color:#0C214C;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;padding:0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr summary::-webkit-details-marker{display:none;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr summary::after{content:\"+\";color:#0C214C;font-size:1.15rem;line-height:1;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr[open] summary::after{content:\"\u2212\";}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr[open] summary{margin-bottom:.7rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr__body{padding:0;margin:0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr ul{list-style:none!important;padding:0!important;margin:0!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr li{list-style:none!important;position:relative;padding:0 0 0 1rem!important;margin:0 0 .48rem!important;font-size:.9rem!important;line-height:1.48!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr li::marker{content:\"\";}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr li::before{content:\"\";position:absolute;left:0;top:.66em;width:.38rem;height:.38rem;background:#7EA2D3;border-radius:50%;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr li:last-child{margin-bottom:0!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-tldr li p,.xpl-article .xpl-tldr li a,.xpl-article .xpl-tldr li strong{font-size:.9rem!important;line-height:1.48!important;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Editorial grids: varied soft surfaces, no orange rails, no hard shadows. *\/<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-card-grid,.xpl-article .xpl-step-grid{list-style:none!important;padding:0!important;margin:1.15rem 0 1.35rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-card-grid>li,.xpl-article .xpl-step-grid>li{list-style:none!important;margin:0!important;background:#F3F8FD;border:1px solid #DCE6F2;border-radius:12px;padding:1rem 1.08rem;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-card-grid>li:nth-child(even){background:#FAFCFF;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--soft .xpl-card-grid>li,.xpl-article .xpl-section--soft .xpl-step-grid>li,.xpl-article .xpl-section--bottom .xpl-card-grid>li{background:#fff;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--soft .xpl-card-grid>li:nth-child(even),.xpl-article .xpl-section--bottom .xpl-card-grid>li:nth-child(even){background:#F9FBFE;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-card-grid>li::marker,.xpl-article .xpl-step-grid>li::marker{content:\"\";}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-card-grid--stack{grid-template-columns:1fr;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-card-grid>li:last-child:nth-child(odd):not(:first-child){grid-column:1\/-1;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-step-grid{counter-reset:xplstep;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-step-grid>li{counter-increment:xplstep;position:relative;padding-left:3.2rem;min-height:4.1rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-step-grid>li::before{content:counter(xplstep);position:absolute;left:1rem;top:1rem;width:1.65rem;height:1.65rem;border-radius:7px;background:#0C214C;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.84rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-list-box{list-style:none!important;padding:1rem 1.1rem!important;margin:1rem 0 1.3rem;background:#F3F8FD;border:1px solid #DCE6F2;border-radius:12px;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-list-box>li{list-style:none!important;position:relative;margin:0!important;padding:.58rem 0 .58rem 1rem;border-bottom:1px solid #DCE6F2;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-list-box>li:last-child{border-bottom:0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-list-box>li::before{content:\"\";position:absolute;left:0;top:1.15rem;width:5px;height:5px;border-radius:50%;background:#5879A7;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-list-box>li::marker{content:\"\";}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.15rem 0 1.25rem;align-items:stretch;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subcard{background:#F3F8FD;border:1px solid #DCE6F2;border-radius:12px;padding:1.08rem 1.15rem;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subcard:nth-child(even){background:#fff;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--soft .xpl-subcard{background:#fff;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-section--soft .xpl-subcard:nth-child(even){background:#F9FBFE;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subcard:last-child:nth-child(odd):not(:first-child){grid-column:1\/-1;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subcard h3{margin:0 0 .55rem!important;padding:0!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subcard> :last-child{margin-bottom:0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subsection{background:#F3F8FD;border:1px solid #DCE6F2;border-radius:12px;padding:1.05rem 1.15rem;margin:1.15rem 0;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-subsection h3{margin-top:0!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-callout{background:#F8FBFF;border:1px solid #DCE6F2;border-radius:12px;padding:1rem 1.15rem;margin:1.15rem 0;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-callout> :last-child{margin-bottom:0;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* A02 approved decision-map motion scene. *\/<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-scene{max-width:760px;margin:0 auto;background:#fff;border:1px solid #DCE6F2;border-radius:16px;padding:1.1rem;overflow:hidden;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-kicker{display:block;font-size:.76rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:.25rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-title{display:block;font-size:1.12rem;font-weight:700;line-height:1.3;margin-bottom:.75rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-start{display:flex;align-items:center;justify-content:center;min-height:46px;padding:.6rem 1rem;border-radius:10px;background:#0C214C;color:#fff!important;-webkit-text-fill-color:#fff!important;font-weight:700;margin-bottom:.8rem;animation:xplStartPulse 7s ease-in-out infinite;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-track{display:grid;gap:.65rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-path{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.7rem;padding:.7rem .85rem;border:1px solid #DCE6F2;border-radius:10px;background:#F3F8FD;opacity:.38;transform:translateY(4px);animation:xplPathReveal 7s ease-in-out infinite;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-path:nth-child(2){animation-delay:1.1s;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-path:nth-child(3){animation-delay:2.2s;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-path--accent{border-color:#C9DAEF;background:#F8FBFF;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-num{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:8px;background:#0C214C;color:#fff!important;-webkit-text-fill-color:#fff!important;font-weight:700;font-size:.86rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-path--accent .xpl-motion-num{background:#5879A7;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-motion-note{font-size:.9rem;line-height:1.45;margin:.65rem 0 0;}<!-- [et_pb_line_break_holder] -->@keyframes xplPathReveal{0%,12%,100%{opacity:.38;transform:translateY(4px)}22%,58%{opacity:1;transform:translateY(0)}72%{opacity:.55;transform:translateY(0)}}<!-- [et_pb_line_break_holder] -->@keyframes xplStartPulse{0%,100%{transform:scale(1)}12%{transform:scale(1.01)}24%{transform:scale(1)}}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Illustration and motion placements. *\/<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-illustration{width:100%;max-width:760px;margin:2rem auto;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-illustration img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid #DCE6F2;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-animation-wrap{width:100%;max-width:800px;margin:2rem auto;overflow:hidden;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-animation-wrap>div{width:100%!important;max-width:760px!important;margin-left:auto!important;margin-right:auto!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-animation-wrap svg{max-width:100%;height:auto;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* FAQ: calm contained section, white questions, no orange rails. *\/<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-section{margin:2.45rem 0 1.8rem;background:#F3F8FD;border-radius:14px;padding:1.35rem 1.4rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-section h2{margin-bottom:.8rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-list{display:grid;grid-template-columns:1fr;gap:.65rem;margin-top:0;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-item{border:1px solid #DCE6F2;border-radius:10px;background:#fff;padding:0;overflow:hidden;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-item:nth-child(even){background:#FAFCFF;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-item summary{cursor:pointer;list-style:none;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.92rem 1rem;font-weight:700;font-size:1rem;line-height:1.4;color:#0C214C;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-item summary::-webkit-details-marker{display:none;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-item summary::after{content:\"+\";flex:0 0 auto;color:#5879A7;font-size:1.15rem;line-height:1.2;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-item[open] summary::after{content:\"\u2212\";}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-answer{padding:0 1rem .95rem;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-faq-answer> :last-child{margin-bottom:0;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Bottom CTA: pale blue\/white, no orange underline, no shadows. *\/<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(135deg,#FFFFFF 0%,#F3F8FD 100%);border:1px solid #DCE6F2;border-radius:16px;padding:1.65rem 1.75rem;margin:2.5rem 0 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem 1.8rem;align-items:center;text-align:left;box-shadow:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta::after{content:\"\";position:absolute;width:210px;height:210px;border-radius:50%;right:-110px;bottom:-135px;background:rgba(126,162,211,.10);z-index:0;pointer-events:none;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta>*{position:relative;z-index:1;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta-heading{display:block!important;color:#0C214C!important;-webkit-text-fill-color:#0C214C!important;font-size:1.48rem!important;line-height:1.25!important;font-weight:700!important;margin:0 0 .48rem!important;text-align:left!important;border:0!important;text-decoration:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta p{color:#0C214C!important;-webkit-text-fill-color:#0C214C!important;margin:0!important;max-width:720px!important;text-align:left!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta a.xpl-btn,.xpl-article .xpl-cta a.xpl-btn:link,.xpl-article .xpl-cta a.xpl-btn:visited{display:inline-flex;align-items:center;justify-content:center;background:#0C214C!important;color:#fff!important;-webkit-text-fill-color:#fff!important;text-decoration:none!important;font-weight:700;font-size:1rem;line-height:1.4;padding:.35rem 1.8rem!important;border-radius:50px!important;border:2px solid #0C214C!important;box-shadow:none!important;transform:none!important;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta a.xpl-btn:hover,.xpl-article .xpl-cta a.xpl-btn:focus,.xpl-article .xpl-cta a.xpl-btn:active{background:#18386F!important;border-color:#18386F!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important;transform:none!important;}<!-- [et_pb_line_break_holder] -->.xpl-article .xpl-cta a.xpl-btn:focus-visible{outline:3px solid #7EA2D3;outline-offset:3px;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media(max-width:800px){<!-- [et_pb_line_break_holder] --> .xpl-article .xpl-card-grid,.xpl-article .xpl-step-grid,.xpl-article .xpl-subgrid{grid-template-columns:1fr;}<!-- [et_pb_line_break_holder] --> .xpl-article .xpl-card-grid>li:last-child:nth-child(odd):not(:first-child),.xpl-article .xpl-subcard:last-child:nth-child(odd):not(:first-child){grid-column:auto;}<!-- [et_pb_line_break_holder] --> .xpl-article .xpl-cta{grid-template-columns:1fr;align-items:start;}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){<!-- [et_pb_line_break_holder] --> .xpl-article h2{font-size:1.45rem;}<!-- [et_pb_line_break_holder] --> .xpl-article h3{font-size:1.12rem;}<!-- [et_pb_line_break_holder] --> .xpl-article .xpl-section--soft,.xpl-article .xpl-section--bottom{padding:1.15rem;}<!-- [et_pb_line_break_holder] --> .xpl-article .xpl-faq-section{padding:1.1rem;}<!-- [et_pb_line_break_holder] --> .xpl-article .xpl-cta{padding:1.35rem 1.2rem;}<!-- [et_pb_line_break_holder] --> .xpl-article .xpl-illustration,.xpl-article .xpl-animation-wrap{max-width:100%;margin:1.55rem auto;}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media(prefers-reduced-motion:reduce){.xpl-article *{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<article class=\"xpl-article xpl-article--cpq xpl-redesign-v9\" data-article-id=\"A13\"><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"xpl-intro\"><pee>If you manufacture configurable equipment and quote it from Salesforce CPQ, you have probably seen the gap between what the quote says and what the shop floor can build. Salesforce no longer sells Salesforce CPQ to new customers. As a result, many manufacturers are asking whether their current product modeling will hold up for the next five years. This article explains where Salesforce CPQ&#8217;s bundle architecture runs into limits for manufacturing work. It also covers what good looks like for nested bundles, bills of materials, and configure-to-order quoting, and how to weigh your options calmly after the end-of-sale news.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<details class=\"xpl-tldr\" open>\n<summary>TL;DR<\/summary>\n<div class=\"xpl-tldr__body\">\n<ul><!-- [et_pb_line_break_holder] --><\/p>\n<li>Salesforce CPQ is end of sale, not end of life. Existing customers can keep using it, renew, add users, and receive support. Salesforce has not announced an end-of-life date, and no one is forcing a migration.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Salesforce CPQ was designed as a tool for commercial bundles and subscription quotes. It models sellable bundles well. It was not designed to produce a manufacturing bill of materials (BOM) or routings.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>The practical limits appear in four places: deep nested bundles, components that expand based on option choices, cost rollup across assembly levels, and anything that needs engineering or ERP (enterprise resource planning) data in real time.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Most manufacturers close that gap with custom development, middleware, or engineers re-entering data by hand. That work is where the real cost lives, not in license fees.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>You have more than two choices. If your configurations are shallow and your production data is stable, staying put is defensible. If sales configurations must become buildable structures, you need a CPQ for manufacturing that models assemblies, materials, and operations as a hierarchy and hands that structure to ERP.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ul>\n<\/div>\n<\/details>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<figure class=\"xpl-illustration\"><img alt=\"\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/experlogix.com\/wp-content\/uploads\/salesforce-cpq-manufacturers-nested-bundles-bom-illustration-1.webp\"\/><\/figure>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"xpl-section\">\n<h2>Why Manufacturers Are Re-Examining Salesforce CPQ Now<\/h2>\n<pee><a href=\"https:\/\/experlogix.com\/salesforce-cpq\/\">Salesforce CPQ<\/a> (configure, price, quote) is still supported, renewable, and usable. What changed is where Salesforce is investing. Its strategic development has moved to Revenue Cloud Advanced, and Salesforce CPQ now gets limited new feature development. Moving from Salesforce CPQ to Revenue Cloud Advanced is not an upgrade. It is a reimplementation with a different data model and a different way of configuring products.<\/pee><pee>For a software company selling subscriptions, that is a manageable roadmap question. For a manufacturer, the stakes are higher. You may already be stretching the product model to represent machines, options, subassemblies, and installed services. If so, you now have to decide whether to rebuild that stretched model on a new platform or rethink the quoting layer entirely.<\/pee><pee>To be fair, Salesforce CPQ does a lot well. It is a capable tool for moderately complex catalogs, discount schedules, approval workflows, and subscription terms, and it fits comfortably inside Salesforce CRM. The limits appear when the configuration has to be manufacturable.<\/pee><\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"xpl-section\">\n<h2>Where Nested Bundles Start to Strain<\/h2>\n<pee>Salesforce CPQ models products as bundles with options, option groups, and rules. That structure is a commercial hierarchy: what the customer buys and what appears on the quote. This article focuses on the manufacturing side of the broader <a href=\"https:\/\/experlogix.com\/salesforce-cpq-limitations-complex-products\/\">Salesforce CPQ limitations for configurable products<\/a>. A manufacturing hierarchy is different. It describes what gets built, from the finished assembly down through subassemblies, components, raw materials, and purchased parts.<\/pee><pee>The two hierarchies overlap, but they are not the same. The friction grows as the hierarchy gets deeper.<\/pee>\n<div class=\"xpl-subgrid\">\n<div class=\"xpl-subcard\">\n<h3>Depth, dependency, and rule sprawl<\/h3>\n<pee>Nested bundles work until dependencies start running in several directions at once. For example, frame size limits the drive option. The drive option limits the control package. The control package changes the wiring harness and the certification documents. You can express that in product rules, price rules, and constraint rules, but the rule set grows faster than the catalog does. As catalogs grow to thousands of SKUs, nested bundles, and hybrid offerings that mix physical products, services, and subscriptions, rule sets tend to get harder to maintain. Large quotes can also run into <a href=\"https:\/\/experlogix.com\/salesforce-cpq-managed-package-limitations\/\">governor limits on deep nested bundles<\/a>.<\/pee><pee>The maintenance cost matters as much as the performance cost. If only the person who wrote the logic can safely change it, every new product variant becomes a project instead of an update.<\/pee><\/div>\n<div class=\"xpl-subcard\">\n<h3>Calculation customization and the specialist dependency<\/h3>\n<pee>When pricing logic goes beyond what the standard engine can do, it usually moves into the Quote Calculator Plugin (QCP) or Apex code. That is a legitimate extension point, and it works. It also means your pricing now lives in code that an admin cannot safely edit. That code must be regression-tested against every release, and it must be redesigned entirely if you later move to a different platform. This is where manufacturers usually come to depend on consultants, especially if they need cost rollups, margin floors by assembly level, or regional supply factors.<\/pee><\/div>\n<\/div>\n<\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"xpl-animation-wrap\">\n<style><!-- [et_pb_line_break_holder] -->.xl-scene{width:100%;max-width:440px;margin:0 auto;font-family:inherit;}<!-- [et_pb_line_break_holder] -->.xl-scene svg{display:block;width:100%;height:auto;}<!-- [et_pb_line_break_holder] -->.xl-scene text{font-family:inherit;}<!-- [et_pb_line_break_holder] -->.xl-fade{transition:opacity .35s ease;}<!-- [et_pb_line_break_holder] -->.xl-scene.xl-out .xl-fade{opacity:0;}<!-- [et_pb_line_break_holder] -->.xl-chip,.xl-node,.xl-mat,.xl-op,.xl-check,.xl-pack{transform-box:fill-box;transform-origin:center;}<!-- [et_pb_line_break_holder] -->.xl-chip{transition:transform .7s cubic-bezier(.6,0,.3,1),opacity .5s ease .35s;}<!-- [et_pb_line_break_holder] -->.xl-c2{transition-delay:.12s,.47s;}<!-- [et_pb_line_break_holder] -->.xl-c3{transition-delay:.24s,.59s;}<!-- [et_pb_line_break_holder] -->.xl-s1 .xl-c1{transform:translate(106px,50px) scale(.3);opacity:0;}<!-- [et_pb_line_break_holder] -->.xl-s1 .xl-c2{transform:translate(106px,10px) scale(.3);opacity:0;}<!-- [et_pb_line_break_holder] -->.xl-s1 .xl-c3{transform:translate(106px,-30px) scale(.3);opacity:0;}<!-- [et_pb_line_break_holder] -->.xl-link{fill:none;stroke:#8BB9FC;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .6s ease;}<!-- [et_pb_line_break_holder] -->.xl-node,.xl-mat{opacity:0;transform:scale(.4);transition:opacity .35s ease,transform .45s cubic-bezier(.3,1.5,.5,1);}<!-- [et_pb_line_break_holder] -->.xl-ring{transform-box:fill-box;transform-origin:center;opacity:0;}<!-- [et_pb_line_break_holder] -->.xl-s2 .xl-ring{animation:xl-pulse .9s ease-out;}<!-- [et_pb_line_break_holder] -->@keyframes xl-pulse{0%{opacity:.9;transform:scale(1);}100%{opacity:0;transform:scale(1.6);}}<!-- [et_pb_line_break_holder] -->.xl-s2 .xl-l0{stroke-dashoffset:0;}<!-- [et_pb_line_break_holder] -->.xl-s2 .xl-root{opacity:1;transform:scale(1);transition-delay:.45s;}<!-- [et_pb_line_break_holder] -->.xl-s3 .xl-l1{stroke-dashoffset:0;}<!-- [et_pb_line_break_holder] -->.xl-s3 .xl-sub{opacity:1;transform:scale(1);transition-delay:.4s;}<!-- [et_pb_line_break_holder] -->.xl-s4 .xl-l2{stroke-dashoffset:0;}<!-- [et_pb_line_break_holder] -->.xl-s4 .xl-mat{opacity:1;transform:scale(1);}<!-- [et_pb_line_break_holder] -->.xl-s4 .xl-m1{transition-delay:.35s;}.xl-s4 .xl-m2{transition-delay:.45s;}<!-- [et_pb_line_break_holder] -->.xl-s4 .xl-m3{transition-delay:.55s;}.xl-s4 .xl-m4{transition-delay:.65s;}<!-- [et_pb_line_break_holder] -->.xl-rlabel{opacity:0;transition:opacity .4s ease;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-rlabel{opacity:1;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-l3{stroke-dashoffset:0;}<!-- [et_pb_line_break_holder] -->.xl-track{stroke:#8BB9FC;stroke-width:2.5;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s linear .5s;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-track{stroke-dashoffset:0;}<!-- [et_pb_line_break_holder] -->.xl-op{fill:#F3F8FD;stroke:#0C214C;stroke-width:2;opacity:0;transition:fill .25s ease,opacity .3s ease;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-op{opacity:1;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-o1{fill:#0C214C;transition-delay:.5s;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-o2{fill:#0C214C;transition-delay:.95s;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-o3{fill:#0C214C;transition-delay:1.4s;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-o4{fill:#0C214C;transition-delay:1.85s;}<!-- [et_pb_line_break_holder] -->.xl-token{opacity:0;transition:transform 1.4s linear .5s,opacity .2s ease .5s;}<!-- [et_pb_line_break_holder] -->.xl-s5 .xl-token{opacity:1;transform:translateX(135px);}<!-- [et_pb_line_break_holder] -->.xl-s6 .xl-token{opacity:0;transition:opacity .3s ease;}<!-- [et_pb_line_break_holder] -->.xl-check{opacity:0;transform:scale(0);transition:opacity .2s ease,transform .45s cubic-bezier(.3,1.7,.5,1);}<!-- [et_pb_line_break_holder] -->.xl-s6 .xl-check{opacity:1;transform:scale(1);}<!-- [et_pb_line_break_holder] -->.xl-pack{opacity:0;transform:scale(.5);transition:opacity .3s ease,transform .4s cubic-bezier(.3,1.5,.5,1);}<!-- [et_pb_line_break_holder] -->.xl-s6 .xl-pack{opacity:1;transform:scale(1);transition-delay:.3s;}<!-- [et_pb_line_break_holder] -->.xl-s7 .xl-pack{opacity:0;transform:translateY(46px) scale(.6);transition:transform .7s cubic-bezier(.6,0,.4,1),opacity .3s ease .5s;}<!-- [et_pb_line_break_holder] -->.xl-erp{fill:#F3F8FD;stroke:#0C214C;stroke-width:2;stroke-dasharray:6 5;transition:fill .4s ease .6s;}<!-- [et_pb_line_break_holder] -->.xl-s7 .xl-erp{fill:#0C214C;stroke-dasharray:none;}<!-- [et_pb_line_break_holder] -->.xl-erpt{fill:#0C214C;transition:fill .4s ease .6s;}<!-- [et_pb_line_break_holder] -->.xl-s7 .xl-erpt{fill:#F3F8FD;}<!-- [et_pb_line_break_holder] -->.xl-cap{opacity:0;transition:opacity .5s ease .9s;}<!-- [et_pb_line_break_holder] -->.xl-s7 .xl-cap{opacity:1;}<!-- [et_pb_line_break_holder] -->.xl-still *{transition:none!important;animation:none!important;}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"xl-scene\" id=\"xlScene\"><!-- [et_pb_line_break_holder] --><svg aria-labelledby=\"xlT xlD\" role=\"img\" viewbox=\"0 0 440 380\"><!-- [et_pb_line_break_holder] --><title id=\"xlT\">One rule set builds the BOM and routing<\/title><!-- [et_pb_line_break_holder] --><desc id=\"xlD\">Option choices merge into a single rules engine, which assembles a multi-level bill of materials and a routing sequence, validates them, and hands the structured package to ERP.<\/desc><!-- [et_pb_line_break_holder] --><rect fill=\"#F3F8FD\" height=\"380\" rx=\"16\" width=\"440\"><\/rect><!-- [et_pb_line_break_holder] --><g class=\"xl-fade\"><!-- [et_pb_line_break_holder] --><text fill=\"#0C214C\" font-size=\"15\" font-weight=\"700\" x=\"20\" y=\"32\">One rule set \u2192 BOM + routing<\/text><!-- [et_pb_line_break_holder] --><text fill=\"#0350D8\" font-size=\"11\" font-weight=\"600\" x=\"20\" y=\"76\">Options<\/text><!-- [et_pb_line_break_holder] --><g class=\"xl-chip xl-c1\"><rect fill=\"#0C214C\" height=\"24\" rx=\"12\" width=\"78\" x=\"20\" y=\"88\"><\/rect><text fill=\"#F3F8FD\" font-size=\"11\" text-anchor=\"middle\" x=\"59\" y=\"104\">Frame<\/text><\/g><!-- [et_pb_line_break_holder] --><g class=\"xl-chip xl-c2\"><rect fill=\"#0C214C\" height=\"24\" rx=\"12\" width=\"78\" x=\"20\" y=\"128\"><\/rect><text fill=\"#F3F8FD\" font-size=\"11\" text-anchor=\"middle\" x=\"59\" y=\"144\">Drive<\/text><\/g><!-- [et_pb_line_break_holder] --><g class=\"xl-chip xl-c3\"><rect fill=\"#0C214C\" height=\"24\" rx=\"12\" width=\"78\" x=\"20\" y=\"168\"><\/rect><text fill=\"#F3F8FD\" font-size=\"11\" text-anchor=\"middle\" x=\"59\" y=\"184\">Controls<\/text><\/g><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l0\" d=\"M191 150 H215 V73 H262\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l3\" d=\"M165 176 V250 H241\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><circle class=\"xl-ring\" cx=\"165\" cy=\"150\" fill=\"none\" r=\"26\" stroke=\"#F46134\" stroke-width=\"3\"><\/circle><!-- [et_pb_line_break_holder] --><circle cx=\"165\" cy=\"150\" fill=\"#0350D8\" r=\"26\"><\/circle><!-- [et_pb_line_break_holder] --><text fill=\"#F3F8FD\" font-size=\"11\" font-weight=\"700\" text-anchor=\"middle\" x=\"165\" y=\"154\">Rules<\/text><!-- [et_pb_line_break_holder] --><text fill=\"#0350D8\" font-size=\"11\" font-weight=\"600\" x=\"262\" y=\"52\">BOM<\/text><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l1\" d=\"M310 86 V102 H264 V118\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l1\" d=\"M310 86 V102 H356 V118\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l2\" d=\"M264 140 V151 H249 V162\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l2\" d=\"M264 140 V151 H279 V162\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l2\" d=\"M356 140 V151 H341 V162\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><path class=\"xl-link xl-l2\" d=\"M356 140 V151 H371 V162\" pathlength=\"1\"><\/path><!-- [et_pb_line_break_holder] --><g class=\"xl-node xl-root\"><rect fill=\"#0C214C\" height=\"26\" rx=\"6\" width=\"96\" x=\"262\" y=\"60\"><\/rect><text fill=\"#F3F8FD\" font-size=\"11\" text-anchor=\"middle\" x=\"310\" y=\"77\">Assembly<\/text><\/g><!-- [et_pb_line_break_holder] --><rect class=\"xl-node xl-sub\" fill=\"#0350D8\" height=\"22\" rx=\"5\" width=\"64\" x=\"232\" y=\"118\"><\/rect><!-- [et_pb_line_break_holder] --><rect class=\"xl-node xl-sub\" fill=\"#0350D8\" height=\"22\" rx=\"5\" width=\"64\" x=\"324\" y=\"118\"><\/rect><!-- [et_pb_line_break_holder] --><rect class=\"xl-mat xl-m1\" fill=\"#8BB9FC\" height=\"18\" rx=\"3\" stroke=\"#0C214C\" stroke-width=\"1.5\" width=\"18\" x=\"240\" y=\"162\"><\/rect><!-- [et_pb_line_break_holder] --><rect class=\"xl-mat xl-m2\" fill=\"#8BB9FC\" height=\"18\" rx=\"3\" stroke=\"#0C214C\" stroke-width=\"1.5\" width=\"18\" x=\"270\" y=\"162\"><\/rect><!-- [et_pb_line_break_holder] --><rect class=\"xl-mat xl-m3\" fill=\"#8BB9FC\" height=\"18\" rx=\"3\" stroke=\"#0C214C\" stroke-width=\"1.5\" width=\"18\" x=\"332\" y=\"162\"><\/rect><!-- [et_pb_line_break_holder] --><rect class=\"xl-mat xl-m4\" fill=\"#8BB9FC\" height=\"18\" rx=\"3\" stroke=\"#0C214C\" stroke-width=\"1.5\" width=\"18\" x=\"362\" y=\"162\"><\/rect><!-- [et_pb_line_break_holder] --><g class=\"xl-check\"><circle cx=\"360\" cy=\"60\" fill=\"#F7D119\" r=\"11\"><\/circle><path d=\"M355 60 l3.5 3.5 l6.5 -7\" fill=\"none\" stroke=\"#0C214C\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.4\"><\/path><\/g><!-- [et_pb_line_break_holder] --><text class=\"xl-rlabel\" fill=\"#0350D8\" font-size=\"11\" font-weight=\"600\" x=\"241\" y=\"230\">Routing<\/text><!-- [et_pb_line_break_holder] --><line class=\"xl-track\" pathlength=\"1\" x1=\"259\" x2=\"376\" y1=\"250\" y2=\"250\"><\/line><!-- [et_pb_line_break_holder] --><circle class=\"xl-op xl-o1\" cx=\"250\" cy=\"250\" r=\"9\"><\/circle><!-- [et_pb_line_break_holder] --><circle class=\"xl-op xl-o2\" cx=\"295\" cy=\"250\" r=\"9\"><\/circle><!-- [et_pb_line_break_holder] --><circle class=\"xl-op xl-o3\" cx=\"340\" cy=\"250\" r=\"9\"><\/circle><!-- [et_pb_line_break_holder] --><circle class=\"xl-op xl-o4\" cx=\"385\" cy=\"250\" r=\"9\"><\/circle><!-- [et_pb_line_break_holder] --><circle class=\"xl-token\" cx=\"250\" cy=\"250\" fill=\"#F46134\" r=\"5\"><\/circle><!-- [et_pb_line_break_holder] --><g class=\"xl-pack\"><!-- [et_pb_line_break_holder] --><rect fill=\"#0C214C\" height=\"6\" rx=\"2\" width=\"36\" x=\"299\" y=\"268\"><\/rect><!-- [et_pb_line_break_holder] --><rect fill=\"#0350D8\" height=\"6\" rx=\"2\" width=\"36\" x=\"299\" y=\"276\"><\/rect><!-- [et_pb_line_break_holder] --><rect fill=\"#8BB9FC\" height=\"6\" rx=\"2\" width=\"36\" x=\"299\" y=\"284\"><\/rect><!-- [et_pb_line_break_holder] --><\/g><!-- [et_pb_line_break_holder] --><rect class=\"xl-erp\" height=\"38\" rx=\"8\" width=\"154\" x=\"240\" y=\"302\"><\/rect><!-- [et_pb_line_break_holder] --><text class=\"xl-erpt\" font-size=\"13\" font-weight=\"700\" text-anchor=\"middle\" x=\"317\" y=\"326\">ERP<\/text><!-- [et_pb_line_break_holder] --><text class=\"xl-cap\" fill=\"#0C214C\" font-size=\"11.5\" text-anchor=\"middle\" x=\"317\" y=\"364\">Only validated configs ship<\/text><!-- [et_pb_line_break_holder] --><\/g><!-- [et_pb_line_break_holder] --><\/svg><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var el=document.getElementById('xlScene');<!-- [et_pb_line_break_holder] -->  if(!el)return;<!-- [et_pb_line_break_holder] -->  var steps=['xl-s1','xl-s2','xl-s3','xl-s4','xl-s5','xl-s6','xl-s7'];<!-- [et_pb_line_break_holder] -->  var times=[300,1150,1850,2450,3150,5300,5950];<!-- [et_pb_line_break_holder] -->  var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;<!-- [et_pb_line_break_holder] -->  if(reduce){el.classList.add('xl-still');steps.forEach(function(s){el.classList.add(s);});return;}<!-- [et_pb_line_break_holder] -->  var timers=[];<!-- [et_pb_line_break_holder] -->  function run(){<!-- [et_pb_line_break_holder] -->    timers.forEach(clearTimeout);timers=[];<!-- [et_pb_line_break_holder] -->    steps.forEach(function(s,i){timers.push(setTimeout(function(){el.classList.add(s);},times[i]));});<!-- [et_pb_line_break_holder] -->    timers.push(setTimeout(function(){el.classList.add('xl-out');},9600));<!-- [et_pb_line_break_holder] -->    timers.push(setTimeout(function(){<!-- [et_pb_line_break_holder] -->      el.classList.add('xl-still');<!-- [et_pb_line_break_holder] -->      steps.forEach(function(s){el.classList.remove(s);});<!-- [et_pb_line_break_holder] -->      void el.offsetWidth;<!-- [et_pb_line_break_holder] -->      el.classList.remove('xl-still');<!-- [et_pb_line_break_holder] -->      el.classList.remove('xl-out');<!-- [et_pb_line_break_holder] -->      run();<!-- [et_pb_line_break_holder] -->    },10050));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  run();<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"xpl-section xpl-section--soft\">\n<h2>BOMs and Routings: The Capability That Isn&#8217;t Really There<\/h2>\n<pee>Salesforce CPQ produces a quote. On its own, it does not produce a multi-level manufacturing BOM that keeps parent-child relationships intact, and it does not produce routings.<\/pee><pee>Two definitions matter most here:<\/pee>\n<ul><!-- [et_pb_line_break_holder] --><\/p>\n<li>Bill of materials (BOM): the hierarchical list of every component, subassembly, raw material, and purchased part needed to build a configured product. It includes quantities and the parent-child relationships between assembly levels.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Routings: the manufacturing method. A routing sets out which operations happen in what order, at which work centers, and with what setup and run times. It also includes inspection points and quality gates.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ul>\n<pee>If the BOM is the recipe, the routing is the method. Production planning needs both, and it needs them as structured data, not approximations.<\/pee><pee>In practice, manufacturers bridge the gap by hand or with custom integration. Sales configures the product in Salesforce CPQ, and then engineering re-creates the structure in ERP or in spreadsheets. Each re-entry step is a chance to miss a component, get a lead time wrong, or let the quoted margin drift from the actual build cost. Teams that try to automate this bridge usually turn to middleware, custom code, or copies of ERP data in custom Salesforce objects. They then inherit the ongoing job of keeping two complex data structures in sync.<\/pee>\n<div class=\"xpl-subsection\">\n<h3>Why ERP integration is the real test<\/h3>\n<pee>Salesforce CPQ performs well inside the Salesforce CRM ecosystem. The strain shows when quoting depends on data that lives in ERP, such as live component availability, current standard costs, manufacturing lead times, and real BOM structures. A quote that looks correct in CPQ may already be out of date when it is sent if the ERP data has changed.<\/pee><pee>So be specific when you evaluate ERP integration. Ask these questions:<\/pee>\n<ul class=\"xpl-card-grid\"><!-- [et_pb_line_break_holder] --><\/p>\n<li>Does the CPQ read production data directly from ERP?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>What does it write back?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Does it need middleware to do either?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Does it allow only validated configurations to reach ERP?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ul>\n<pee>An API endpoint is not the same as a supported handoff of BOM, routing, and work breakdown structure (WBS) data.<\/pee><\/div>\n<\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"xpl-section\">\n<h2>Configure-to-Order and Engineer-to-Order Realities<\/h2>\n<pee>In configure-to-order (CTO) work, the product is built from a set of options that engineering has already validated. The configurator&#8217;s job is to prevent invalid combinations and turn the selection into a buildable structure. In engineer-to-order (ETO) work, some engineering happens for each deal. The configurator then has to handle parameters, formulas, and generated documents rather than fixed option lists. For a fuller breakdown of <a href=\"https:\/\/experlogix.com\/engineer-to-order-vs-configure-to-order-salesforce-cpq\/\">engineer-to-order vs. configure-to-order<\/a> and how each maps to Salesforce CPQ, see the dedicated guide.<\/pee><pee>For manufacturing, the key point is that Salesforce CPQ handles the commercial side of CTO reasonably well: option selection, validation, pricing, and approvals. It does not inherently handle the production side, and the production side decides whether an order can be released. ETO pushes further still, because quotes often have to include technical documents, drawings, and project structures.<\/pee><pee>At this point, many manufacturers stop asking which CPQ has more features. They start asking where their configuration logic should live.<\/pee><\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"xpl-section\">\n<h2>How Experlogix CPQ Approaches Manufacturing Configuration<\/h2>\n<pee>Experlogix CPQ is built for this kind of problem. The architecture matters more here than the feature list.<\/pee><pee>Products are modeled as hierarchical assemblies. The BOM Designer models assemblies, materials, and operations as a structured hierarchy. Usage types (Line Item, Assembly, Material, and Operation) drive the structure. You can drag and drop assemblies, materials, and operations under parent options, including subassemblies. The hierarchy is stored in the configuration XML so ERP can use it downstream. CRM users can see the same structure in a BOM viewer instead of asking engineering to explain it.<\/pee><pee>The same rules that validate the configuration during quoting also assemble the BOM and routing. Each selected option maps to its components, subassemblies, and operations. The result is a complete multi-level BOM and routing that match what was sold. The production package is then pushed as structured data into Microsoft Dynamics 365 Finance &#038; Supply Chain Management or Business Central. It includes the bill of materials, the routings, and, for project-based work, the work breakdown structure. Only configurations the rules engine has validated are sent, so production does not start from an order that cannot be built.<\/pee><pee>For Salesforce CRM customers, Experlogix CPQ runs embedded in Salesforce. Reps configure, price, and quote without leaving the CRM, and data flows in both directions between CPQ and CRM. Experlogix does not only read from Salesforce. It also writes back configuration details, pricing calculations, and approval status. Cloud Connect synchronizes quotes, orders, and approvals across CRM and ERP without custom code, and it can write to standard or custom Salesforce objects without developers. Salesforce CRM stays the system of record for customer and opportunity data, while the heavy configuration logic runs in an engine built for it.<\/pee><pee>Other capabilities relevant to manufacturing quotes:<\/pee>\n<ul class=\"xpl-card-grid\"><!-- [et_pb_line_break_holder] --><\/p>\n<li>Multi-level BOMs, nested configurations, and dependency rules<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Guided selling that steers users toward valid configurations<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Automatic generation of CAD drawings, BOMs, and supporting technical documents, which matters in regulated industries<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Shared mapping trees, so you can reuse one product model across sales channels, customer segments, or regions without rebuilding the logic<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li><a href=\"https:\/\/experlogix.com\/salesforce-cpq-admin-day-one\/\">Low-code rule ownership<\/a>, so business users control logic changes and new product variants<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ul>\n<pee>When a rule changes, you update the logic once, and every new configuration reflects the change.<\/pee>\n<div class=\"xpl-subsection\">\n<h3>When Salesforce CPQ is still the right call<\/h3>\n<pee>Salesforce CPQ remains a reasonable fit when your configuration needs are low to moderate, your quoting happens entirely inside Salesforce, and your workflows are fairly simple. The case for change is also weak if:<\/pee>\n<ul class=\"xpl-card-grid\"><!-- [et_pb_line_break_holder] --><\/p>\n<li>Your products are mostly standard.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Engineering maintains BOMs directly in ERP, and quotes do not depend on them.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Your rule set is stable.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ul>\n<pee>The same applies if you are already committed to a Revenue Cloud Advanced reimplementation with executive sponsorship and budget. Starting a second transition partway through rarely helps.<\/pee><\/div>\n<\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"xpl-section xpl-section--bottom\">\n<h2>The Bottom Line on CPQ for Manufacturing<\/h2>\n<pee>Salesforce CPQ is end of sale, not end of life. You can renew, add users, and keep running it with support, and no end-of-life date has been announced. The pressure manufacturers feel is not a deadline. It is the growing distance between a commercial bundling tool and what manufacturing quotes actually require.<\/pee><pee>The decision comes down to five questions:<\/pee>\n<ul class=\"xpl-card-grid\"><!-- [et_pb_line_break_holder] --><\/p>\n<li>Can your CPQ model nested bundles as deep as your real products require, without a sprawling rule set that only a specialist can maintain?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Does a validated configuration automatically produce a multi-level bill of materials and routings, with parent-child relationships intact?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Does cost roll up accurately at every assembly level, so you know the margin when you quote rather than days later?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Does your ERP integration move structured production data, or a parts list that someone has to restructure?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Can your own admins change the logic when a component is replaced?<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ul>\n<pee>When configurations become buildable definitions automatically, sales and engineering stop duplicating work. Production planners schedule from the same record the customer approved, and finance sees material and labor costs at quote time instead of after the fact. That outcome is worth designing for, whichever platform you choose.<\/pee><pee>A practical next step is to take your three hardest real quotes from the last year, not demo products, and map each one from start to finish. Record every option dependency, every manual engineering step, every spreadsheet, and every ERP field someone re-entered. Then clean the underlying data and confirm that item numbers and units of measure match between systems. Finally, decide who owns the configuration rules going forward. That map will tell you more about your CPQ requirements than any feature comparison.<\/pee><\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"xpl-faq-section\">\n<h2>FAQ<\/h2>\n<div class=\"xpl-faq-list\">\n<details class=\"xpl-faq-item\" open=\"\">\n<summary>Can Salesforce CPQ generate a manufacturing BOM?<\/summary>\n<div class=\"xpl-faq-answer\"><pee>Not on its own. Salesforce CPQ models commercial bundles for quoting. It does not produce a multi-level manufacturing BOM with parent-child relationships intact, and it does not produce routings. Manufacturers usually fill the gap by re-entering data in ERP or spreadsheets, or with custom integration and middleware.<\/pee><\/div>\n<\/details>\n<details class=\"xpl-faq-item\">\n<summary>Can Experlogix generate BOMs and routings from a validated configuration?<\/summary>\n<div class=\"xpl-faq-answer\"><pee>Yes. The same rules that validate a configuration during quoting also assemble the BOM and routing, so the output is a complete multi-level BOM and routing that match what was sold. That production package, plus the work breakdown structure for project-based work, is pushed into Microsoft Dynamics 365 Finance &#038; Supply Chain Management or Business Central. Only validated configurations are sent.<\/pee><\/div>\n<\/details>\n<details class=\"xpl-faq-item\">\n<summary>What is the difference between a BOM and a routing?<\/summary>\n<div class=\"xpl-faq-answer\"><pee>A BOM is the hierarchical list of components, subassemblies, raw materials, and purchased parts needed to build a product, with quantities and parent-child relationships. A routing is the manufacturing method: the sequence of operations, work centers, setup and run times, and inspection points. If the BOM is the recipe, the routing is the method.<\/pee><\/div>\n<\/details>\n<details class=\"xpl-faq-item\">\n<summary>What should manufacturers test in CPQ-to-ERP integration?<\/summary>\n<div class=\"xpl-faq-answer\"><pee>Test whether the CPQ reads production data such as costs, lead times, availability, and BOM structures directly from ERP. Check what it writes back, whether it needs middleware, and whether it sends only validated configurations. Also confirm that it passes structured BOM, routing, and WBS data rather than a flat parts list that someone has to restructure.<\/pee><\/div>\n<\/details>\n<details class=\"xpl-faq-item\">\n<summary>Why do commercial bundles and manufacturing BOMs diverge?<\/summary>\n<div class=\"xpl-faq-answer\"><pee>They describe different things. A commercial bundle describes what the customer buys and what appears on the quote. A manufacturing BOM describes what gets built, from the finished assembly down to purchased parts. Option choices can change the components, subassemblies, and operations in ways a sales bundle does not capture, so the two drift apart unless one set of rules generates both.<\/pee><\/div>\n<\/details>\n<\/div>\n<\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"xpl-cta\">\n<div class=\"xpl-cta-copy\"><span class=\"xpl-cta-heading\">Turn validated configurations into buildable orders<\/span><pee>See how Experlogix CPQ helps manufacturers model multi-level assemblies, generate BOMs and routings from the same rules used to quote, and hand structured production data to ERP.<\/pee><\/div>\n<div class=\"xpl-cta-action\"><a class=\"xpl-btn\" href=\"https:\/\/experlogix.com\/demo\/\">Get a Demo<\/a><\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] --><\/article>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you manufacture configurable equipment and quote it from Salesforce CPQ, you have probably seen the gap between what the quote says and what the shop floor can build. Salesforce no longer sells Salesforce CPQ to new customers. As a result, many manufacturers are asking whether their current product modeling will hold up for the next five years. This article explains where Salesforce CPQ&#8217;s bundle architecture runs into limits for manufacturing work. It also covers what good looks like for nested bundles, bills of materials, and configure-to-order quoting, and how to weigh your options calmly after the end-of-sale news.<\/p>","protected":false},"author":1,"featured_media":348425,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[235],"tags":[],"xpl_cpq_related_topic":[187,194,183,200],"xpl_da_related_topic":[],"class_list":["post-348483","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-quoting-tools","xpl_cpq_related_topic-bom","xpl_cpq_related_topic-manufacturing","xpl_cpq_related_topic-rules-engine","xpl_cpq_related_topic-salesforce"],"acf":[],"_links":{"self":[{"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/posts\/348483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/comments?post=348483"}],"version-history":[{"count":3,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/posts\/348483\/revisions"}],"predecessor-version":[{"id":348562,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/posts\/348483\/revisions\/348562"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/media\/348425"}],"wp:attachment":[{"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/media?parent=348483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/categories?post=348483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/tags?post=348483"},{"taxonomy":"xpl_cpq_related_topic","embeddable":true,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/xpl_cpq_related_topic?post=348483"},{"taxonomy":"xpl_da_related_topic","embeddable":true,"href":"https:\/\/experlogix.com\/nl\/wp-json\/wp\/v2\/xpl_da_related_topic?post=348483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}