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

API

Inventory API (inventory)

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

inventory modülü depoları ve depolama yerlerini, stok seviyelerini ve kullanılabilirliği, her kayıt türündeki mal hareketlerini, rezervasyonları, kullanım kararlarını, stok ödünçlerini, partileri ve seri numaralarını sunar. 51 uç noktanın tamamı /api/v1/inventory altındadır. İş anlamı için Inventory modülü sayfasına bakın.

Grup olguları

Öğe Değer Kaynak
Temel yol /api/v1/inventory src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/inventory/module.py:52
Yönlendiriciler 3 dosyada 8 yönlendirici nesnesi; Uç nokta özeti bölümünde listelenir src/cluster_erp/modules/inventory/module.py:33
Uç noktalar 51; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı src/cluster_erp/modules/inventory/batches/routes.py, src/cluster_erp/modules/inventory/stock/routes.py, src/cluster_erp/modules/inventory/warehouses/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ı 51 yolun 51 tanesi require_permission bildirir src/cluster_erp/modules/auth/guards.py:205-240
Uygulama yetkilendirme kapısı bağlanan her yönlendiricide require_app("inventory") src/cluster_erp/modules/inventory/module.py:62
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ğı
warehouses warehouse_router (/warehouses), location_router (/locations) 12 src/cluster_erp/modules/inventory/warehouses/routes.py:33, src/cluster_erp/modules/inventory/warehouses/routes.py:34
stock stock_router (/stock), movement_router (/movements), reservation_router (/reservations), usage_decision_router (/usage-decisions) 29 src/cluster_erp/modules/inventory/stock/routes.py:47, src/cluster_erp/modules/inventory/stock/routes.py:48, src/cluster_erp/modules/inventory/stock/routes.py:49, src/cluster_erp/modules/inventory/stock/routes.py:50
batches batch_router (/batches), serial_router (/serial-numbers) 10 src/cluster_erp/modules/inventory/batches/routes.py:33, src/cluster_erp/modules/inventory/batches/routes.py:34

Depolar ve yerler uç noktaları

İki yönlendirici: depolar (pano ve bir deponun yerleriyle) ve depolama yerleri.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/inventory/warehouses/ list_warehouses warehouse.read yok search, is_active, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:66
GET /api/v1/inventory/warehouses/dashboard warehouse_dashboard warehouse.read yok yok WarehouseDashboardRead 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:99
POST /api/v1/inventory/warehouses/ create_warehouse warehouse.create WarehouseCreate yok WarehouseRead 201 src/cluster_erp/modules/inventory/warehouses/routes.py:108
GET /api/v1/inventory/warehouses/{warehouse_id} get_warehouse warehouse.read yok yok WarehouseRead 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:119
PUT /api/v1/inventory/warehouses/{warehouse_id} update_warehouse warehouse.update WarehouseUpdate yok WarehouseRead 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:132
DELETE /api/v1/inventory/warehouses/{warehouse_id} delete_warehouse warehouse.delete yok yok yok 204 src/cluster_erp/modules/inventory/warehouses/routes.py:146
GET /api/v1/inventory/warehouses/{warehouse_id}/locations/ list_warehouse_locations storage_location.read yok search, is_active, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:157
GET /api/v1/inventory/locations/ list_locations storage_location.read yok warehouse_id, search, is_active, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:198
POST /api/v1/inventory/locations/ create_location storage_location.create StorageLocationCreate yok StorageLocationRead 201 src/cluster_erp/modules/inventory/warehouses/routes.py:233
GET /api/v1/inventory/locations/{location_id} get_location storage_location.read yok yok StorageLocationRead 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:244
PUT /api/v1/inventory/locations/{location_id} update_location storage_location.update StorageLocationUpdate yok StorageLocationRead 200 (varsayılan) src/cluster_erp/modules/inventory/warehouses/routes.py:257
DELETE /api/v1/inventory/locations/{location_id} delete_location storage_location.delete yok yok yok 204 src/cluster_erp/modules/inventory/warehouses/routes.py:271

