{"id":5997,"date":"2021-08-18T02:22:46","date_gmt":"2021-08-18T02:22:46","guid":{"rendered":"https:\/\/tst-blog.myenterprise.in\/?p=5997"},"modified":"2025-01-13T09:55:49","modified_gmt":"2025-01-13T09:55:49","slug":"sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog","status":"publish","type":"post","link":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/","title":{"rendered":"SugarCRM Developer Tutorial on Creating Many-to-Many Relationship in Product Catalogue Module"},"content":{"rendered":"\n<h2 id=\"sugarcrm-module-relationships\" class=\"wp-block-heading\">SugarCRM Module Relationships<\/h2>\n\n\n<p class=\"has-drop-cap is-cnvs-dropcap-bg-light\">SugarCRM has few developer tools which makes the admin user\u2019s life simpler. Sugar has one of the most powerful developer tools called studio which helps admin users create the below things<\/p>\n\n\n<ul class=\"wp-block-list is-style-cnvs-list-styled-positive\">\n<li>Fields<\/li>\n\n\n\n<li>Relationships<\/li>\n\n\n\n<li>And modify the layouts.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">As a standard feature admin can create 3 types of relationships between two modules namely,<\/p>\n\n\n\n<ul class=\"wp-block-list is-style-cnvs-list-styled-positive\">\n<li>One to One relationship<\/li>\n\n\n\n<li>One to Many relationship<\/li>\n\n\n\n<li>Many to Many relationship<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sugar has explained in a detailed manner about SugarCRM <a href=\"https:\/\/support.sugarcrm.com\/Knowledge_Base\/Studio_and_Module_Builder\/Understanding_Relationship_Creation_Options\/\" data-type=\"link\" data-id=\"https:\/\/support.sugarcrm.com\/Knowledge_Base\/Studio_and_Module_Builder\/Understanding_Relationship_Creation_Options\/\">Standard Relationships Options<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The changes we can do using these tools are called configuration changes to the Sugar application. Any trained admin or a tech-savvy business user can do these kinds of changes with good training.<br><strong>Note<\/strong>: SugarCRM offers regular training sessions for administrators. You can access the upcoming programs in <a href=\"https:\/\/sugarclub.sugarcrm.com\/learn\" data-type=\"link\" data-id=\"https:\/\/sugarclub.sugarcrm.com\/learn\">Sugarclub<\/a>.<\/p>\n\n\n\n<h3 id=\"standard-product-catalog-module-relationships\" class=\"wp-block-heading\">Standard Product Catalog Module Relationships<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We can create Many to Many relationships among most of the modules using Studio. But for the Product Catalog module studio does not allow admins to create Many to Many relationship from studio<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please see the screenshot. We don\u2019t have a mechanism to create Many to Many relationships through the studio in the Product Catalog module. In the screenshot, we can see that there is no Many to Many relationship options available.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"376\" src=\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-1024x376.png\" alt=\"Product Catalog Studio for creating relationship\" class=\"wp-image-7672\" srcset=\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-1024x376.png 1024w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-300x110.png 300w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-768x282.png 768w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-380x140.png 380w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-550x202.png 550w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-800x294.png 800w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-600x220.png 600w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog-760x279.png 760w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-studio-bhea-blog.png 1083w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">But in order to have that flexibility to create Many to Many relationships with any other module from the Product Catalog module, we need to do some code-level tweaking. Sugar facilitates an extensive <a href=\"https:\/\/support.sugarcrm.com\/Documentation\/Sugar_Developer\/Sugar_Developer_Guide_11.1\/\" data-type=\"link\" data-id=\"https:\/\/support.sugarcrm.com\/Documentation\/Sugar_Developer\/Sugar_Developer_Guide_11.1\/\">developer manual<\/a> to customize the platform to suit the needs of customers. These changes are called Sugar Customisations. Any developer who has basic knowledge of PHP, SQL, and Javascript can easily understand how to implement customizations in SugarCRM after practicing the <a href=\"https:\/\/support.sugarcrm.com\/Documentation\/Sugar_Developer\/Sugar_Developer_Guide_11.1\/Cookbook\/\" data-type=\"link\" data-id=\"https:\/\/support.sugarcrm.com\/Documentation\/Sugar_Developer\/Sugar_Developer_Guide_11.1\/Cookbook\/\">cookbook <\/a>exercises in the SugarCRM Developer guide.<\/p>\n\n\n\n<h3 id=\"product-bundles-and-parent-child-product-customisation\" class=\"wp-block-heading\">Product Bundles and Parent-Child Product Customisation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">There are often business cases where we need to create bundled products and child products in SugarCRM. For creating the As part of this use case, we should be able to create one to Many \/ Many to Many relationship with the product catalog module with other modules.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"872\" height=\"551\" src=\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog.png\" alt=\"Record View of the Product Catalog\" class=\"wp-image-7673\" srcset=\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog.png 872w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog-300x190.png 300w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog-768x485.png 768w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog-380x240.png 380w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog-550x348.png 550w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog-800x506.png 800w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog-600x379.png 600w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-record-view-bhea-blog-760x480.png 760w\" sizes=\"auto, (max-width: 872px) 100vw, 872px\" \/><\/figure>\n\n\n\n<h4 id=\"step-by-step-guide-to-create-many-to-many-relationship-in-product-catalog-module\" class=\"wp-block-heading\">Step by Step Guide to create \u201cmany-to-many\u201d relationship in Product Catalog Module<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Let us learn step by step process on how to create Many to Many relationship from the studio by adding the small snippets of code in the custom folder in an upgrade safe manner.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In order to achieve this, we have to do the below 4 steps.<\/p>\n\n\n\n<h5 id=\"step-1\" class=\"wp-block-heading is-style-cs-heading-sidebar has-medium-font-size\">Step 1:<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">In this step let us extend the core defaults.php file to the custom path. This code helps to create the subpanel under the Product Catalog module.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please add the below snippet of code in the mentioned path.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>.\/custom\/modules\/ProductTemplates\/metadata\/subpanels\/default.php<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * 1rem);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#242134;color:#cecbee\">PHP<\/span><span role=\"button\" tabindex=\"0\" data-code=\"&lt;?php\n\n$module_name = 'ProductTemplates';\n$subpanel_layout = array(\n    'top_buttons' =&gt; array(\n        array(\n            'widget_class' =&gt; 'SubPanelTopCreateButton'\n        ) ,\n        array(\n            'widget_class' =&gt; 'SubPanelTopSelectButton',\n            'popup_module' =&gt; $module_name\n        ) ,\n    ) ,\n\n    'where' =&gt; '',\n\n    'list_fields' =&gt; array(\n        'name' =&gt; array(\n            'vname' =&gt; 'LBL_NAME',\n            'widget_class' =&gt; 'SubPanelDetailViewLink',\n            'width' =&gt; '45%',\n        ) ,\n        'date_modified' =&gt; array(\n            'vname' =&gt; 'LBL_DATE_MODIFIED',\n            'width' =&gt; '45%',\n        ) ,\n        'edit_button' =&gt; array(\n            'vname' =&gt; 'LBL_EDIT_BUTTON',\n            'widget_class' =&gt; 'SubPanelEditButton',\n            'module' =&gt; $module_name,\n            'width' =&gt; '4%',\n        ) ,\n        'remove_button' =&gt; array(\n            'vname' =&gt; 'LBL_REMOVE',\n            'widget_class' =&gt; 'SubPanelRemoveButton',\n            'module' =&gt; $module_name,\n            'width' =&gt; '5%',\n        ) ,\n    ) ,\n);\n\n?&gt;\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine\" style=\"background-color: #191724\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #31748F\">&lt;?php<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA; font-style: italic\">$<\/span><span style=\"color: #E0DEF4; font-style: italic\">module_name<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;ProductTemplates&#39;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA; font-style: italic\">$<\/span><span style=\"color: #E0DEF4; font-style: italic\">subpanel_layout<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;top_buttons&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;widget_class&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;SubPanelTopCreateButton&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;widget_class&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;SubPanelTopSelectButton&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;popup_module&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA; font-style: italic\">$<\/span><span style=\"color: #E0DEF4; font-style: italic\">module_name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;where&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;list_fields&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;vname&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_NAME&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;widget_class&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;SubPanelDetailViewLink&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;width&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;45%&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #F6C177\">&#39;date_modified&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;vname&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_DATE_MODIFIED&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;width&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;45%&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #F6C177\">&#39;edit_button&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;vname&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_EDIT_BUTTON&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;widget_class&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;SubPanelEditButton&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;module&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA; font-style: italic\">$<\/span><span style=\"color: #E0DEF4; font-style: italic\">module_name<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;width&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;4%&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #F6C177\">&#39;remove_button&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;vname&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_REMOVE&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;widget_class&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;SubPanelRemoveButton&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;module&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA; font-style: italic\">$<\/span><span style=\"color: #E0DEF4; font-style: italic\">module_name<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;width&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;5%&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #31748F\">?&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h5 id=\"step-2\" class=\"wp-block-heading is-style-cs-heading-sidebar has-medium-font-size\">Step 2: <\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">In this step let us extend the subpanel-list to the custom path. This file is used to define the default fields that appear by default when the subpanel is created.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>.\/custom\/modules\/ProductTemplates\/clients\/base\/views\/subpanel-list\/subpanel-list.php<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * 1rem);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#242134;color:#cecbee\">PHP<\/span><span role=\"button\" tabindex=\"0\" data-code=\"&lt;?php\n\n$viewdefs['ProductTemplates']['base']['view']['subpanel-list'] = array(\n    'panels' =&gt; array(\n        array(\n            'name' =&gt; 'panel_header',\n            'label' =&gt; 'LBL_PANEL_1',\n            'fields' =&gt; array(\n                array(\n                    'label' =&gt; 'LBL_NAME',\n                    'enabled' =&gt; true,\n                    'default' =&gt; true,\n                    'name' =&gt; 'name',\n                    'link' =&gt; true,\n                ) ,\n                array(\n                    'label' =&gt; 'LBL_DATE_MODIFIED',\n                    'enabled' =&gt; true,\n                    'default' =&gt; true,\n                    'name' =&gt; 'date_modified',\n                ) ,\n            ) ,\n        ) ,\n    ) ,\n    'orderBy' =&gt; array(\n        'field' =&gt; 'date_modified',\n        'direction' =&gt; 'desc',\n    ) ,\n);\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine\" style=\"background-color: #191724\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #31748F\">&lt;?php<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA; font-style: italic\">$<\/span><span style=\"color: #E0DEF4; font-style: italic\">viewdefs<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #F6C177\">&#39;ProductTemplates&#39;<\/span><span style=\"color: #908CAA\">][<\/span><span style=\"color: #F6C177\">&#39;base&#39;<\/span><span style=\"color: #908CAA\">][<\/span><span style=\"color: #F6C177\">&#39;view&#39;<\/span><span style=\"color: #908CAA\">][<\/span><span style=\"color: #F6C177\">&#39;subpanel-list&#39;<\/span><span style=\"color: #908CAA\">]<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;panels&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;panel_header&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;label&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_PANEL_1&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #F6C177\">&#39;fields&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;label&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_NAME&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;enabled&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;default&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;link&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;label&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_DATE_MODIFIED&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;enabled&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;default&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;date_modified&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;orderBy&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #F6C177\">&#39;field&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;date_modified&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #F6C177\">&#39;direction&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;desc&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h5 id=\"step-3\" class=\"wp-block-heading is-style-cs-heading-sidebar has-medium-font-size\">Step 3: <\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">In this step let us add the code in the layouts path. This file is used to render the actual subpanel widget.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>.\/custom\/modules\/ProductTemplates\/clients\/base\/layouts\/subpanels\/subpanels.php<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(1 * 0.6 * 1rem);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#242134;color:#cecbee\">PHP<\/span><span role=\"button\" tabindex=\"0\" data-code=\"&lt;?php\n$viewdefs['ProductTemplates']['base']['layout']['subpanels'] = array(\n    'components' =&gt; array(),\n);\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine\" style=\"background-color: #191724\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #31748F\">&lt;?php<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA; font-style: italic\">$<\/span><span style=\"color: #E0DEF4; font-style: italic\">viewdefs<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #F6C177\">&#39;ProductTemplates&#39;<\/span><span style=\"color: #908CAA\">][<\/span><span style=\"color: #F6C177\">&#39;base&#39;<\/span><span style=\"color: #908CAA\">][<\/span><span style=\"color: #F6C177\">&#39;layout&#39;<\/span><span style=\"color: #908CAA\">][<\/span><span style=\"color: #F6C177\">&#39;subpanels&#39;<\/span><span style=\"color: #908CAA\">]<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;components&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #908CAA\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">After adding these 3 files in the paths mentioned, please give and make sure that your SugarCRM root directory has proper ownership and permissions. Once it is done, please go to the admin section and perform the Quick Repair and Rebuild.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the Repair is completely done we can go to the studio and check whether you are able to see the Many to Many relationship option in the Product Catalog module or not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hurray!!! Now you will be able to see the ability to create Many to Many relationship in the Product Catalog module with any other stock\/custom module. Please see the below screenshot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"251\" src=\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-1024x251.png\" alt=\"Product Catalog Subpanel\" class=\"wp-image-7671\" srcset=\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-1024x251.png 1024w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-300x74.png 300w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-768x189.png 768w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-380x93.png 380w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-550x135.png 550w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-800x196.png 800w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-1160x285.png 1160w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-600x147.png 600w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-760x187.png 760w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-1100x270.png 1100w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog-1200x295.png 1200w, https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/10\/product-catalog-subpanel-bhea-blog.png 1230w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We are not done yet. Now we can try creating the Many to Many Relationship from the Product Catalog module with any module. You will be able to create it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now go to the related module which module you have selected as a secondary module while creating the M-M relationship. Try arranging the layout for the Product Catalog module under the Subpanels section of the related module.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The user can easily drag and drop the fields from the Hidden section to the Default section in the layout and do <strong>Save &amp; Deploy.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even after Save &amp; Deploy you will not be able to see the fields in the layout. Don\u2019t worry here, we need to do one more small thing. When we have done the layout arrangement it creates a file in the below path with the relationship name.<\/p>\n\n\n\n<h5 id=\"step-4\" class=\"wp-block-heading is-style-cs-heading-sidebar has-medium-font-size\">Step 4:<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">When we are creating the relationship between two modules it creates the file in the below-mentioned path. The relationship name varies based on the secondary module we have selected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The code in this path is used to render the fields in the actual subpanel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>.\/custom\/modules\/ProductTemplates\/clients\/base\/views\/subpanel-for-relationshipname\/relationshipname.php<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please add the below code after this parameter \u2018type\u2019 =&gt; \u2018subpanel-list\u2019,<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * 1rem);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#242134;color:#cecbee\">PHP<\/span><span role=\"button\" tabindex=\"0\" data-code=\"'panels' =&gt; \n  array (\n    0 =&gt; \n    array (\n      'name' =&gt; 'panel_header',\n      'label' =&gt; 'LBL_PANEL_1',\n      'fields' =&gt; \n      array (\n        0 =&gt; \n        array (\n          'label' =&gt; 'LBL_NAME',\n          'enabled' =&gt; true,\n          'default' =&gt; true,\n          'name' =&gt; 'name',\n          'link' =&gt; true,\n        ),\n      ),\n    ),\n  ),\n  'orderBy' =&gt; \n  array (\n    'field' =&gt; 'date_modified',\n    'direction' =&gt; 'desc',\n  ),\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine\" style=\"background-color: #191724\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6C177\">&#39;panels&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EBBCBA\">0<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;panel_header&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #F6C177\">&#39;label&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_PANEL_1&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #F6C177\">&#39;fields&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #EBBCBA\">0<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #F6C177\">&#39;label&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;LBL_NAME&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #F6C177\">&#39;enabled&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #F6C177\">&#39;default&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;name&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #F6C177\">&#39;link&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EBBCBA\">true<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #908CAA\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #908CAA\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #908CAA\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #F6C177\">&#39;orderBy&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #EB6F92; font-style: italic\">array<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;field&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;date_modified&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #F6C177\">&#39;direction&#39;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #31748F\">=&gt;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#39;desc&#39;<\/span><span style=\"color: #908CAA\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #908CAA\">),<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Once added to this code, give ownership and permissions to the Sugar Root Folder. Go to the Admin section and perform the <strong>Quick and Repair Rebuild<\/strong>. Once done we are all set. Go to the studio and arrange the Product Catalog module layout under the related module as per your needs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>That\u2019s all we are done!!!!!!!!!<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bhea is an Advanced Partner for SugarCRM and provides services like SugarCRM Training, Consultation, Installation, Maintenance, and Deployment. Our Admin Training covers extensive sessions on Studio, Module Builder, Role Management, Team Management, and all admin basics required for SugarCRM administrator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Contact us through our website: <a href=\"https:\/\/www.bhea.com\/contact-us\">https:\/\/www.bhea.com\/contact-us<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"SugarCRM Module Relationships SugarCRM has few developer tools which makes the admin user\u2019s life simpler. Sugar has one&hellip;\n","protected":false},"author":4,"featured_media":7383,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"two_page_speed":[],"csco_singular_sidebar":"","csco_page_header_type":"","csco_appearance_masonry":"","csco_page_load_nextpost":"","csco_post_video_location":[],"csco_post_video_location_hash":"","csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"footnotes":""},"categories":[43],"tags":[49,87,47,88,86],"class_list":["post-5997","post","type-post","status-publish","format-standard","has-post-thumbnail","category-sugarcrm-development","tag-crm-implementation","tag-custom-modules","tag-sugarcrm","tag-sugarcrm-customisation","tag-sugarcrm-development","cs-entry","cs-video-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Create many to many relationships in SugarCRM Product Catalog<\/title>\n<meta name=\"description\" content=\"SugarCRM Developer Tutorial to add many to many relationship product catalog module. Learn to develop SugarCRM.\" \/>\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.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create many to many relationships in SugarCRM Product Catalog\" \/>\n<meta property=\"og:description\" content=\"SugarCRM Developer Tutorial to add many to many relationship product catalog module. Learn to develop SugarCRM.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/\" \/>\n<meta property=\"og:site_name\" content=\"Bhea Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/bheatech\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-18T02:22:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-13T09:55:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1272\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ramya Katram\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bheacrm\" \/>\n<meta name=\"twitter:site\" content=\"@bheacrm\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ramya Katram\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/\"},\"author\":{\"name\":\"Ramya Katram\",\"@id\":\"https:\/\/bhea.com\/blog\/#\/schema\/person\/f00e449036a375e445c793649186c0fa\"},\"headline\":\"SugarCRM Developer Tutorial on Creating Many-to-Many Relationship in Product Catalogue Module\",\"datePublished\":\"2021-08-18T02:22:46+00:00\",\"dateModified\":\"2025-01-13T09:55:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/\"},\"wordCount\":948,\"publisher\":{\"@id\":\"https:\/\/bhea.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png\",\"keywords\":[\"crm implementation\",\"Custom Modules\",\"SugarCRM\",\"SugarCRM Customisation\",\"SugarCRM Development\"],\"articleSection\":[\"SugarCRM Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/\",\"url\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/\",\"name\":\"Create many to many relationships in SugarCRM Product Catalog\",\"isPartOf\":{\"@id\":\"https:\/\/bhea.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png\",\"datePublished\":\"2021-08-18T02:22:46+00:00\",\"dateModified\":\"2025-01-13T09:55:49+00:00\",\"description\":\"SugarCRM Developer Tutorial to add many to many relationship product catalog module. Learn to develop SugarCRM.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage\",\"url\":\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png\",\"contentUrl\":\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png\",\"width\":1920,\"height\":1272},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.bhea.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SugarCRM Developer Tutorial on Creating Many-to-Many Relationship in Product Catalogue Module\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/bhea.com\/blog\/#website\",\"url\":\"https:\/\/bhea.com\/blog\/\",\"name\":\"Bhea Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/bhea.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/bhea.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/bhea.com\/blog\/#organization\",\"name\":\"Bhea Technologies Pte Ltd\",\"url\":\"https:\/\/bhea.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/bhea.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/05\/Bhea_blog_logo.png\",\"contentUrl\":\"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/05\/Bhea_blog_logo.png\",\"width\":1918,\"height\":460,\"caption\":\"Bhea Technologies Pte Ltd\"},\"image\":{\"@id\":\"https:\/\/bhea.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/bheatech\",\"https:\/\/x.com\/bheacrm\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/bhea.com\/blog\/#\/schema\/person\/f00e449036a375e445c793649186c0fa\",\"name\":\"Ramya Katram\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/bhea.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64adc14f239923d2d69d93ddaba92b6e9e6450fb23301d04601744079db39f04?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64adc14f239923d2d69d93ddaba92b6e9e6450fb23301d04601744079db39f04?s=96&d=mm&r=g\",\"caption\":\"Ramya Katram\"},\"url\":\"https:\/\/www.bhea.com\/blog\/author\/ramya-katram\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create many to many relationships in SugarCRM Product Catalog","description":"SugarCRM Developer Tutorial to add many to many relationship product catalog module. Learn to develop SugarCRM.","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.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/","og_locale":"en_US","og_type":"article","og_title":"Create many to many relationships in SugarCRM Product Catalog","og_description":"SugarCRM Developer Tutorial to add many to many relationship product catalog module. Learn to develop SugarCRM.","og_url":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/","og_site_name":"Bhea Blog","article_publisher":"https:\/\/www.facebook.com\/bheatech","article_published_time":"2021-08-18T02:22:46+00:00","article_modified_time":"2025-01-13T09:55:49+00:00","og_image":[{"width":1920,"height":1272,"url":"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png","type":"image\/png"}],"author":"Ramya Katram","twitter_card":"summary_large_image","twitter_creator":"@bheacrm","twitter_site":"@bheacrm","twitter_misc":{"Written by":"Ramya Katram","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#article","isPartOf":{"@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/"},"author":{"name":"Ramya Katram","@id":"https:\/\/bhea.com\/blog\/#\/schema\/person\/f00e449036a375e445c793649186c0fa"},"headline":"SugarCRM Developer Tutorial on Creating Many-to-Many Relationship in Product Catalogue Module","datePublished":"2021-08-18T02:22:46+00:00","dateModified":"2025-01-13T09:55:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/"},"wordCount":948,"publisher":{"@id":"https:\/\/bhea.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png","keywords":["crm implementation","Custom Modules","SugarCRM","SugarCRM Customisation","SugarCRM Development"],"articleSection":["SugarCRM Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/","url":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/","name":"Create many to many relationships in SugarCRM Product Catalog","isPartOf":{"@id":"https:\/\/bhea.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage"},"image":{"@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png","datePublished":"2021-08-18T02:22:46+00:00","dateModified":"2025-01-13T09:55:49+00:00","description":"SugarCRM Developer Tutorial to add many to many relationship product catalog module. Learn to develop SugarCRM.","breadcrumb":{"@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#primaryimage","url":"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png","contentUrl":"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/08\/bhea-sugarcrm-tutorial-one-to-many-relationship.png","width":1920,"height":1272},{"@type":"BreadcrumbList","@id":"https:\/\/www.bhea.com\/blog\/sugarcrm-developer-tutorial-on-creating-many-to-many-relationship-with-product-catalog\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bhea.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SugarCRM Developer Tutorial on Creating Many-to-Many Relationship in Product Catalogue Module"}]},{"@type":"WebSite","@id":"https:\/\/bhea.com\/blog\/#website","url":"https:\/\/bhea.com\/blog\/","name":"Bhea Blog","description":"","publisher":{"@id":"https:\/\/bhea.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bhea.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/bhea.com\/blog\/#organization","name":"Bhea Technologies Pte Ltd","url":"https:\/\/bhea.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bhea.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/05\/Bhea_blog_logo.png","contentUrl":"https:\/\/www.bhea.com\/blog\/wp-content\/uploads\/2024\/05\/Bhea_blog_logo.png","width":1918,"height":460,"caption":"Bhea Technologies Pte Ltd"},"image":{"@id":"https:\/\/bhea.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/bheatech","https:\/\/x.com\/bheacrm"]},{"@type":"Person","@id":"https:\/\/bhea.com\/blog\/#\/schema\/person\/f00e449036a375e445c793649186c0fa","name":"Ramya Katram","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bhea.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64adc14f239923d2d69d93ddaba92b6e9e6450fb23301d04601744079db39f04?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64adc14f239923d2d69d93ddaba92b6e9e6450fb23301d04601744079db39f04?s=96&d=mm&r=g","caption":"Ramya Katram"},"url":"https:\/\/www.bhea.com\/blog\/author\/ramya-katram\/"}]}},"_links":{"self":[{"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/posts\/5997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/comments?post=5997"}],"version-history":[{"count":8,"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/posts\/5997\/revisions"}],"predecessor-version":[{"id":7890,"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/posts\/5997\/revisions\/7890"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/media\/7383"}],"wp:attachment":[{"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/media?parent=5997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/categories?post=5997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bhea.com\/blog\/wp-json\/wp\/v2\/tags?post=5997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}