Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / API referansı

API

CRM API (crm)

/api/v1/crm altındaki crm modülünün HTTP uç noktaları: yetkiler, şemalar, durum kodları ve hata kodlarıyla 57 yol.

crm modülü müşterileri, müşteri parçalarını ve revizyonlarını, kalemleri, kalem malzemeleri ve paketleriyle müşteri teklif taleplerini ve CRM gelen kutusunu sunar. 57 uç noktanın tamamı /api/v1/crm altındadır. İş anlamı için CRM modülü sayfasına bakın.

Grup olguları

Öğe Değer Kaynak
Temel yol /api/v1/crm src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/crm/module.py:65
Yönlendiriciler 7 dosyada 7 yönlendirici nesnesi; Uç nokta özeti bölümünde listelenir src/cluster_erp/modules/crm/module.py:39
Uç noktalar 57; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı src/cluster_erp/modules/crm/customer_part_revisions/routes.py, src/cluster_erp/modules/crm/customer_parts/routes.py, src/cluster_erp/modules/crm/customers/routes.py ...
Kimlik doğrulama Bearer başlığı veya oturum çerezi, get_current_user ile çözülür; bkz. Kimlik doğrulama ve başlıklar src/cluster_erp/modules/auth/guards.py:85-167
Yetki koruması 57 yolun 57 tanesi require_permission bildirir src/cluster_erp/modules/auth/guards.py:205-240
Uygulama yetkilendirme kapısı bağlanan her yönlendiricide require_app("crm") src/cluster_erp/modules/crm/module.py:74
Hata biçimi JSON gövdesi {"error": {...}}; bkz. Hatalar src/cluster_erp/server/error_handler.py:33-46

Uç nokta özeti

Alt modül klasörü başına bir satır. Yönlendirici öneki temel yola eklenir.

Alt modül Yönlendiriciler Uç noktalar Yönlendirici kaynağı
customers router 6 src/cluster_erp/modules/crm/customers/routes.py:28
customer_parts router 6 src/cluster_erp/modules/crm/customer_parts/routes.py:27
customer_part_revisions router 7 src/cluster_erp/modules/crm/customer_part_revisions/routes.py:21
rfqs router 18 src/cluster_erp/modules/crm/rfqs/routes.py:36
rfq_line_items router 6 src/cluster_erp/modules/crm/rfq_line_items/routes.py:20
rfq_line_materials router 6 src/cluster_erp/modules/crm/rfq_line_materials/routes.py:26
inbox router 8 src/cluster_erp/modules/crm/inbox/routes.py:22

Müşteriler uç noktaları

Müşteri kayıtları. Bu modüldeki yönlendiricilerin kendi öneki yoktur; her yol kendi kaynak bölümüyle başlar.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/crm/customers/ list_customers customer.read yok search, active_only, party_id, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/crm/customers/routes.py:37
POST /api/v1/crm/customers/ create_customer customer.create CustomerCreate yok CustomerRead 201 src/cluster_erp/modules/crm/customers/routes.py:73
GET /api/v1/crm/customers/{customer_id} get_customer customer.read yok yok CustomerRead 200 (varsayılan) src/cluster_erp/modules/crm/customers/routes.py:92
PUT /api/v1/crm/customers/{customer_id} update_customer customer.update CustomerUpdate yok CustomerRead 200 (varsayılan) src/cluster_erp/modules/crm/customers/routes.py:113
DELETE /api/v1/crm/customers/{customer_id} delete_customer customer.delete yok yok yok 204 src/cluster_erp/modules/crm/customers/routes.py:135
POST /api/v1/crm/customers/bulk-delete bulk_delete_customers customer.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/crm/customers/routes.py:147

Müşteri parçaları uç noktaları