Stok, hareketler ve rezervasyonlar uç noktaları

Dört yönlendirici: kayıt yollarıyla stok seviyeleri ve kullanılabilirlik (mal girişi ve çıkışı, transfer, sahiplik transferi, ödünçler, düzeltme, blokeli giriş, kategori transferi, satıcıya iade, hurda, fason), ters kayıtlı hareketler, rezervasyonlar ve kullanım kararları.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/inventory/stock/levels/ list_stock_levels stock_level.read yok product_id, product_model_id, product_version_id, warehouse_id, batch_id, custodian_party_id, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:59
GET /api/v1/inventory/stock/levels/row/{level_id} get_stock_level_row stock_level.read yok yok StockLevelListRead 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:93
GET /api/v1/inventory/stock/levels/{product_id} get_stock_level stock_level.read yok warehouse_id, product_model_id, product_version_id dict 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:113
GET /api/v1/inventory/stock/availability/{product_id} check_stock_availability stock_level.read yok product_model_id, product_version_id, qty, warehouse_id dict 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:129
POST /api/v1/inventory/stock/goods-receipt post_goods_receipt goods_movement.create GoodsReceiptCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:156
POST /api/v1/inventory/stock/goods-issue post_goods_issue goods_movement.create GoodsIssueCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:185
POST /api/v1/inventory/stock/transfer post_transfer goods_movement.create TransferCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:201
POST /api/v1/inventory/stock/ownership-transfer post_ownership_transfer goods_movement.create OwnershipTransferCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:217
POST /api/v1/inventory/stock/loans/borrow post_stock_borrow goods_movement.create StockBorrowCreate yok ProjectStockLoanRead 201 src/cluster_erp/modules/inventory/stock/routes.py:235
POST /api/v1/inventory/stock/loans/{loan_id}/payback post_stock_payback goods_movement.create StockPaybackCreate yok ProjectStockLoanRead 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:251
GET /api/v1/inventory/stock/loans list_stock_loans stock_level.read yok project_id, status, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:267
POST /api/v1/inventory/stock/adjustment post_adjustment goods_movement.create AdjustmentCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:290
POST /api/v1/inventory/stock/gr-blocked-receipt post_gr_blocked_receipt goods_movement.create GrBlockedReceiptCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:306
POST /api/v1/inventory/stock/stock-category-transfer post_stock_category_transfer goods_movement.create StockCategoryTransferCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:322
POST /api/v1/inventory/stock/return-to-vendor post_return_to_vendor goods_movement.create ReturnToVendorCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:341
POST /api/v1/inventory/stock/scrap post_scrap goods_movement.create ScrapPostingCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:357
POST /api/v1/inventory/stock/subcontract-issue post_subcontract_issue goods_movement.create SubcontractStockCreate yok dict 201 src/cluster_erp/modules/inventory/stock/routes.py:598
POST /api/v1/inventory/stock/subcontract-return post_subcontract_return goods_movement.create SubcontractStockCreate yok dict 201 src/cluster_erp/modules/inventory/stock/routes.py:610
POST /api/v1/inventory/stock/subcontract-consume post_subcontract_consume goods_movement.create SubcontractStockCreate yok dict 201 src/cluster_erp/modules/inventory/stock/routes.py:622
POST /api/v1/inventory/movements/{movement_id}/reverse reverse_movement goods_movement.create MovementReversalCreate yok GoodsMovementRead 201 src/cluster_erp/modules/inventory/stock/routes.py:376
GET /api/v1/inventory/movements/ list_movements goods_movement.read yok product_id, product_model_id, product_version_id, warehouse_id, batch_id, movement_type, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:400
GET /api/v1/inventory/movements/{movement_id} get_movement goods_movement.read yok yok GoodsMovementRead 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:434
GET /api/v1/inventory/reservations/ list_reservations stock_reservation.read yok product_id, warehouse_id, reference_type, reference_id, status, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:451
POST /api/v1/inventory/reservations/ create_reservation stock_reservation.create StockReservationCreate yok StockReservationRead 201 src/cluster_erp/modules/inventory/stock/routes.py:483
POST /api/v1/inventory/reservations/{reservation_id}/consume consume_reservation stock_reservation.create yok yok StockReservationRead 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:499
POST /api/v1/inventory/reservations/{reservation_id}/cancel cancel_reservation stock_reservation.create yok yok StockReservationRead 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:514
GET /api/v1/inventory/usage-decisions/ list_usage_decisions usage_decision.read yok movement_id, product_id, warehouse_id, decision_code, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:532
GET /api/v1/inventory/usage-decisions/{decision_id} get_usage_decision usage_decision.read yok yok UsageDecisionRead 200 (varsayılan) src/cluster_erp/modules/inventory/stock/routes.py:562
POST /api/v1/inventory/usage-decisions/ create_usage_decision usage_decision.create UsageDecisionCreate yok UsageDecisionRead 201 src/cluster_erp/modules/inventory/stock/routes.py:579

