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

API

Products and services API (products_and_services)

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

products_and_services modülü dönüştürmeli birim kategorilerini ve birimleri, ağaçlı ürün kategorilerini, ürünleri, ürün modellerini, ürün sürümlerini, fotoğrafları ve ürün satıcılarını sunar. 55 uç noktanın tamamı /api/v1/products_and_services altındadır. İş anlamı için Products and services modülü sayfasına bakın.

Grup olguları

Öğe Değer Kaynak
Temel yol /api/v1/products_and_services src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/products_and_services/module.py:75
Yönlendiriciler 6 dosyada 6 yönlendirici nesnesi; Uç nokta özeti bölümünde listelenir src/cluster_erp/modules/products_and_services/module.py:52
Uç noktalar 55; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı src/cluster_erp/modules/products_and_services/categories/routes.py, src/cluster_erp/modules/products_and_services/product_models/routes.py, src/cluster_erp/modules/products_and_services/product_versions/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ı 55 yolun 55 tanesi require_permission bildirir src/cluster_erp/modules/auth/guards.py:205-240
Uygulama yetkilendirme kapısı bağlanan her yönlendiricide require_app("products_and_services") src/cluster_erp/modules/products_and_services/module.py:83
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ğı
settings router (/settings) 15 src/cluster_erp/modules/products_and_services/settings/routes.py:29
categories router (/categories) 7 src/cluster_erp/modules/products_and_services/categories/routes.py:22
products router (/products) 9 src/cluster_erp/modules/products_and_services/products/routes.py:32
product_models router (/models) 10 src/cluster_erp/modules/products_and_services/product_models/routes.py:25
product_versions router (/versions) 7 src/cluster_erp/modules/products_and_services/product_versions/routes.py:22
vendors router (/vendors) 7 src/cluster_erp/modules/products_and_services/vendors/routes.py:24

Ölçü birimleri uç noktaları