Müşteri parçası kayıtları.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/crm/customer-parts/ list_customer_parts customer_part.read yok customer_id, rfq_id, search, active_only, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/crm/customer_parts/routes.py:47
POST /api/v1/crm/customer-parts/ create_customer_part customer_part.create CustomerPartCreate yok CustomerPartRead 201 src/cluster_erp/modules/crm/customer_parts/routes.py:88
GET /api/v1/crm/customer-parts/{customer_part_id} get_customer_part customer_part.read yok yok CustomerPartRead 200 (varsayılan) src/cluster_erp/modules/crm/customer_parts/routes.py:106
PUT /api/v1/crm/customer-parts/{customer_part_id} update_customer_part customer_part.update CustomerPartUpdate yok CustomerPartRead 200 (varsayılan) src/cluster_erp/modules/crm/customer_parts/routes.py:125
DELETE /api/v1/crm/customer-parts/{customer_part_id} delete_customer_part customer_part.delete yok yok yok 204 src/cluster_erp/modules/crm/customer_parts/routes.py:145
POST /api/v1/crm/customer-parts/bulk-delete bulk_delete_customer_parts customer_part.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/crm/customer_parts/routes.py:157

Müşteri parçası revizyonları uç noktaları

Bir müşteri parçası altındaki revizyonlar; etkinleştirme ve yerine geçirme ile.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/crm/customer-parts/{customer_part_id}/revisions list_revisions customer_part_revision.read yok yok list[CustomerPartRevisionRead] 200 (varsayılan) src/cluster_erp/modules/crm/customer_part_revisions/routes.py:24
POST /api/v1/crm/customer-parts/{customer_part_id}/revisions create_revision customer_part_revision.create CustomerPartRevisionCreate yok CustomerPartRevisionRead 201 src/cluster_erp/modules/crm/customer_part_revisions/routes.py:39
GET /api/v1/crm/customer-part-revisions/{revision_id} get_revision customer_part_revision.read yok yok CustomerPartRevisionRead 200 (varsayılan) src/cluster_erp/modules/crm/customer_part_revisions/routes.py:56
PUT /api/v1/crm/customer-part-revisions/{revision_id} update_revision customer_part_revision.update CustomerPartRevisionUpdate yok CustomerPartRevisionRead 200 (varsayılan) src/cluster_erp/modules/crm/customer_part_revisions/routes.py:73
DELETE /api/v1/crm/customer-part-revisions/{revision_id} delete_revision customer_part_revision.delete yok yok yok 204 src/cluster_erp/modules/crm/customer_part_revisions/routes.py:91
POST /api/v1/crm/customer-part-revisions/{revision_id}/activate activate_revision customer_part_revision.activate yok yok CustomerPartRevisionRead 200 (varsayılan) src/cluster_erp/modules/crm/customer_part_revisions/routes.py:103
POST /api/v1/crm/customer-part-revisions/{revision_id}/supersede supersede_revision customer_part_revision.activate yok yok CustomerPartRevisionRead 200 (varsayılan) src/cluster_erp/modules/crm/customer_part_revisions/routes.py:118

Müşteri teklif talepleri uç noktaları

Teklif talebi kayıtları, eksiksizlik denetimi, atama, teklif verme, reddetme, süresini doldurma, kazanma, kaybetme, yeniden açma ve teklif talebi paketi.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/crm/rfqs/ list_rfqs rfq.read yok search, status, customer_id, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:51
POST /api/v1/crm/rfqs/ create_rfq rfq.create RfqCreate yok RfqRead 201 src/cluster_erp/modules/crm/rfqs/routes.py:85
GET /api/v1/crm/rfqs/{rfq_id} get_rfq rfq.read yok yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:97
PUT /api/v1/crm/rfqs/{rfq_id} update_rfq rfq.update RfqUpdate yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:111
DELETE /api/v1/crm/rfqs/{rfq_id} delete_rfq rfq.delete yok yok yok 204 src/cluster_erp/modules/crm/rfqs/routes.py:126
POST /api/v1/crm/rfqs/bulk-delete bulk_delete_rfqs rfq.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:138
GET /api/v1/crm/rfqs/{rfq_id}/completeness get_rfq_completeness rfq.read yok yok dict 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:153
POST /api/v1/crm/rfqs/{rfq_id}/assign assign_rfq rfq.assign RfqAssign yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:170
POST /api/v1/crm/rfqs/{rfq_id}/quote quote_rfq rfq.quote RfqTransition yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:188
POST /api/v1/crm/rfqs/{rfq_id}/decline decline_rfq rfq.decline RfqDecline yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:201
POST /api/v1/crm/rfqs/{rfq_id}/expire expire_rfq rfq.expire RfqTransition yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:214
POST /api/v1/crm/rfqs/{rfq_id}/win win_rfq rfq.win RfqTransition yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:227
POST /api/v1/crm/rfqs/{rfq_id}/lose lose_rfq rfq.lose RfqLose yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:240
POST /api/v1/crm/rfqs/{rfq_id}/reopen reopen_rfq rfq.reopen RfqTransition yok RfqRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:253
GET /api/v1/crm/rfqs/{rfq_id}/rfq-package get_rfq_package rfq_package.read yok yok RfqPackageRead \| None 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:269
POST /api/v1/crm/rfqs/{rfq_id}/rfq-package create_rfq_package rfq_package.create RfqPackageCreate yok RfqPackageRead 201 src/cluster_erp/modules/crm/rfqs/routes.py:283
PUT /api/v1/crm/rfq-packages/{package_id} update_rfq_package rfq_package.update RfqPackageUpdate yok RfqPackageRead 200 (varsayılan) src/cluster_erp/modules/crm/rfqs/routes.py:300
DELETE /api/v1/crm/rfq-packages/{package_id} delete_rfq_package rfq_package.delete yok yok yok 204 src/cluster_erp/modules/crm/rfqs/routes.py:318