Partiler ve seri numaraları uç noktaları

İki yönlendirici: partiler ve seri numaraları.

Yöntem Yol İşleyici Yetki İstek Sorgu Yanıt Durum Kaynak
GET /api/v1/inventory/batches/ list_batches batch.read yok product_id, origin_type, status, search, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/batches/routes.py:49
POST /api/v1/inventory/batches/ create_batch batch.create BatchCreate yok BatchRead 201 src/cluster_erp/modules/inventory/batches/routes.py:87
GET /api/v1/inventory/batches/{batch_id} get_batch batch.read yok yok BatchRead 200 (varsayılan) src/cluster_erp/modules/inventory/batches/routes.py:99
PUT /api/v1/inventory/batches/{batch_id} update_batch batch.update BatchUpdate yok BatchRead 200 (varsayılan) src/cluster_erp/modules/inventory/batches/routes.py:113
DELETE /api/v1/inventory/batches/{batch_id} delete_batch batch.delete yok yok yok 204 src/cluster_erp/modules/inventory/batches/routes.py:128
GET /api/v1/inventory/serial-numbers/ list_serial_numbers serial_number.read yok product_id, batch_id, status, search, limit, offset dict 200 (varsayılan) src/cluster_erp/modules/inventory/batches/routes.py:143
POST /api/v1/inventory/serial-numbers/ create_serial_number serial_number.create SerialNumberCreate yok SerialNumberRead 201 src/cluster_erp/modules/inventory/batches/routes.py:173
GET /api/v1/inventory/serial-numbers/{serial_id} get_serial_number serial_number.read yok yok SerialNumberRead 200 (varsayılan) src/cluster_erp/modules/inventory/batches/routes.py:185
PUT /api/v1/inventory/serial-numbers/{serial_id} update_serial_number serial_number.update SerialNumberUpdate yok SerialNumberRead 200 (varsayılan) src/cluster_erp/modules/inventory/batches/routes.py:199
DELETE /api/v1/inventory/serial-numbers/{serial_id} delete_serial_number serial_number.delete yok yok yok 204 src/cluster_erp/modules/inventory/batches/routes.py:214

Hata kodları