Varsayılan tohumlamalı birim kategorileri, birimler ve birim dönüştürme okuması.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/products_and_services/settings/unit-categories/ list_unit_categories unit_category.read yok active_only, search list[UnitCategoryRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:55
POST /api/v1/products_and_services/settings/unit-categories/ create_unit_category unit_category.create UnitCategoryCreate yok UnitCategoryRead 201 src/cluster_erp/modules/products_and_services/settings/routes.py:73
POST /api/v1/products_and_services/settings/unit-categories/seed-defaults seed_unit_defaults unit_category.seed yok yok dict 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:84
GET /api/v1/products_and_services/settings/unit-categories/{category_id} get_unit_category unit_category.read yok yok UnitCategoryRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:94
PUT /api/v1/products_and_services/settings/unit-categories/{category_id} update_unit_category unit_category.update UnitCategoryUpdate yok UnitCategoryRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:107
POST /api/v1/products_and_services/settings/unit-categories/bulk-delete bulk_delete_unit_categories unit_category.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:121
DELETE /api/v1/products_and_services/settings/unit-categories/{category_id} delete_unit_category unit_category.delete yok yok yok 204 src/cluster_erp/modules/products_and_services/settings/routes.py:132
GET /api/v1/products_and_services/settings/units/ list_all_units unit.read yok active_only, category_code list[UnitOfMeasureRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:148
GET /api/v1/products_and_services/settings/unit-categories/{category_id}/units list_units_by_category unit.read yok active_only, search list[UnitOfMeasureRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:161
POST /api/v1/products_and_services/settings/units/ create_unit unit.create UnitOfMeasureCreate yok UnitOfMeasureRead 201 src/cluster_erp/modules/products_and_services/settings/routes.py:192
GET /api/v1/products_and_services/settings/units/convert convert_unit unit.read yok value, from_unit_id, to_unit_id dict 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:203
GET /api/v1/products_and_services/settings/units/{unit_id} get_unit unit.read yok yok UnitOfMeasureRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:223
PUT /api/v1/products_and_services/settings/units/{unit_id} update_unit unit.update UnitOfMeasureUpdate yok UnitOfMeasureRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:237
POST /api/v1/products_and_services/settings/units/bulk-delete bulk_delete_units unit.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/products_and_services/settings/routes.py:251
DELETE /api/v1/products_and_services/settings/units/{unit_id} delete_unit unit.delete yok yok yok 204 src/cluster_erp/modules/products_and_services/settings/routes.py:262

Kategoriler uç noktaları

Kategori kayıtları ve kategori ağacı.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/products_and_services/categories/ list_categories category.read yok active_only list[ProductCategoryRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/categories/routes.py:25
GET /api/v1/products_and_services/categories/tree category_tree category.read yok yok list[dict[str, Any]] 200 (varsayılan) src/cluster_erp/modules/products_and_services/categories/routes.py:36
POST /api/v1/products_and_services/categories/ create_category category.create ProductCategoryCreate yok ProductCategoryRead 201 src/cluster_erp/modules/products_and_services/categories/routes.py:45
GET /api/v1/products_and_services/categories/{category_id} get_category category.read yok yok ProductCategoryRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/categories/routes.py:56
PUT /api/v1/products_and_services/categories/{category_id} update_category category.update ProductCategoryUpdate yok ProductCategoryRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/categories/routes.py:69
POST /api/v1/products_and_services/categories/bulk-delete bulk_delete_categories category.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/products_and_services/categories/routes.py:83
DELETE /api/v1/products_and_services/categories/{category_id} delete_category category.delete yok yok yok 204 src/cluster_erp/modules/products_and_services/categories/routes.py:94

Ürünler uç noktaları

Ürün kayıtları ve ürün fotoğrafı.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/products_and_services/products/ list_products product.read yok search, material_type, category_id, is_purchasable, is_sellable, is_manufacturable, is_stockable, status, active_only, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/products_and_services/products/routes.py:41
POST /api/v1/products_and_services/products/ create_product product.create ProductCreate yok ProductRead 201 src/cluster_erp/modules/products_and_services/products/routes.py:91
GET /api/v1/products_and_services/products/{product_id} get_product product.read yok yok ProductRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/products/routes.py:110
PUT /api/v1/products_and_services/products/{product_id} update_product product.update ProductUpdate yok ProductRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/products/routes.py:131
POST /api/v1/products_and_services/products/bulk-delete bulk_delete_products product.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/products_and_services/products/routes.py:153
DELETE /api/v1/products_and_services/products/{product_id} delete_product product.delete yok yok yok 204 src/cluster_erp/modules/products_and_services/products/routes.py:165
GET /api/v1/products_and_services/products/{product_id}/photo get_product_photo product.read yok yok Response 200 (varsayılan) src/cluster_erp/modules/products_and_services/products/routes.py:190
POST /api/v1/products_and_services/products/{product_id}/photo set_product_photo product.update çok parçalı file yok ProductRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/products/routes.py:216
DELETE /api/v1/products_and_services/products/{product_id}/photo delete_product_photo product.update yok yok yok 204 src/cluster_erp/modules/products_and_services/products/routes.py:262

Ürün modelleri uç noktaları

Model kayıtları, bir ürünün modelleri ve model fotoğrafı.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/products_and_services/models/ list_models_flat product_model.read yok product_id, active_only list[ProductModelListRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_models/routes.py:28
GET /api/v1/products_and_services/models/by-product/{product_id} list_models product_model.read yok active_only list[ProductModelListRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_models/routes.py:40
POST /api/v1/products_and_services/models/ create_model product_model.create ProductModelCreate yok ProductModelRead 201 src/cluster_erp/modules/products_and_services/product_models/routes.py:52
GET /api/v1/products_and_services/models/{model_id} get_model product_model.read yok yok ProductModelRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_models/routes.py:63
PUT /api/v1/products_and_services/models/{model_id} update_model product_model.update ProductModelUpdate yok ProductModelRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_models/routes.py:76
POST /api/v1/products_and_services/models/bulk-delete bulk_delete_models product_model.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_models/routes.py:90
DELETE /api/v1/products_and_services/models/{model_id} delete_model product_model.delete yok yok yok 204 src/cluster_erp/modules/products_and_services/product_models/routes.py:101
GET /api/v1/products_and_services/models/{model_id}/photo get_model_photo product_model.read yok yok Response 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_models/routes.py:125
POST /api/v1/products_and_services/models/{model_id}/photo set_model_photo product_model.update çok parçalı file yok ProductModelRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_models/routes.py:150
DELETE /api/v1/products_and_services/models/{model_id}/photo delete_model_photo product_model.update yok yok yok 204 src/cluster_erp/modules/products_and_services/product_models/routes.py:195

Ürün sürümleri uç noktaları

Sürüm kayıtları ve bir modelin sürümleri.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/products_and_services/versions/ list_versions_flat product_version.read yok product_model_id, active_only list[ProductVersionListRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_versions/routes.py:25
GET /api/v1/products_and_services/versions/by-model/{model_id} list_versions product_version.read yok active_only list[ProductVersionListRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_versions/routes.py:37
POST /api/v1/products_and_services/versions/ create_version product_version.create ProductVersionCreate yok ProductVersionRead 201 src/cluster_erp/modules/products_and_services/product_versions/routes.py:49
GET /api/v1/products_and_services/versions/{version_id} get_version product_version.read yok yok ProductVersionRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_versions/routes.py:60
PUT /api/v1/products_and_services/versions/{version_id} update_version product_version.update ProductVersionUpdate yok ProductVersionRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_versions/routes.py:73
POST /api/v1/products_and_services/versions/bulk-delete bulk_delete_versions product_version.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/products_and_services/product_versions/routes.py:87
DELETE /api/v1/products_and_services/versions/{version_id} delete_version product_version.delete yok yok yok 204 src/cluster_erp/modules/products_and_services/product_versions/routes.py:98

Ürün satıcıları uç noktaları

Satıcı kayıtları ve bir ürünün satıcıları.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/products_and_services/vendors/ list_vendors product_vendor.read yok product_id, search, active_only, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/products_and_services/vendors/routes.py:27
GET /api/v1/products_and_services/vendors/by-product/{product_id} list_vendors_by_product product_vendor.read yok active_only list[ProductVendorListRead] 200 (varsayılan) src/cluster_erp/modules/products_and_services/vendors/routes.py:55
POST /api/v1/products_and_services/vendors/ create_vendor product_vendor.create ProductVendorCreate yok ProductVendorRead 201 src/cluster_erp/modules/products_and_services/vendors/routes.py:71
GET /api/v1/products_and_services/vendors/{vendor_id} get_vendor product_vendor.read yok yok ProductVendorRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/vendors/routes.py:83
PUT /api/v1/products_and_services/vendors/{vendor_id} update_vendor product_vendor.update ProductVendorUpdate yok ProductVendorRead 200 (varsayılan) src/cluster_erp/modules/products_and_services/vendors/routes.py:97
DELETE /api/v1/products_and_services/vendors/{vendor_id} delete_vendor product_vendor.delete yok yok yok 204 src/cluster_erp/modules/products_and_services/vendors/routes.py:112
POST /api/v1/products_and_services/vendors/bulk-delete bulk_delete_vendors product_vendor.bulk_delete BulkDeleteRequest yok BulkDeleteResponse 200 (varsayılan) src/cluster_erp/modules/products_and_services/vendors/routes.py:124

Hata kodları

Tablo, src/cluster_erp/modules/products_and_services/ 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 products src/cluster_erp/modules/products_and_services/products/services.py:511
PRODUCT_CAPABILITY_VIOLATION 400 products src/cluster_erp/modules/products_and_services/products/services.py:679
PRODUCT_IN_ACTIVE_BOM 422 products src/cluster_erp/modules/products_and_services/products/services.py:620
PRODUCT_MODEL_DEFAULT_PROTECTED 409 product_models src/cluster_erp/modules/products_and_services/product_models/services.py:123
PRODUCT_VERSION_DEFAULT_PROTECTED 409 product_versions src/cluster_erp/modules/products_and_services/product_versions/services.py:102
RESOURCE_CONFLICT 409 products, vendors src/cluster_erp/modules/products_and_services/products/services.py:292
RESOURCE_NOT_FOUND 404, 422 categories, product_models, product_versions, products, settings, vendors src/cluster_erp/modules/products_and_services/categories/routes.py:65
UNIT_CONVERSION_FAILED 400 settings src/cluster_erp/modules/products_and_services/settings/routes.py:214
VALIDATION_ERROR 400, 422 product_models, products src/cluster_erp/modules/products_and_services/product_models/routes.py:160

Yayımlanan olaylar

Tablo, src/cluster_erp/modules/products_and_services/ 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
ProductCreated 1 src/cluster_erp/modules/products_and_services/products/services.py:416
ProductDeleted 1 src/cluster_erp/modules/products_and_services/products/services.py:652
ProductStatusChanged 1 src/cluster_erp/modules/products_and_services/products/services.py:591
ProductUpdated 1 src/cluster_erp/modules/products_and_services/products/services.py:583
ServiceCreated 1 src/cluster_erp/modules/products_and_services/products/services.py:408

İlgili sayfalar


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

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