Teklif talebi kalemleri uç noktaları

Bir teklif talebi altındaki kalemler.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/crm/rfqs/{rfq_id}/line-items list_line_items rfq_line_item.read yok search list[RfqLineItemRead] 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_items/routes.py:23
POST /api/v1/crm/rfqs/{rfq_id}/line-items create_line_item rfq_line_item.create RfqLineItemCreate yok RfqLineItemRead 201 src/cluster_erp/modules/crm/rfq_line_items/routes.py:39
GET /api/v1/crm/line-items/{line_item_id} get_line_item rfq_line_item.read yok yok RfqLineItemRead 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_items/routes.py:56
PUT /api/v1/crm/line-items/{line_item_id} update_line_item rfq_line_item.update RfqLineItemUpdate yok RfqLineItemRead 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_items/routes.py:73
DELETE /api/v1/crm/line-items/{line_item_id} delete_line_item rfq_line_item.delete yok yok yok 204 src/cluster_erp/modules/crm/rfq_line_items/routes.py:91
POST /api/v1/crm/line-items/bulk-delete bulk_delete_line_items rfq_line_item.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_items/routes.py:103

Teklif talebi kalem malzemeleri uç noktaları

Bir kalem altındaki malzemeler; ürün ağacından içe aktarma dahil.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/crm/line-items/{line_item_id}/materials list_line_materials rfq_line_material.read yok yok list[RfqLineMaterialRead] 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_materials/routes.py:29
POST /api/v1/crm/line-items/{line_item_id}/materials create_line_material rfq_line_material.create RfqLineMaterialCreate yok RfqLineMaterialRead 201 src/cluster_erp/modules/crm/rfq_line_materials/routes.py:44
POST /api/v1/crm/line-items/{line_item_id}/materials/from-bom import_line_materials_from_bom rfq_line_material.create yok yok dict 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_materials/routes.py:65
PUT /api/v1/crm/line-materials/{material_id} update_line_material rfq_line_material.update RfqLineMaterialUpdate yok RfqLineMaterialRead 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_materials/routes.py:86
DELETE /api/v1/crm/line-materials/{material_id} delete_line_material rfq_line_material.delete yok yok yok 204 src/cluster_erp/modules/crm/rfq_line_materials/routes.py:108
POST /api/v1/crm/line-materials/bulk-delete bulk_delete_line_materials rfq_line_material.delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/crm/rfq_line_materials/routes.py:123

Gelen kutusu uç noktaları

