{"id":17633,"date":"2026-01-29T12:00:14","date_gmt":"2026-01-29T12:00:14","guid":{"rendered":"https:\/\/tenthplanet.in\/idempiere\/?p=17633"},"modified":"2026-01-29T12:00:17","modified_gmt":"2026-01-29T12:00:17","slug":"how-customer-locations-and-contract-prices-work-in-idempiere","status":"publish","type":"post","link":"https:\/\/tenthplanet.in\/idempiere\/how-customer-locations-and-contract-prices-work-in-idempiere\/","title":{"rendered":"How Customer Locations and Contract Prices Work in iDempiere"},"content":{"rendered":"\n<p>This guide explains how <strong>Customer Locations<\/strong> and <strong>Contract Prices<\/strong> work together in iDempiere to control delivery, billing, and customer-specific pricing. Though configured separately, both apply automatically during sales orders, shipments, and invoices without manual intervention.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Customer Locations<\/strong><\/h2>\n\n\n\n<p>Customer Locations represent all valid addresses associated with a customer. Each location can serve a different purpose in the sales lifecycle, such as delivery, invoicing, or payment settlement. A single customer can have multiple locations, and each location can be activated or deactivated independently.<\/p>\n\n\n\n<p>When a Sales Order is created, iDempiere selects the appropriate customer location based on its address roles. These roles determine <strong>where goods are shipped<\/strong>, <strong>where invoices are sent<\/strong>, and <strong>which address is used for financial settlement<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"558\" src=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices.png\" alt=\"\" class=\"wp-image-17634\" srcset=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices.png 1024w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices-300x163.png 300w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices-768x419.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Each location is tied directly to the Business Partner and becomes selectable in Sales Orders, Shipments, and Invoices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key Location Configuration<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong><br>Logical name for the address (e.g., Chennai, Bangalore Warehouse)<\/li>\n\n\n\n<li><strong>Address<\/strong><br>Full postal address used on documents and logistics<\/li>\n\n\n\n<li><strong>Ship Address<\/strong><br>Used for <strong>Shipment and Delivery<\/strong> documents<\/li>\n\n\n\n<li><strong>Invoice Address<\/strong><br>Used for <strong>Invoice generation<\/strong><\/li>\n\n\n\n<li><strong>Pay-From Address<\/strong><br>Used when customer makes payments<\/li>\n\n\n\n<li><strong>Remit-To Address<\/strong><br>Used for accounting settlement references<\/li>\n\n\n\n<li><strong>Sales Region<\/strong><br>Used for <strong>regional reporting and sales analysis<\/strong><\/li>\n\n\n\n<li><strong>Active<\/strong><br>Controls whether the address is selectable in transactions<\/li>\n<\/ul>\n\n\n\n<p>A customer location marked as <strong>Ship Address<\/strong> will automatically appear in the Sales Order shipping section. If multiple locations exist, users can choose the appropriate one for per order.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contract Prices<\/strong><\/h2>\n\n\n\n<p>Contract Prices define <strong>customer-specific pricing agreements<\/strong> for products. These prices override the standard price list when a Sales Order is created for the customer. Contract Prices are optional but critical when pricing differs by customer, volume, or agreement.<\/p>\n\n\n\n<p>Contract Prices are evaluated <strong>after the Price List<\/strong> and <strong>before manual price overrides<\/strong>, ensuring consistent pricing enforcement.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"465\" src=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices-1.png\" alt=\"\" class=\"wp-image-17635\" srcset=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices-1.png 1024w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices-1-300x136.png 300w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/01\/TenthPlanet-iDempiere-Master-CustomerLocationContractPrices-1-768x349.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Each Contract Price is linked to a specific <strong>Customer + Product<\/strong> combination and can be time-bound.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key Contract Price Configuration<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Product<\/strong><br>The product for which the special price applies<\/li>\n\n\n\n<li><strong>Valid From \/ Valid To<\/strong><br>Controls the effective period of the contract price<\/li>\n\n\n\n<li><strong>Price Override Type<\/strong><br>Determines how pricing is applied (fixed price or discount)<\/li>\n\n\n\n<li><strong>Break Value<\/strong><br>Quantity threshold for volume-based pricing<\/li>\n\n\n\n<li><strong>Active<\/strong><br>Controls whether the contract price is applied<\/li>\n<\/ul>\n\n\n\n<p>Once saved, the Contract Price requires no manual selection. iDempiere automatically applies it during Sales Order line entry if conditions match.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How These Two Work Together in Sales Flow<\/strong><\/h2>\n\n\n\n<p>When a Sales Order is created, iDempiere first resolves the <strong>Customer Location<\/strong> to determine logistics and billing addresses. Immediately after, it evaluates <strong>Contract Prices<\/strong> to determine the correct product pricing. If a matching Contract Price exists for the selected product and date range, the system replaces the standard price list value automatically. The user does not need to select or confirm the contract price manually.<\/p>\n\n\n\n<p>This ensures that <strong>delivery, billing, and pricing rules are consistently enforced<\/strong> across all downstream documents such as Shipment, Invoice, and Payment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Purpose and Use Cases<\/strong><\/h2>\n\n\n\n<p>Customer Locations allow businesses to manage customers with <strong>multiple branches, warehouses, or billing offices<\/strong> without duplicating customer records. Contract Prices enable sales teams to honor negotiated pricing while maintaining centralized price control.<\/p>\n\n\n\n<p>Common use cases include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Supplying goods to different branch locations under one customer<\/li>\n\n\n\n<li>Offering special prices to key customers or distributors<\/li>\n\n\n\n<li>Managing regional delivery and billing requirements<\/li>\n\n\n\n<li>Preventing pricing errors during order entry<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Outcome<\/strong><\/h2>\n\n\n\n<p>Once Customer Locations and Contract Prices are correctly configured:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sales Orders automatically use the <strong>correct delivery and invoice address<\/strong><\/li>\n\n\n\n<li>Product prices are <strong>applied accurately without manual overrides<\/strong><\/li>\n\n\n\n<li>Shipments and invoices remain <strong>consistent and audit-ready<\/strong><\/li>\n\n\n\n<li>Sales teams work faster with <strong>zero pricing ambiguity<\/strong><\/li>\n\n\n\n<li>Accounting and logistics operate on <strong>clean, structured master data<\/strong><\/li>\n<\/ul>\n\n\n\n<p>This setup ensures that <strong>customer-specific logistics and pricing are enforced by the system<\/strong>, not dependent on user judgement.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide explains how Customer Locations and Contract Prices work together in iDempiere to control delivery, billing, and customer-specific pricing. [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-17633","post","type-post","status-publish","format-standard","hentry","category-master"],"acf":[],"_links":{"self":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts\/17633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/comments?post=17633"}],"version-history":[{"count":0,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts\/17633\/revisions"}],"wp:attachment":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/media?parent=17633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/categories?post=17633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/tags?post=17633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}