{"id":32180,"date":"2026-05-29T10:20:16","date_gmt":"2026-05-29T10:20:16","guid":{"rendered":"https:\/\/www.greytrix.com\/blogs\/sagex3\/?p=32180"},"modified":"2026-05-29T10:55:03","modified_gmt":"2026-05-29T10:55:03","slug":"automating-po-pricing-in-sage-x3","status":"publish","type":"post","link":"https:\/\/www.greytrix.com\/blogs\/sagex3\/2026\/05\/29\/automating-po-pricing-in-sage-x3\/","title":{"rendered":"Automating PO Pricing in Sage X3"},"content":{"rendered":"\n<p>Managing accurate pricing in purchase transactions is essential for maintaining cost control and consistency. In <a href=\"https:\/\/www.greytrix.com\/sage-x3-erp\/development-services\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.greytrix.com\/sage-x3-erp\/development-services\/\" rel=\"noreferrer noopener\">Sage X3<\/a>, the Price List functionality allows businesses to automate pricing in Purchase Orders based on predefined conditions. One of the most useful features is the ability to define prices based on a <strong>Supplier\u2013Product combination<\/strong>, ensuring that the correct gross price is automatically applied during Purchase Order entry.<\/p>\n\n\n\n<p>In this blog, we\u2019ll walk through how to maintain supplier-specific price lists and how they influence the gross price in Purchase Orders.<br>In Sage X3, price lists can be configured to apply under different conditions. For purchasing, the <strong>T20 Supplier\/Product Price List <\/strong>is specifically designed to handle pricing based on a combination of supplier and product.<\/p>\n\n\n\n<p>This reduces manual intervention and minimizes pricing errors.<\/p>\n\n\n\n<p>To maintain these price lists, follow the navigation path below:<\/p>\n\n\n\n<p><strong>Path:<\/strong><br>Go To \u2192 Purchasing \u2192 Price Lists \u2192 Price List Entry<br>Within this section, select the <strong>T20 Supplier\/Product Price List<\/strong> type.<\/p>\n\n\n\n<p><strong>New Stuff: <\/strong><a href=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/2026\/05\/29\/how-we-fixed-sage-x3-workflow-notification-emails-not-sending-after-user-approval\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/2026\/05\/29\/how-we-fixed-sage-x3-workflow-notification-emails-not-sending-after-user-approval\/\" rel=\"noreferrer noopener\">How We Fixed Sage X3 Workflow Notification Emails Not Sending After User Approval<\/a><\/p>\n\n\n\n<center><a href=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-1.-Purchase-Price-List-1024x461.jpg\" target=\"_blank\" rel=\"noreferrer \nnoopener\"><img decoding=\"async\" class=\"size-full\" style=\"border: 1px solid #A9A9A9; padding: 2px; margin: 2px; \nalign: center;\" src=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-1.-Purchase-Price-List-1024x461.jpg\" alt=\"[Fig 1. Purchase Price List]\"><\/a><\/center> \n<font size=\"2\"><center>[Fig 1. Purchase Price List]<\/center><\/font>\n\n\n\n<p>To better understand how the Supplier\u2013Product Price List works in Sage X3, let\u2019s look at a practical example.<\/p>\n\n\n\n<p>In the Price List Entry screen, we have selected:<br>\u2022<strong>Supplier: <\/strong>SCP0093<br>\u2022<strong>Product:<\/strong> FG-BLOWER-0001<br>\u2022<strong>Gross Price: 1200<\/strong><\/p>\n\n\n\n<p>Now, when we create a Purchase Order using the same <strong>Supplier (SCP0093) <\/strong>and <strong>Product (FG-BLOWER-0001)<\/strong>, the system automatically retrieves the predefined price from the price list. As a result, the <strong>gross price of 1200 <\/strong>is directly populated in the Purchase Order line.<\/p>\n\n\n\n<p>This confirms that the pricing is successfully flowing from the price list into the transaction without requiring manual entry. Refer Fig. 2.<\/p>\n\n\n\n<center><a href=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-2.-Purchase-Order-1-1024x524.jpg\" target=\"_blank\" rel=\"noreferrer \nnoopener\"><img decoding=\"async\" class=\"size-full\" style=\"border: 1px solid #A9A9A9; padding: 2px; margin: 2px; \nalign: center;\" src=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-2.-Purchase-Order-1-1024x524.jpg\" alt=\"G[Fig 2. Purchase Order - 1]\"><\/a><\/center> \n<font size=\"2\"><center>[Fig 2. Purchase Order &#8211; 1]<\/center><\/font>\n\n\n\n<p><strong>Condition 1: Price Derivation from Last Purchase Order<\/strong><\/p>\n\n\n\n<p>In scenarios where a <strong>Supplier\u2013Product price combination <\/strong>is not maintained in the <strong>T20 Supplier\/Product Price List<\/strong>, Sage X3 provides a fallback mechanism to ensure that pricing is still populated in the Purchase Order.<\/p>\n\n\n\n<p>Under this condition, the system automatically retrieves the <strong>gross price from the most recent Purchase Order <\/strong>created for the same:<br><strong>\u2022Supplier<br>\u2022Product<\/strong><\/p>\n\n\n\n<p>This helps maintain continuity in pricing and reduces the need for manual data entry, especially when price list records are not available.<\/p>\n\n\n\n<center><a href=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-3.-Purchase-Order-2-1024x520.jpg\" target=\"_blank\" rel=\"noreferrer \nnoopener\"><img decoding=\"async\" class=\"size-full\" style=\"border: 1px solid #A9A9A9; padding: 2px; margin: 2px; \nalign: center;\" src=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-3.-Purchase-Order-2-1024x520.jpg\" alt=\"[Fig 3. Purchase Order - 2]\"><\/a><\/center> \n<font size=\"2\"><center>[Fig 3. Purchase Order &#8211; 2]<\/center><\/font>\n\n\n\n<p><strong>Example for Condition 1: Using Last Purchase Order Price<\/strong><\/p>\n\n\n\n<p>As shown in <strong>Fig. 3<\/strong>, we have created a Purchase Order for the first time with the following details:<br>\u2022<strong>Product: FG<\/strong>-BLOWER-0002<br>\u2022<strong>Supplier:<\/strong> SCP0093<br>\u2022<strong>Gross Price Entered: <\/strong>100<\/p>\n\n\n\n<p>Since this is the first transaction for this Supplier\u2013Product combination and no price list entry exists, the user has manually entered the price.<\/p>\n\n\n\n<p><strong>Creating a Subsequent Purchase Order<\/strong><\/p>\n\n\n\n<p>Now, when we create another Purchase Order using the same <strong>Product (FG-BLOWER-0002) <\/strong>and S<strong>upplier (SCP0093)<\/strong>, the system will automatically pick the <strong>gross price from the last Purchase Order<\/strong>, which is <strong>100<\/strong>, and populate it in the new transaction.<\/p>\n\n\n\n<center><a href=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-4.-Purchase-Order-3-1024x520.jpg\" target=\"_blank\" rel=\"noreferrer \nnoopener\"><img decoding=\"async\" class=\"size-full\" style=\"border: 1px solid #A9A9A9; padding: 2px; margin: 2px; \nalign: center;\" src=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-content\/uploads\/2026\/05\/Fig-4.-Purchase-Order-3-1024x520.jpg\" alt=\"[Fig 4. Purchase Order - 3]\"><\/a><\/center> \n<font size=\"2\"><center>[Fig 4. Purchase Order &#8211; 3]<\/center><\/font>\n\n\n\n<p>As shown in Fig. 4, for the product FG-BLOWER-0002, the gross price 100 is automatically populated in the Purchase Order.<\/p>\n\n\n\n<p>This happens because the system identifies that the same Supplier\u2013Product combination was used in a previous Purchase Order, where the price 100 was entered. Since no price list entry exists for this combination, Sage X3 retrieves the price from the last transaction and applies it to the current Purchase Order.<\/p>\n\n\n\n<p><strong>Condition 2: No Price List and No Previous Purchase Order<\/strong><\/p>\n\n\n\n<p>In this scenario, when a <strong>Supplier\u2013Product combination <\/strong>is neither maintained in the <strong>T20 Supplier\/Product Price List <\/strong>nor exists in any previous Purchase Order, the system is unable to derive a price automatically.<\/p>\n\n\n\n<p><strong>Example:<\/strong><\/p>\n\n\n\n<p>As shown in <strong>Fig. 4<\/strong>, in the second line:<br>\u2022<strong>Product: <\/strong>FG-BLOWER-0003<br>\u2022This product <strong>is not available in the price list<\/strong>.<br>\u2022There is also <strong>no previous Purchase Order<\/strong> for this Supplier\u2013Product combination.<\/p>\n\n\n\n<p>Therefore, the system does not fetch any price, and we have <strong>manually entered the price<\/strong> for this product.<\/p>\n\n\n\n<p>Overall, this layered pricing approach helps organizations streamline their purchasing process, minimize errors, and maintain better control over procurement costs while still providing the flexibility to handle exceptions when needed.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Managing accurate pricing in purchase transactions is essential for maintaining cost control and consistency. In Sage X3, the Price List functionality allows businesses to automate pricing in Purchase Orders based on predefined conditions. One of the most useful features is the ability to define prices based on a Supplier\u2013Product combination, ensuring that the correct gross\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.greytrix.com\/blogs\/sagex3\/2026\/05\/29\/automating-po-pricing-in-sage-x3\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,13],"tags":[3700,937,4297,1511,1534,1565,2211],"class_list":["post-32180","post","type-post","status-publish","format-standard","hentry","category-sage-erp-x3","category-integration","tag-automatically","tag-gross-price","tag-manually","tag-price-list","tag-product","tag-purchase-order","tag-supplier"],"_links":{"self":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/posts\/32180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/comments?post=32180"}],"version-history":[{"count":7,"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/posts\/32180\/revisions"}],"predecessor-version":[{"id":32187,"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/posts\/32180\/revisions\/32187"}],"wp:attachment":[{"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/media?parent=32180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/categories?post=32180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.greytrix.com\/blogs\/sagex3\/wp-json\/wp\/v2\/tags?post=32180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}