Gelen kutusu iletileri, bir kayda elle eşleme ve istenmeyen olarak işaretleme.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/crm/inbox/ list_inbox_messages inbox_message.read yok search, match_status, rfq_id, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/crm/inbox/routes.py:25
POST /api/v1/crm/inbox/ create_inbox_message inbox_message.create InboxMessageCreate yok InboxMessageRead 201 src/cluster_erp/modules/crm/inbox/routes.py:51
GET /api/v1/crm/inbox/{message_id} get_inbox_message inbox_message.read yok yok InboxMessageRead 200 (varsayılan) src/cluster_erp/modules/crm/inbox/routes.py:63
PUT /api/v1/crm/inbox/{message_id} update_inbox_message inbox_message.update InboxMessageUpdate yok InboxMessageRead 200 (varsayılan) src/cluster_erp/modules/crm/inbox/routes.py:77
DELETE /api/v1/crm/inbox/{message_id} delete_inbox_message inbox_message.delete yok yok yok 204 src/cluster_erp/modules/crm/inbox/routes.py:92
POST /api/v1/crm/inbox/bulk-delete bulk_delete_inbox_messages inbox_message.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/crm/inbox/routes.py:104
POST /api/v1/crm/inbox/{message_id}/match manual_match_message inbox_message.match InboxManualMatch yok InboxMessageRead 200 (varsayılan) src/cluster_erp/modules/crm/inbox/routes.py:119
POST /api/v1/crm/inbox/{message_id}/spam mark_spam inbox_message.spam yok yok InboxMessageRead 200 (varsayılan) src/cluster_erp/modules/crm/inbox/routes.py:134

Hata kodları

Tablo, src/cluster_erp/modules/crm/ altındaki kodun attığı hata kodlarını listeler. Kodlar, AppError(...) çağrıları, src/cluster_erp/core/errors.py içindeki fabrikalar (not_found, conflict, protected, permission_denied, privilege_escalation, check_version) ve HTTPException(...) için yapılan bir sözdizimi ağacı taramasıyla bulundu. 400 durumu AppError varsayılanıdır (src/cluster_erp/core/errors.py:23). Koruma hataları (401, 403), yetkilendirme kodları ve doğrulama hataları (422) her yol için geçerlidir ve Hatalar sayfasında listelenir.

Kod HTTP durumu Atıldığı yer İlk konum
CONCURRENCY_VERSION_CONFLICT 409 rfq_line_materials, rfqs src/cluster_erp/modules/crm/rfq_line_materials/services.py:161
CRM_RFQ_BOM_MATERIALS_EMPTY 422 rfq_line_materials src/cluster_erp/modules/crm/rfq_line_materials/services.py:119
CRM_RFQ_LINE_NO_PRODUCT 422 rfq_line_materials src/cluster_erp/modules/crm/rfq_line_materials/services.py:108
RESOURCE_CONFLICT 409 rfqs src/cluster_erp/modules/crm/rfqs/services.py:576
RESOURCE_NOT_FOUND 404 customer_part_revisions, customer_parts, customers, inbox, rfq_line_items, rfq_line_materials, rfqs src/cluster_erp/modules/crm/customer_part_revisions/routes.py:69
RFQ_ARIBA_DUE_DATE_IMMUTABLE 400 rfqs src/cluster_erp/modules/crm/rfqs/services.py:225
RFQ_DUPLICATE_SUBJECT 409 rfqs src/cluster_erp/modules/crm/rfqs/services.py:521
RFQ_INCOMPLETE 409 rfqs src/cluster_erp/modules/crm/rfqs/services.py:340
RFQ_INVALID_STATUS 409 rfqs src/cluster_erp/modules/crm/rfqs/services.py:291

Yayımlanan olaylar

Tablo, src/cluster_erp/modules/crm/ altındaki kodun EventBus.emit çağrısına doğrudan verdiği sözleşme sınıflarını listeler; sözdizimi ağacı taramasıyla bulundu. Önce bir değişkene kurulan olaylar sayılmaz. Sözleşmeler Sözleşmeler başvurusu sayfasında anlatılır.

Sözleşme Konum sayısı İlk konum
CustomerCreated 1 src/cluster_erp/modules/crm/customers/services.py:118
CustomerUpdated 1 src/cluster_erp/modules/crm/customers/services.py:186
PartyRoleSet 2 src/cluster_erp/modules/crm/customers/services.py:137
RfqAssigned 1 src/cluster_erp/modules/crm/rfqs/services.py:321
RfqDeclined 1 src/cluster_erp/modules/crm/rfqs/services.py:434
RfqExpired 1 src/cluster_erp/modules/crm/rfqs/services.py:451
RfqLost 1 src/cluster_erp/modules/crm/rfqs/services.py:487
RfqPackageCompleted 1 src/cluster_erp/modules/crm/rfqs/services.py:612
RfqReceived 1 src/cluster_erp/modules/crm/rfqs/services.py:192
RfqUpdated 1 src/cluster_erp/modules/crm/rfqs/services.py:253
RfqWon 1 src/cluster_erp/modules/crm/rfqs/services.py:468

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13