Factorizer/Cluster ERP WikiCluster ERP Türkçe
Home / Business modules

Reference

Addresses reference

Reference for parties/addresses, the structured addresses of a party built from country address levels, with their routes and rules.

This page lists the fields, routes, and rules of the addresses sub-module in src/cluster_erp/modules/parties/addresses/. An address belongs to one party and one country, and it is built from components that point at the country's address levels and their values. The levels and values themselves are reference data, described on settings and reference data.

Scope and source

  • Defined in: src/cluster_erp/modules/parties/addresses/models.py (Address, AddressComponent), schemas.py (AddressType, AddressCreate, AddressUpdate), services.py (AddressService), routes.py; metadata ADDRESS_META in src/cluster_erp/modules/parties/parties/metadata.py:1181.
  • Count: 2 tables; 7 routes (@router. decorators in routes.py); 7 address types (members of AddressType).

Address fields

Name Type Default Meaning Source
code String(20), unique from sequence address Business key src/cluster_erp/modules/parties/addresses/models.py:19, src/cluster_erp/modules/parties/addresses/services.py:57
party_id FK to parties_parties.id none Owning party src/cluster_erp/modules/parties/addresses/models.py:20-22
country_id FK to parties_countries.id none Country of the address src/cluster_erp/modules/parties/addresses/models.py:23-27
address_type String(30) none One of billing, shipping, headquarters, branch, home, work, other src/cluster_erp/modules/parties/addresses/models.py:28, src/cluster_erp/modules/parties/addresses/schemas.py:10-17
label String(100) none Short name of the address src/cluster_erp/modules/parties/addresses/models.py:29
street_line_1, street_line_2 String(500) none Street lines src/cluster_erp/modules/parties/addresses/models.py:30-31
postal_code String(20) none Postal code src/cluster_erp/modules/parties/addresses/models.py:32
full_text Text computed One-line text built by the service src/cluster_erp/modules/parties/addresses/models.py:33, src/cluster_erp/modules/parties/addresses/services.py:194-208
is_primary bool False Primary address of the party src/cluster_erp/modules/parties/addresses/models.py:34
is_active bool True Active flag src/cluster_erp/modules/parties/addresses/models.py:35

Address components

Name Type Meaning Source
address_id FK to parties_addresses.id The address src/cluster_erp/modules/parties/addresses/models.py:47-51
address_level_id FK to parties_address_levels.id The level, for example a province src/cluster_erp/modules/parties/addresses/models.py:52-56
level_value_id FK to parties_address_level_values.id The chosen value at that level src/cluster_erp/modules/parties/addresses/models.py:57-61

Routes

All paths are under /api/v1/parties.

Method and path Purpose Permission Source
GET /addresses/all Page of addresses across parties; filters search, party_id, address_type address.read src/cluster_erp/modules/parties/addresses/routes.py:29-89
GET /{party_id}/addresses Addresses of one party address.read src/cluster_erp/modules/parties/addresses/routes.py:92-101
POST /{party_id}/addresses Create address.create src/cluster_erp/modules/parties/addresses/routes.py:104-116
GET /addresses/{address_id} One address address.read src/cluster_erp/modules/parties/addresses/routes.py:119-129
PUT /addresses/{address_id} Update address.update src/cluster_erp/modules/parties/addresses/routes.py:132-143
POST /addresses/bulk-delete Soft-delete several address.bulk_delete src/cluster_erp/modules/parties/addresses/routes.py:146-154
DELETE /addresses/{address_id} Soft-delete one address.delete src/cluster_erp/modules/parties/addresses/routes.py:157-165

The party_id and address_type filters of GET /addresses/all serve the dependent delivery-address picker of other forms: a selected party shows only its addresses of one type (src/cluster_erp/modules/parties/addresses/services.py:156-161).

Constraints and validation

  • Setting is_primary on create or update clears the flag on the party's other live addresses (src/cluster_erp/modules/parties/addresses/services.py:54-55, src/cluster_erp/modules/parties/addresses/services.py:92-93, src/cluster_erp/modules/parties/addresses/services.py:184-192).
  • An update that sends components soft-deletes the old components and inserts the new ones (src/cluster_erp/modules/parties/addresses/services.py:100-111).
  • full_text joins the component values (sorted by address_level_id), the street lines, and the postal code with commas, and is rebuilt after every create and update (src/cluster_erp/modules/parties/addresses/services.py:82, src/cluster_erp/modules/parties/addresses/services.py:114, src/cluster_erp/modules/parties/addresses/services.py:194-208).
  • The cross-party list excludes addresses of deleted parties (src/cluster_erp/modules/parties/addresses/services.py:142-154).
  • Other modules read addresses through GetAddressById and GetPartyPrimaryAddress. The second returns the primary address of the requested type, else any primary address, else the oldest live one (src/cluster_erp/modules/parties/module.py:227-269).

Terms introduced

Term Code identifier Definition Turkish term Source
address component AddressComponent One level value of an address, for example its province or district. Adres bileşeni src/cluster_erp/modules/parties/addresses/models.py:44
primary address is_primary The single address a party marks as its main one. Birincil adres src/cluster_erp/modules/parties/addresses/models.py:34

Verified against commit 92f8051 on 2026-11-13.

Verified against commit 92f8051 · 2026-11-13