Tablo, src/cluster_erp/modules/inventory/ 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
INVENTORY_BATCH_EXPIRED 400 stock src/cluster_erp/modules/inventory/stock/services.py:2166
INVENTORY_BATCH_REQUIRED 400 stock src/cluster_erp/modules/inventory/stock/services.py:2143
INVENTORY_DECISION_QTY_EXCEEDS 400 stock src/cluster_erp/modules/inventory/stock/services.py:1527
INVENTORY_INSUFFICIENT_STOCK 400 stock src/cluster_erp/modules/inventory/stock/services.py:853
INVENTORY_INVALID_CATEGORY_TRANSFER 400 stock src/cluster_erp/modules/inventory/stock/services.py:1223
INVENTORY_INVALID_DECISION_CODE 400 stock src/cluster_erp/modules/inventory/stock/services.py:1502
INVENTORY_INVALID_MOVEMENT 409, 422 stock src/cluster_erp/modules/inventory/stock/services.py:553
INVENTORY_INVALID_MOVEMENT_TYPE 400 stock src/cluster_erp/modules/inventory/stock/services.py:332
INVENTORY_INVALID_ORIGIN_TYPE 400 batches src/cluster_erp/modules/inventory/batches/services.py:189
INVENTORY_INVALID_STOCK_CATEGORY 400 stock src/cluster_erp/modules/inventory/stock/services.py:1211
INVENTORY_MOVEMENT_ALREADY_REVERSED 400 stock src/cluster_erp/modules/inventory/stock/services.py:1742
INVENTORY_MOVEMENT_NOT_DECIDABLE 400 stock src/cluster_erp/modules/inventory/stock/services.py:1515
INVENTORY_PO_RECEIPT_REQUIRES_PO_FLOW 409 stock src/cluster_erp/modules/inventory/stock/routes.py:174
INVENTORY_PRODUCT_NOT_STOCKABLE 400 batches, stock src/cluster_erp/modules/inventory/batches/services.py:210
INVENTORY_PROJECT_TRANSFER_DISABLED 403 stock src/cluster_erp/modules/inventory/stock/services.py:563
INVENTORY_RESERVATION_ALREADY_CANCELLED 400 stock src/cluster_erp/modules/inventory/stock/services.py:1998
INVENTORY_RESERVATION_ALREADY_CONSUMED 400 stock src/cluster_erp/modules/inventory/stock/services.py:1992
INVENTORY_RESERVATION_NOT_FOUND 404 stock src/cluster_erp/modules/inventory/stock/services.py:1985
INVENTORY_SERIAL_ALREADY_USED 409 batches, stock src/cluster_erp/modules/inventory/batches/services.py:349
INVENTORY_SERIAL_REQUIRED 400 stock src/cluster_erp/modules/inventory/stock/services.py:2149
RESOURCE_CONFLICT 409 batches, warehouses src/cluster_erp/modules/inventory/batches/services.py:228
RESOURCE_NOT_FOUND 404 batches, stock, warehouses src/cluster_erp/modules/inventory/batches/routes.py:109

Yayımlanan olaylar

Tablo, src/cluster_erp/modules/inventory/ 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
BatchCreated 1 src/cluster_erp/modules/inventory/batches/services.py:134
GoodsIssued 2 src/cluster_erp/modules/inventory/stock/services.py:527
GoodsMovementReversed 1 src/cluster_erp/modules/inventory/stock/services.py:1879
GoodsReceived 1 src/cluster_erp/modules/inventory/stock/services.py:431
GrBlockedReceived 1 src/cluster_erp/modules/inventory/stock/services.py:1181
ReturnedToVendor 1 src/cluster_erp/modules/inventory/stock/services.py:1387
ScrapPosted 1 src/cluster_erp/modules/inventory/stock/services.py:1482
StockAdjusted 1 src/cluster_erp/modules/inventory/stock/services.py:1101
StockCategoryTransferred 2 src/cluster_erp/modules/inventory/stock/services.py:875
StockReservationCancelled 1 src/cluster_erp/modules/inventory/stock/services.py:2073
StockReservationConsumed 1 src/cluster_erp/modules/inventory/stock/services.py:2020
StockReserved 1 src/cluster_erp/modules/inventory/stock/services.py:1957
StockTransferred 1 src/cluster_erp/modules/inventory/stock/services.py:1039
UsageDecisionRecorded 1 src/cluster_erp/modules/inventory/stock/services.py:1653

İlgili sayfalar


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

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